diff --git a/pom.xml b/pom.xml index 4df1be17fccbe0f76276e60cfe5cf818a8e99179..574b24737868514496d9b3cf32045eeecb2cee23 100644 --- a/pom.xml +++ b/pom.xml @@ -1769,7 +1769,7 @@ <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> - <version>1.8.3</version> + <version>1.8.4</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> diff --git a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java index c049004d67a4bd98771f3cd6e95e81ecba15539f..03c33996d90efef707614a9f196419bc7ea90ab0 100644 --- a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java +++ b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java @@ -54,6 +54,7 @@ import org.olat.course.ICourse; import org.olat.course.condition.Condition; import org.olat.course.editor.PublishProcess; import org.olat.course.editor.StatusDescription; +import org.olat.course.editor.PublishSetInformations; import org.olat.course.nodes.AbstractAccessableCourseNode; import org.olat.course.nodes.BCCourseNode; import org.olat.course.nodes.COCourseNode; @@ -326,7 +327,8 @@ public class CourseCreationHelper { nodeIds.add(cetm.getRootNode().getChildAt(i).getIdent()); } pp.createPublishSetFor(nodeIds); - sds = pp.testPublishSet(ureq.getLocale()); + PublishSetInformations set = pp.testPublishSet(ureq.getLocale()); + sds = set.getWarnings(); boolean isValid = sds.length == 0; if (!isValid) { // no error and no warnings -> return immediate diff --git a/src/main/java/org/olat/core/commons/persistence/_spring/core_persistence.xml b/src/main/java/org/olat/core/commons/persistence/_spring/core_persistence.xml index 5fb0b37c4abca1f79e631f8fc485a5d37edb2b41..857039803c1910a2d01800608cfad1f8d3fb6162 100644 --- a/src/main/java/org/olat/core/commons/persistence/_spring/core_persistence.xml +++ b/src/main/java/org/olat/core/commons/persistence/_spring/core_persistence.xml @@ -92,6 +92,8 @@ <class>org.olat.core.commons.services.taskexecutor.model.PersistentTask</class> <class>org.olat.core.commons.services.taskexecutor.model.PersistentTaskModifier</class> <class>org.olat.course.assessment.model.UserCourseInfosImpl</class> + <class>org.olat.course.nodes.cl.model.DBCheckbox</class> + <class>org.olat.course.nodes.cl.model.DBCheck</class> <class>org.olat.group.model.ContactParticipantView</class> <class>org.olat.group.model.ContactOwnerView</class> <class>org.olat.group.model.ContactKeyParticipantView</class> diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java b/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java index 08776ee40563dda9012760174255f365edb3801d..f3116853e6fbfa4eeff2b7b63f508913326fbb40 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/FormUIFactory.java @@ -337,12 +337,8 @@ public class FormUIFactory { * @return */ public SingleSelection addRadiosHorizontal(final String name, final String i18nLabel, FormItemContainer formLayout, final String[] theKeys, final String[] theValues) { - SingleSelection ss = new SingleSelectionImpl(name, name, SingleSelectionImpl.createHorizontalLayout(null, name)){ - { - this.keys = theKeys; - this.values = theValues; - } - }; + SingleSelection ss = new SingleSelectionImpl(name, name, SingleSelectionImpl.createHorizontalLayout(null, name)); + ss.setKeysAndValues(theKeys, theValues, null); setLabelIfNotNull(i18nLabel, ss); formLayout.add(ss); return ss; @@ -376,12 +372,8 @@ public class FormUIFactory { * @return */ public SingleSelection addRadiosVertical(final String name, final String i18nLabel, FormItemContainer formLayout, final String[] theKeys, final String[] theValues) { - SingleSelection ss = new SingleSelectionImpl(name, name, SingleSelectionImpl.createVerticalLayout(null, name)){ - { - this.keys = theKeys; - this.values = theValues; - } - }; + SingleSelection ss = new SingleSelectionImpl(name, name, SingleSelectionImpl.createVerticalLayout(null, name)); + ss.setKeysAndValues(theKeys, theValues, null); setLabelIfNotNull(i18nLabel, ss); formLayout.add(ss); return ss; @@ -430,13 +422,8 @@ public class FormUIFactory { * @return */ public SingleSelection addDropdownSingleselect(final String id, final String name, final String i18nLabel, FormItemContainer formLayout, final String[] theKeys, final String[] theValues, final String[] theCssClasses) { - SingleSelection ss = new SingleSelectionImpl(id, name, SingleSelectionImpl.createSelectboxLayouter(id, name)){ - { - this.keys = theKeys; - this.values = theValues; - this.cssClasses = theCssClasses; - } - }; + SingleSelection ss = new SingleSelectionImpl(id, name, SingleSelectionImpl.createSelectboxLayouter(id, name)); + ss.setKeysAndValues(theKeys, theValues, theCssClasses); setLabelIfNotNull(i18nLabel, ss); formLayout.add(ss); return ss; diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java index 5f2ad6b6421f79bb4ee2e674077d81008fc0acbb..81a81d64a5de3c300e29ce36e0a1131231d8843d 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java @@ -138,6 +138,27 @@ public interface FlexiTableElement extends FormItem { */ public void setSearchEnabled(boolean enable); + /** + * Is the filer enabled? + * @return + */ + public boolean isFilterEnabled(); + + /** + * Set the values for the filter and will enable it. + * @param keys + * @param values + */ + public void setFilterKeysAndValues(String labelI18nKey, String[] keys, String[] values); + + /** + * Enable export + * @return True if export is enabled + */ + public boolean isExportEnabled(); + + public void setExportEnabled(boolean enabled); + /** * * @param callout diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java index a4d2763198e1bf6fa7e00eb9a60c9074ad737cd9..2aa9210364464f2cd96dce7f59efe6feccfdfc3e 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java @@ -38,6 +38,7 @@ import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElem import org.olat.core.gui.components.form.flexible.impl.FormItemImpl; import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; import org.olat.core.logging.AssertException; +import org.olat.core.logging.OLog; import org.olat.core.logging.Tracing; import org.olat.core.util.Util; import org.olat.core.util.ValidationStatus; @@ -51,7 +52,7 @@ import org.olat.core.util.ValidationStatus; * @author patrickb */ public class MultipleSelectionElementImpl extends FormItemImpl implements MultipleSelectionElement { - + private static final OLog log = Tracing.createLoggerFor(MultipleSelectionElementImpl.class); private static final String PACKAGE = Util.getPackageName(MultipleSelectionElementImpl.class); protected static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(PACKAGE); @@ -206,8 +207,8 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip j++; } if (!foundKey){ - Tracing.logWarn("submitted key '" + key + "' was not found in the keys of formelement named " - + this.getName() + " , keys=" + Arrays.asList(keys), this.getClass()); + log.warn("submitted key '" + key + "' was not found in the keys of formelement named " + + this.getName() + " , keys=" + Arrays.asList(keys)); }else{ selected.add(key); } @@ -288,7 +289,7 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip /** * @see org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement#setEnabled(java.util.Set, boolean) */ - public void setEnabled(@SuppressWarnings("hiding") Set<String> keys, boolean isEnabled) { + public void setEnabled(Set<String> keys, boolean isEnabled) { for (String key : keys) { setEnabled(key, isEnabled); } @@ -305,7 +306,7 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip elm.setVisible(isVisible); } // set container dirty to render new values - this.formLayoutContainer.setDirty(true); + formLayoutContainer.setDirty(true); } @@ -322,7 +323,7 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip /** * @see org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement#setVisible(java.util.Set, boolean) */ - public void setVisible(@SuppressWarnings("hiding") Set<String> keys, boolean isEnabled) { + public void setVisible(Set<String> keys, boolean isEnabled) { for (String key : keys) { setEnabled(key, isEnabled); } @@ -333,7 +334,7 @@ public class MultipleSelectionElementImpl extends FormItemImpl implements Multip * @return Keys of the checkboxes */ public Set<String> getKeys() { - return new HashSet<String>(Arrays.asList(this.keys)); + return new HashSet<String>(Arrays.asList(keys)); } protected void initSelectionElements() { diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java index 25199baa38b2395bc3e586a56833f13bd07a7e24..abc91cbfee190b98c36b53d7af06555f3342aada 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java @@ -216,7 +216,7 @@ public class SingleSelectionImpl extends FormItemImpl implements SingleSelection @Override - public void validate(List validationResults) { + public void validate(List<ValidationStatus> validationResults) { if ( ! isOneSelected()) { validationResults.add(new ValidationStatusImpl(ValidationStatus.ERROR)); return; diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiColumnModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiColumnModel.java index e583c4e9c750b52582b02983b6fefd0851d08491..2cdfc00607943abbba375cbe1ea96e0a96aaba53 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiColumnModel.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiColumnModel.java @@ -29,14 +29,24 @@ public class AbstractFlexiColumnModel implements FlexiColumnModel { private int alignment; private String headerKey; + private String headerLabel; private String columnKey; + private boolean sortable; + private String sortedKey; private int columnIndex; private FlexiCellRenderer cellRenderer; public AbstractFlexiColumnModel(String headerKey, int columnIndex, int alignment, FlexiCellRenderer cellRenderer) { + this(headerKey, columnIndex, alignment, false, null, cellRenderer); + } + + public AbstractFlexiColumnModel(String headerKey, int columnIndex, int alignment, + boolean sortable, String sortedKey, FlexiCellRenderer cellRenderer) { this.headerKey = headerKey; this.columnIndex = columnIndex; this.columnKey = headerKey.replace(".", "").toLowerCase(); + this.sortable = sortable; + this.sortedKey = sortedKey; this.alignment = alignment; this.cellRenderer = cellRenderer; } @@ -49,6 +59,15 @@ public class AbstractFlexiColumnModel implements FlexiColumnModel { public String getHeaderKey() { return headerKey; } + + @Override + public String getHeaderLabel() { + return headerLabel; + } + + public void setHeaderLabel(String headerLabel) { + this.headerLabel = headerLabel; + } @Override public String getColumnKey() { @@ -62,12 +81,12 @@ public class AbstractFlexiColumnModel implements FlexiColumnModel { @Override public boolean isSortable() { - return false; + return sortable; } @Override - public void setSortable(boolean enable) { - // + public void setSortable(boolean sortable) { + this.sortable = sortable; } @Override @@ -77,12 +96,12 @@ public class AbstractFlexiColumnModel implements FlexiColumnModel { @Override public String getSortKey() { - return null; + return sortedKey; } @Override public void setSortKey(String sortedKey) { - // + this.sortedKey = sortedKey; } public int getAlignment() { diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java index 6d6d4896350a4e7413972d81229b4636e96c35b0..cb7f294cf2a0a259ab3e2ae316f6d1f03b2124bb 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java @@ -20,16 +20,18 @@ package org.olat.core.gui.components.form.flexible.impl.elements.table; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.ComponentRenderer; +import org.olat.core.gui.components.DefaultComponentRenderer; import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.elements.SingleSelection; +import org.olat.core.gui.components.form.flexible.impl.Form; import org.olat.core.gui.components.form.flexible.impl.FormJSHelper; import org.olat.core.gui.components.form.flexible.impl.NameValuePair; import org.olat.core.gui.render.RenderResult; import org.olat.core.gui.render.Renderer; -import org.olat.core.gui.render.RenderingState; import org.olat.core.gui.render.StringOutput; import org.olat.core.gui.render.URLBuilder; import org.olat.core.gui.translator.Translator; +import org.olat.core.util.StringHelper; /** * @@ -37,7 +39,7 @@ import org.olat.core.gui.translator.Translator; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { +public abstract class AbstractFlexiTableRenderer extends DefaultComponentRenderer { @Override public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, @@ -47,17 +49,18 @@ public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); String id = ftC.getFormDispatchId(); - sb.append("<div class=\"b_table_wrapper b_floatscrollbox\">"); + sb.append("<div class=\"b_table_wrapper b_flexitable_wrapper b_floatscrollbox\">"); renderHeaderButtons(renderer, sb, ftE, ubu, translator, renderResult, args); sb.append("<table id=\"").append(id).append("\">"); //render headers - renderHeaders(sb, ftE, translator); + renderHeaders(sb, ftC, translator); //render body + sb.append("<tbody>"); renderBody(renderer, sb, ftC, ubu, translator, renderResult); - sb.append("</table>"); + sb.append("</tbody></table>"); - renderFooterButtons(renderer, sb, ftE, ubu, translator, renderResult, args); + renderFooterButtons(renderer, sb, ftC, ubu, translator, renderResult, args); sb.append("</div>"); //source @@ -70,6 +73,16 @@ public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { protected void renderHeaderButtons(Renderer renderer, StringOutput sb, FlexiTableElementImpl ftE, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) { + if(ftE.isFilterEnabled()) { + sb.append("<div class='b_table_filter'>"); + SingleSelection filterEl = ftE.getFilterSelection(); + String text = filterEl.getLabelText(); + if(text != null && text.length() < 128) { + sb.append("<label>").append(text).append("</label>"); + } + renderFormItem(renderer, sb, filterEl, ubu, translator, renderResult, args); + sb.append("</div>"); + } if(ftE.isSearchEnabled()) { renderFormItem(renderer, sb, ftE.getSearchElement(), ubu, translator, renderResult, args); renderFormItem(renderer, sb, ftE.getSearchButton(), ubu, translator, renderResult, args); @@ -77,6 +90,10 @@ public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { if(ftE.getExtendedSearchButton() != null) { renderFormItem(renderer, sb, ftE.getExtendedSearchButton(), ubu, translator, renderResult, args); } + + if(ftE.getExportButton() != null && ftE.isExportEnabled()) { + renderFormItem(renderer, sb, ftE.getExportButton(), ubu, translator, renderResult, args); + } if(ftE.getCustomButton() != null && ftE.isCustomizeColumns()) { renderFormItem(renderer, sb, ftE.getCustomButton(), ubu, translator, renderResult, args); } @@ -90,9 +107,10 @@ public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { } } - protected void renderFooterButtons(Renderer renderer, StringOutput sb, FlexiTableElementImpl ftE, URLBuilder ubu, Translator translator, + protected void renderFooterButtons(Renderer renderer, StringOutput sb, FlexiTableComponent ftC, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) { - + + FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); if(ftE.isSelectAllEnable()) { String formName = ftE.getRootForm().getFormName(); String dispatchId = ftE.getFormDispatchId(); @@ -111,9 +129,14 @@ public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { sb.append("</div>"); } + + if(ftE.getRendererType() != FlexiTableRendererType.dataTables && ftE.getPageSize() > 0) { + renderPagesLinks(sb, ftC); + } } - protected void renderHeaders(StringOutput target, FlexiTableElementImpl ftE, Translator translator) { + protected void renderHeaders(StringOutput target, FlexiTableComponent ftC, Translator translator) { + FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); FlexiTableDataModel<?> dataModel = ftE.getTableDataModel(); FlexiTableColumnModel columnModel = dataModel.getTableColumnModel(); @@ -130,31 +153,37 @@ public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { for(int i=0; i<cols; i++) { FlexiColumnModel fcm = columnModel.getColumnModel(i); if(ftE.isColumnModelVisible(fcm)) { - renderHeader(target, fcm, col++, cols, translator); + renderHeader(target, ftC, fcm, col++, cols, translator); } - } + } target.append("</tr></thead>"); } - protected void renderHeader(StringOutput target, FlexiColumnModel fcm, int colPos, int numOfCols, Translator translator) { - String header = translator.translate(fcm.getHeaderKey()); + protected void renderHeader(StringOutput target, FlexiTableComponent ftC, FlexiColumnModel fcm, int colPos, int numOfCols, Translator translator) { + String header; + if(StringHelper.containsNonWhitespace(fcm.getHeaderLabel())) { + header = fcm.getHeaderLabel(); + } else { + header = translator.translate(fcm.getHeaderKey()); + } target.append("<th class=\""); // add css class for first and last column to support older browsers if (colPos == 0) target.append(" b_first_child"); if (colPos == numOfCols-1) target.append(" b_last_child"); - target.append("\">").append(header).append("</th>"); + target.append("\">").append(header); + renderHeaderSort(target, ftC, fcm, colPos, translator); + target.append("</th>"); } + protected abstract void renderHeaderSort(StringOutput target, FlexiTableComponent ftC, FlexiColumnModel fcm, int colPos, Translator translator); + protected void renderBody(Renderer renderer, StringOutput target, FlexiTableComponent ftC, URLBuilder ubu, Translator translator, RenderResult renderResult) { String id = ftC.getFormDispatchId(); FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); FlexiTableDataModel<?> dataModel = ftE.getTableDataModel(); - - // build rows - target.append("<tbody>"); // the really selected rowid (from the tabledatamodel) int firstRow = ftE.getFirstRow(); @@ -169,7 +198,6 @@ public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { } } // end of table table - target.append("</tbody>"); } protected void renderRow(Renderer renderer, StringOutput target, FlexiTableComponent ftC, String rowIdPrefix, @@ -241,22 +269,103 @@ public abstract class AbstractFlexiTableRenderer implements ComponentRenderer { } target.append("</td>"); } + + private void renderPagesLinks(StringOutput sb, FlexiTableComponent ftC) { + FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); + int pageSize = ftE.getPageSize(); + FlexiTableDataModel<?> dataModel = ftE.getTableDataModel(); + int rows = dataModel.getRowCount(); + + if(pageSize > 0 && rows > pageSize) { + sb.append("<div class='b_table_page'>"); - @Override - public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, - Translator translator, RenderingState rstate) { - // - } + int page = ftE.getPage(); + int maxPage = (int)Math.ceil(((double) rows / (double) pageSize)); + + renderPageBackLink(sb, ftC, page); + renderPageNumberLinks(sb, ftC, page, maxPage); + renderPageNextLink(sb, ftC, page, maxPage); - @Override - public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, - RenderingState rstate) { - // + sb.append("</div>"); + } } - + private void renderPageBackLink(StringOutput sb, FlexiTableComponent ftC, int page) { + if (page <= 0) return; + FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); + Form theForm = ftE.getRootForm(); + sb.append("<a class='b_table_backward' href=\"javascript:") + .append(FormJSHelper.getXHRFnCallFor(theForm, ftC.getFormDispatchId(), 1, new NameValuePair("page", Integer.toString(page - 1)))) + .append("\">").append(" ").append("</a>"); + } + + private void renderPageNextLink(StringOutput sb, FlexiTableComponent ftC, int page, int maxPage) { + if (page == maxPage) return; + FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); + Form theForm = ftE.getRootForm(); + sb.append("<a class='b_table_forward' href=\"javascript:") + .append(FormJSHelper.getXHRFnCallFor(theForm, ftC.getFormDispatchId(), 1, new NameValuePair("page", Integer.toString(page + 1)))) + .append("\">").append(" ").append("</a>"); + } + + private void renderPageNumberLinks(StringOutput sb, FlexiTableComponent ftC, int page, int maxPage) { + if (maxPage < 12) { + for (int i=0; i<maxPage; i++) { + appendPagenNumberLink(sb, ftC, page, i); + } + } else { + int powerOf10 = String.valueOf(maxPage).length() - 1; + int maxStepSize = (int) Math.pow(10, powerOf10); + int stepSize = (int) Math.pow(10, String.valueOf(page).length() - 1); + boolean isStep = false; + int useEveryStep = 3; + int stepCnt = 0; + boolean isNear = false; + int nearleft = 5; + int nearright = 5; + if (page < nearleft) { + nearleft = page; + nearright += (nearright - nearleft); + } else if (page > (maxPage - nearright)) { + nearright = maxPage - page; + nearleft += (nearleft - nearright); + } + for (int i = 1; i <= maxPage; i++) { + // adapt stepsize if needed + stepSize = adaptStepIfNeeded(page, maxStepSize, stepSize, i); + + isStep = ((i % stepSize) == 0); + if (isStep) { + stepCnt++; + isStep = isStep && (stepCnt % useEveryStep == 0); + } + isNear = (i > (page - nearleft) && i < (page + nearright)); + if (i == 1 || i == maxPage || isStep || isNear) { + appendPagenNumberLink(sb, ftC, page, i); + } + } + } + } + + private void appendPagenNumberLink(StringOutput sb, FlexiTableComponent ftC, int page, int i) { + FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); + Form theForm = ftE.getRootForm(); + String cssClass = (page == i) ? "b_table_page b_table_page_active" : "b_table_page"; + sb.append("<a class='").append(cssClass).append("' href=\"javascript:") + .append(FormJSHelper.getXHRFnCallFor(theForm, ftC.getFormDispatchId(), 1, new NameValuePair("page", Integer.toString(i)))) + .append("\">").append(i+1).append("</a>"); + } + private int adaptStepIfNeeded(final int page, final int maxStepSize, final int stepSize, final int i) { + int newStepSize = stepSize; + if (i < page && stepSize > 1 && ((page - i) / stepSize == 0)) { + newStepSize = stepSize / 10; + } else if (i > page && stepSize < maxStepSize && ((i - page) / stepSize == 9)) { + newStepSize = stepSize * 10; + } + return newStepSize; + } } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java index 8a4288e33b9ead93f64ff8a89ff183de1d355d03..d150fb5f36cabdfafdb5ebc99deef8f3f8a32692 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java @@ -34,6 +34,7 @@ package org.olat.core.gui.components.form.flexible.impl.elements.table; public class DefaultFlexiColumnModel implements FlexiColumnModel { private String headerKey; + private String headerLabel; private String columnKey; private int columnIndex; @@ -80,6 +81,15 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel { return headerKey; } + @Override + public String getHeaderLabel() { + return headerLabel; + } + + public void setHeaderLabel(String headerLabel) { + this.headerLabel = headerLabel; + } + @Override public String getColumnKey() { return columnKey; diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModel.java new file mode 100644 index 0000000000000000000000000000000000000000..52c3373a8bf43cae7a876983a5be60a8c0c0e3ef --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModel.java @@ -0,0 +1,38 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.core.gui.components.form.flexible.impl.elements.table; + +import org.olat.core.gui.media.MediaResource; + + +/** + * + * Mark a datamodel as exportable + * + * Initial date: 11.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public interface ExportableFlexiTableDataModel { + + public MediaResource export(FlexiTableComponent ftC); + + +} diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModelDelegate.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModelDelegate.java new file mode 100644 index 0000000000000000000000000000000000000000..767ffb59a006242f48e0a4710357a37fb341a0ff --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModelDelegate.java @@ -0,0 +1,62 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.core.gui.components.form.flexible.impl.elements.table; + +import java.util.ArrayList; +import java.util.List; + +import org.olat.core.gui.media.MediaResource; +import org.olat.core.gui.translator.Translator; + + +/** + * + * Mark a datamodel as exportable + * + * Initial date: 11.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class ExportableFlexiTableDataModelDelegate { + + public MediaResource export(FlexiTableComponent ftC, Translator translator) { + FlexiTableDataModel<?> dataModel = ftC.getFlexiTableElement().getTableDataModel(); + List<FlexiColumnModel> columns = getColumnModels(dataModel); + return export(ftC, columns, translator); + } + + public MediaResource export(FlexiTableComponent ftC, List<FlexiColumnModel> columns, Translator translator) { + XlsFlexiTableExporter exporter = new XlsFlexiTableExporter(); + return exporter.export(ftC, columns, translator); + } + + protected List<FlexiColumnModel> getColumnModels(FlexiTableDataModel<?> delegate) { + FlexiTableColumnModel columnModel = delegate.getTableColumnModel(); + int numOfColumns = columnModel.getColumnCount(); + List<FlexiColumnModel> columns = new ArrayList<>(numOfColumns); + for(int i=0; i<numOfColumns; i++) { + FlexiColumnModel column = columnModel.getColumnModel(i); + if(column.isDefaultVisible()) { + columns.add(column); + } + } + return columns; + } +} diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FilterableFlexiTableModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FilterableFlexiTableModel.java new file mode 100644 index 0000000000000000000000000000000000000000..a974a86000cfd2c04842484855e271081d84c81a --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FilterableFlexiTableModel.java @@ -0,0 +1,33 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.core.gui.components.form.flexible.impl.elements.table; + +/** + * Mark a data model as filterable + * + * Initial date: 11.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public interface FilterableFlexiTableModel { + + public void filter(String key); + +} diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnModel.java index 79a26c1f93980146701b8fde12dd98ec2bbf8d04..17a38b18bf7da066927f9026539422dc07a3dd3f 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnModel.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiColumnModel.java @@ -49,6 +49,8 @@ public interface FlexiColumnModel { public String getHeaderKey(); + public String getHeaderLabel(); + public String getColumnKey(); public int getColumnIndex(); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiDataTablesRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiDataTablesRenderer.java index 7f6b82ee3cbd5ddd64bdedb3b1f61621e4a2cef5..09bfd5a860bed51388c706f99b3dbb8f9c5d84c0 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiDataTablesRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiDataTablesRenderer.java @@ -87,22 +87,22 @@ class FlexiDataTablesRenderer extends AbstractFlexiTableRenderer implements Comp .append("jQuery(function() {\n") .append(" var scrollHeight = ").append(scrollHeight).append(";\n") .append(" var selectedIndex =").append(selectPos).append(";\n") - .append(" jQuery('#").append(id).append("').dataTable( {\n") - .append(" 'bScrollInfinite': true,\n") - .append(" 'bScrollCollapse': true,\n") - .append(" 'bFilter': false,\n") - .append(" 'sScrollY': ").append(scrollHeight).append(",\n") - .append(" 'bProcessing': true,\n") - .append(" 'bServerSide': true,\n") - .append(" 'iDisplayLength': ").append(ftE.getPageSize()).append(",\n") - .append(" 'iDeferLoading': ").append(loadedRows).append(",\n") - .append(" 'sAjaxSource': '").append(ftE.getMapperUrl()).append("',\n") - .append(" 'oLanguage': {\n") - .append(" 'sInfo': '").append(translator.translate("table.sInfo")).append("',\n") - .append(" 'sEmptyTable': '").append(translator.translate("table.sEmptyTable")).append("'\n") - .append(" },\n") - .append(" 'asStripeClasses': ['','b_table_odd'],\n") - .append(" 'aoColumns': [\n"); + .append(" jQuery('#").append(id).append("').dataTable( {\n") + .append(" 'bScrollInfinite': true,\n") + .append(" 'bScrollCollapse': true,\n") + .append(" 'bFilter': false,\n") + .append(" 'sScrollY': ").append(scrollHeight).append(",\n") + .append(" 'bProcessing': true,\n") + .append(" 'bServerSide': true,\n") + .append(" 'iDisplayLength': ").append(ftE.getPageSize()).append(",\n") + .append(" 'iDeferLoading': ").append(loadedRows).append(",\n") + .append(" 'sAjaxSource': '").append(ftE.getMapperUrl()).append("',\n") + .append(" 'oLanguage': {\n") + .append(" 'sInfo': '").append(translator.translate("table.sInfo")).append("',\n") + .append(" 'sEmptyTable': '").append(translator.translate("table.sEmptyTable")).append("'\n") + .append(" },\n") + .append(" 'asStripeClasses': ['','b_table_odd'],\n") + .append(" 'aoColumns': [\n"); int count = 0; if(ftE.isMultiSelect()) { target.append(" {'mData':'multiSelectCol', bSortable: false }\n"); @@ -176,4 +176,9 @@ class FlexiDataTablesRenderer extends AbstractFlexiTableRenderer implements Comp .append("/* ]]> */\n") .append("</script>\n"); } + + @Override + protected void renderHeaderSort(StringOutput target, FlexiTableComponent ftC, FlexiColumnModel fcm, int colPos, Translator translator) { + //nothing to do, dataTables do it alone + } } \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java index 6df2e9c3a4d26b42923debbbef23b4476b340851..adacc94847821af63b61ce0d96a19be0861d761c 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java @@ -26,8 +26,12 @@ package org.olat.core.gui.components.form.flexible.impl.elements.table; +import org.olat.core.commons.persistence.SortKey; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.ComponentRenderer; +import org.olat.core.gui.components.form.flexible.impl.Form; +import org.olat.core.gui.components.form.flexible.impl.FormJSHelper; +import org.olat.core.gui.components.form.flexible.impl.NameValuePair; import org.olat.core.gui.render.RenderResult; import org.olat.core.gui.render.Renderer; import org.olat.core.gui.render.StringOutput; @@ -45,4 +49,38 @@ class FlexiTableClassicRenderer extends AbstractFlexiTableRenderer implements Co Translator translator, RenderResult renderResult, String[] args) { super.render(renderer, target, source, ubu, translator, renderResult, args); } + + @Override + protected void renderHeaderSort(StringOutput sb, FlexiTableComponent ftC, FlexiColumnModel fcm, int colPos, Translator translator) { + // sort is not defined + if (!fcm.isSortable() || fcm.getSortKey() == null) return; + + FlexiTableElementImpl ftE = ftC.getFlexiTableElement(); + + Boolean asc = null; + String sortKey = fcm.getSortKey(); + SortKey[] orderBy = ftE.getOrderBy(); + if(orderBy != null && orderBy.length > 0) { + for(int i=orderBy.length; i-->0; ) { + if(sortKey.equals(orderBy[i].getKey())) { + asc = new Boolean(orderBy[i].isAsc()); + } + } + } + + Form theForm = ftE.getRootForm(); + if(asc == null) { + sb.append("<a class='b_sorting' href=\"javascript:") + .append(FormJSHelper.getXHRFnCallFor(theForm, ftC.getFormDispatchId(), 1, new NameValuePair("sort", sortKey), new NameValuePair("asc", "asc"))) + .append("\">").append(" ").append("</a>"); + } else if(asc.booleanValue()) { + sb.append("<a class='b_sorting_asc' href=\"javascript:") + .append(FormJSHelper.getXHRFnCallFor(theForm, ftC.getFormDispatchId(), 1, new NameValuePair("sort", sortKey), new NameValuePair("asc", "desc"))) + .append("\">").append(" ").append("</a>"); + } else { + sb.append("<a class='b_sorting_desc' href=\"javascript:") + .append(FormJSHelper.getXHRFnCallFor(theForm, ftC.getFormDispatchId(), 1, new NameValuePair("sort", sortKey), new NameValuePair("asc", "asc"))) + .append("\">").append(" ").append("</a>"); + } + } } \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java index e7a24a76bc2a40b122430dd8accaa1af4372b771..fa1920cd574de4ba8708b43cb51954a7bddcdc65 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java @@ -46,10 +46,13 @@ import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemCollection; import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; import org.olat.core.gui.components.form.flexible.elements.FormLink; +import org.olat.core.gui.components.form.flexible.elements.SingleSelection; import org.olat.core.gui.components.form.flexible.elements.TextElement; +import org.olat.core.gui.components.form.flexible.impl.Form; import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.FormItemImpl; import org.olat.core.gui.components.form.flexible.impl.elements.FormLinkImpl; +import org.olat.core.gui.components.form.flexible.impl.elements.SingleSelectionImpl; import org.olat.core.gui.components.form.flexible.impl.elements.TextElementImpl; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.control.Controller; @@ -57,6 +60,7 @@ import org.olat.core.gui.control.ControllerEventListener; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController; +import org.olat.core.gui.media.MediaResource; import org.olat.core.gui.translator.Translator; import org.olat.core.util.StringHelper; import org.olat.core.util.ValidationStatus; @@ -79,18 +83,19 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle private int currentPage; private int currentFirstResult; private int pageSize; + private boolean exportEnabled; private boolean searchEnabled; private boolean selectAllEnabled; - private int columnLabelForDragAndDrop; - private FormLink customButton; + private FormLink customButton, exportButton; private FormLink searchButton, extendedSearchButton; + private SingleSelection filterEl; private TextElement searchFieldEl; private ExtendedFlexiTableSearchController extendedSearchCtrl; private final FlexiTableDataModel<?> dataModel; - private FlexiTableDataSource<?> dataSource; + private final FlexiTableDataSource<?> dataSource; private final FlexiTableComponent component; private CloseableCalloutWindowController callout; private final WindowControl wControl; @@ -136,7 +141,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle String dispatchId = component.getDispatchID(); customButton = new FormLinkImpl(dispatchId + "_customButton", "rCustomButton", "search", Link.BUTTON); customButton.setTranslator(translator); - customButton.setCustomEnabledLinkCSS("b_with_small_icon_right b_with_small_icon_only b_table_prefs"); + customButton.setCustomEnabledLinkCSS("b_with_small_icon_only b_table_prefs"); components.put("rCustomize", customButton); this.pageSize = pageSize; @@ -168,6 +173,9 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle @Override public void setRendererType(FlexiTableRendererType rendererType) { this.rendererType = rendererType; + if(component != null) { + component.setDirty(true); + } } @Override @@ -179,8 +187,6 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle public void setMultiSelect(boolean multiSelect) { this.multiSelect = multiSelect; } - - public boolean isCustomizeColumns() { return customizeColumns; @@ -198,6 +204,60 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle this.wrapperSelector = wrapperSelector; } + @Override + public boolean isFilterEnabled() { + return filterEl != null; + } + + @Override + public void setFilterKeysAndValues(String labelI18nKey, String[] keys, String[] values) { + if(keys == null || keys.length == 0) { + components.remove("rFilter"); + filterEl = null; + } else { + String dispatchId = component.getDispatchID(); + String name = dispatchId + "_filter"; + filterEl = new SingleSelectionImpl(name, name, SingleSelectionImpl.createSelectboxLayouter(name, name)); + filterEl.setTranslator(getTranslator()); + if(StringHelper.containsNonWhitespace(labelI18nKey)) { + filterEl.setLabel(labelI18nKey, null); + filterEl.showLabel(true); + } + filterEl.addActionListener(null, FormEvent.ONCHANGE); + filterEl.setKeysAndValues(keys, values, null); + components.put("rFilter", filterEl); + rootFormAvailable(filterEl); + } + } + + public SingleSelection getFilterSelection() { + return filterEl; + } + + public boolean isExportEnabled() { + return exportEnabled; + } + + public void setExportEnabled(boolean enabled) { + this.exportEnabled = enabled; + if(exportEnabled) { + exportButton = null; + + String dispatchId = component.getDispatchID(); + exportButton = new FormLinkImpl(dispatchId + "_exportButton", "rExportButton", "export", Link.BUTTON); + exportButton.setTranslator(translator); + exportButton.setCustomEnabledLinkCSS("b_with_small_icon_only b_table_download"); + components.put("rExport", exportButton); + rootFormAvailable(exportButton); + } else { + exportButton = null; + } + } + + public FormLink getExportButton() { + return exportButton; + } + @Override public boolean isSearchEnabled() { return searchEnabled; @@ -301,8 +361,15 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle @Override public void setPage(int page) { - currentPage = page;//TODO - //tableModel.load(0, getPageSize()); + if(currentPage == page) return; + + currentPage = page; + if(dataSource != null) { + int firstResult = currentPage * getPageSize(); + int maxResults = getPageSize(); + dataSource.load(getSearchText(), getConditionalQueries(), firstResult, maxResults, orderBy); + } + component.setDirty(true); } public int getCurrentFirstResult() { @@ -327,7 +394,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle return components.get(name); } - protected void addFormItem(FormItem item) { + public void addFormItem(FormItem item) { components.put(item.getName(), item); } @@ -351,11 +418,20 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle setMultiSelectIndex(selectedIndexArr); } - String selectedIndex = getRootForm().getRequestParameter("rSelect"); - String dispatchuri = getRootForm().getRequestParameter("dispatchuri"); - String select = getRootForm().getRequestParameter("select"); + Form form = getRootForm(); + String selectedIndex = form.getRequestParameter("rSelect"); + String dispatchuri = form.getRequestParameter("dispatchuri"); + String select = form.getRequestParameter("select"); + String page = form.getRequestParameter("page"); + String sort = form.getRequestParameter("sort"); if("undefined".equals(dispatchuri)) { evalSearchRequest(ureq); + } else if(StringHelper.containsNonWhitespace(page)) { + int p = Integer.parseInt(page); + setPage(p); + } else if(StringHelper.containsNonWhitespace(sort)) { + String asc = form.getRequestParameter("asc"); + sort(sort, "asc".equals(asc)); } else if(StringHelper.containsNonWhitespace(selectedIndex)) { int index = selectedIndex.lastIndexOf('-'); if(index > 0 && index+1 < selectedIndex.length()) { @@ -367,9 +443,16 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle } else if(searchButton != null && searchButton.getFormDispatchId().equals(dispatchuri)) { evalSearchRequest(ureq); - } else if(extendedSearchButton != null + } else if(extendedSearchButton != null && extendedSearchButton.getFormDispatchId().equals(dispatchuri)) { openExtendedSearch(ureq); + } else if(filterEl != null + && filterEl.getFormDispatchId().equals(dispatchuri)) { + filterEl.evalFormRequest(ureq); + filter(); + } else if(exportButton != null + && exportButton.getFormDispatchId().equals(dispatchuri)) { + export(ureq); } else if(dispatchuri != null && select != null && select.equals("checkall")) { doSelectAll(); } else if(dispatchuri != null && select != null && select.equals("uncheckall")) { @@ -414,6 +497,40 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle } } + protected void sort(String sortKey, boolean asc) { + SortKey key = new SortKey(sortKey, asc); + orderBy = new SortKey[]{ key }; + if(dataModel instanceof SortableFlexiTableDataModel) { + ((SortableFlexiTableDataModel<?>)dataModel).sort(key); + component.setDirty(true); + } else if(dataSource != null) { + dataSource.load(null, conditionalQueries, 0, getPageSize(), orderBy); + } + } + + protected void filter() { + if(filterEl.isOneSelected()) { + String filter = filterEl.getSelectedKey(); + if(dataModel instanceof FilterableFlexiTableModel) { + ((FilterableFlexiTableModel)dataModel).filter(filter); + } else if(dataSource != null) { + List<String> conditionalQueries = Collections.singletonList(filter); + dataSource.load(null, conditionalQueries, 0, getPageSize(), orderBy); + } + } + } + + protected void export(UserRequest ureq) { + MediaResource resource; + if(dataModel instanceof ExportableFlexiTableDataModel) { + resource = ((ExportableFlexiTableDataModel)dataModel).export(component); + } else { + ExportableFlexiTableDataModelDelegate exporter = new ExportableFlexiTableDataModelDelegate(); + resource = exporter.export(component, getTranslator()); + } + ureq.getDispatchResult().setResultingMediaResource(resource); + } + protected void openExtendedSearch(UserRequest ureq) { callout = new CloseableCalloutWindowController(ureq, wControl, extendedSearchCtrl.getInitialComponent(), extendedSearchButton, "Search", true, "o_sel_flexi_search_callout"); @@ -482,7 +599,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle if(StringHelper.containsNonWhitespace(search)) { doSearch(search, null); } else { - doResetSearch(ureq); + doResetSearch(); } } @@ -543,7 +660,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle return Arrays.equals(orderBy , sortKeys); } - protected void doResetSearch(UserRequest ureq) { + protected void doResetSearch() { if(dataSource != null) { resetInternComponents(); dataSource.clear(); @@ -654,9 +771,11 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle @Override protected void rootFormAvailable() { - rootFormAvailable(searchFieldEl); + rootFormAvailable(filterEl); rootFormAvailable(searchButton); rootFormAvailable(customButton); + rootFormAvailable(exportButton); + rootFormAvailable(searchFieldEl); rootFormAvailable(extendedSearchButton); } @@ -677,6 +796,9 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle } public int getFirstRow() { + if(getPageSize() > 0) { + return getPage() * getPageSize(); + } return 0; } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableExporter.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableExporter.java new file mode 100644 index 0000000000000000000000000000000000000000..ac446d87454762fd92a207676829a5bcebbfd8cc --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableExporter.java @@ -0,0 +1,37 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.core.gui.components.form.flexible.impl.elements.table; + +import java.util.List; + +import org.olat.core.gui.media.MediaResource; +import org.olat.core.gui.translator.Translator; + +/** + * + * Initial date: 11.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public interface FlexiTableExporter { + + public MediaResource export(FlexiTableComponent ftC, List<FlexiColumnModel> columns, Translator translator); + +} diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableModelMapper.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableModelMapper.java index 3bd79c82058788df48dddc7f06dd69aa0ca48cac..1e995fc76764b85a3068631b14ae7d1060d96f72 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableModelMapper.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableModelMapper.java @@ -143,7 +143,7 @@ public class FlexiTableModelMapper implements Mapper { item.setRootForm(ftE.getRootForm()); } ftE.addFormItem(item); - val = renderFormItem(item, request, ftE.getTranslator()); + val = renderFormItem(item, request); } else { val = renderColumnRenderer(col, value, i, ftC, ubu, ftE.getTranslator()); } @@ -173,7 +173,7 @@ public class FlexiTableModelMapper implements Mapper { return target.toString(); } - private String renderFormItem(FormItem item, HttpServletRequest request, Translator translator) { + private String renderFormItem(FormItem item, HttpServletRequest request) { UserSession usess = CoreSpringFactory.getImpl(UserSessionManager.class).getUserSession(request); ChiefController cc = (ChiefController)Windows.getWindows(usess).getAttribute("AUTHCHIEFCONTROLLER"); return cc.getWindow().renderComponent(item.getComponent()); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SortableFlexiTableDataModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SortableFlexiTableDataModel.java new file mode 100644 index 0000000000000000000000000000000000000000..8924eb505cf970a808d41e767a1c8b9d541f4e45 --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SortableFlexiTableDataModel.java @@ -0,0 +1,38 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.core.gui.components.form.flexible.impl.elements.table; + +import org.olat.core.commons.persistence.SortKey; + +/** + * + * Mark a datamodel as sortable + * + * Initial date: 11.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public interface SortableFlexiTableDataModel<T> extends FlexiTableDataModel<T> { + + public void sort(SortKey sortKey); + + public Object getValueAt(T row, int col); + +} diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SortableFlexiTableModelDelegate.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SortableFlexiTableModelDelegate.java new file mode 100644 index 0000000000000000000000000000000000000000..55ec72c25e0e2a09c13d33ac5ff55813c194cb34 --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SortableFlexiTableModelDelegate.java @@ -0,0 +1,167 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.core.gui.components.form.flexible.impl.elements.table; + +import java.sql.Timestamp; +import java.text.Collator; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +import org.olat.core.commons.persistence.SortKey; + +/** + * Replicate the same mechanism as in the TableController but + * as delegate. + * + * + * Initial date: 11.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class SortableFlexiTableModelDelegate<T> { + + private boolean asc; + private int columnIndex; + protected final Collator collator; + private final SortableFlexiTableDataModel<T> tableModel; + + public SortableFlexiTableModelDelegate(SortKey orderBy, SortableFlexiTableDataModel<T> tableModel, Locale locale) { + this.tableModel = tableModel; + if(orderBy != null && orderBy.getKey() != null) { + FlexiColumnModel colModel = getColumnModel(orderBy.getKey(), tableModel.getTableColumnModel()); + columnIndex = colModel.getColumnIndex(); + asc = orderBy.isAsc(); + } else { + columnIndex = 0; + asc = true; + } + + if (locale != null) { + collator = Collator.getInstance(locale); + } else { + collator = Collator.getInstance(); + } + } + + public List<T> sort() { + List<T> rows = new ArrayList<>(); + for(int i=0; i<tableModel.getRowCount(); i++) { + rows.add(tableModel.getObject(i)); + } + sort(rows); + if(!asc) { + Collections.reverse(rows); + } + return rows; + } + + protected void sort(List<T> rows) { + Collections.sort(rows, new DefaultComparator()); + } + + private static final FlexiColumnModel getColumnModel(String orderBy, FlexiTableColumnModel columnModel) { + FlexiColumnModel colModel = null; + for(int i=columnModel.getColumnCount(); i-->0; ) { + FlexiColumnModel cm = columnModel.getColumnModel(i); + if(cm.isSortable() && orderBy.equals(cm.getSortKey())) { + colModel = cm; + break; + } + } + return colModel; + } + + public class DefaultComparator implements Comparator<T> { + + @Override + public int compare(T t1, T t2) { + Object val1 = tableModel.getValueAt(t1, columnIndex); + Object val2 = tableModel.getValueAt(t2, columnIndex); + + if (val1 == null || val2 == null) { + return compareNullObjects(val1, val2); + } + if (val1 instanceof String && val2 instanceof String) { + return collator.compare(val1, val2); + } + if(val1 instanceof Date && val2 instanceof Date) { + return compareDateAndTimestamps((Date)val1, (Date)val2); + } + if (val1 instanceof Comparable && val2 instanceof Comparable) { + @SuppressWarnings("rawtypes") + Comparable c1 = (Comparable)val1; + @SuppressWarnings("rawtypes") + Comparable c2 = (Comparable)val2; + @SuppressWarnings("unchecked") + int s = c1.compareTo(c2); + return s; + } + return val1.toString().compareTo(val2.toString()); + } + + protected int compareString(final String a, final String b) { + if (a == null || b == null) { + return compareNullObjects(a, b); + } + return collator == null ? a.compareTo(b) : collator.compare(a, b); + } + + protected int compareBooleans(final Boolean a, final Boolean b) { + if (a == null || b == null) { + return compareNullObjects(a, b); + } + + boolean ba = a.booleanValue(); + boolean bb = b.booleanValue(); + return ba? (bb? 0: -1):(bb? 1: 0); + } + + protected int compareDateAndTimestamps(Date a, Date b) { + if (a == null || b == null) { + return compareNullObjects(a, b); + } + + if (a instanceof Timestamp) { // a timestamp (a) cannot compare a date (b), but vice versa is ok. + if(b instanceof Timestamp) { + return ((Timestamp)a).compareTo((Timestamp)b); + } else { + Timestamp ta = (Timestamp)a; + Date aAsDate = new Date(ta.getTime()); + return aAsDate.compareTo((Date)b); + } + } else if (b instanceof Timestamp) { + Timestamp tb = (Timestamp)b; + Date bAsDate = new Date(tb.getTime()); + return ((Date)a).compareTo(bAsDate); + } + return a.compareTo(b); + } + + protected int compareNullObjects(final Object a, final Object b) { + boolean ba = (a == null); + boolean bb = (b == null); + return ba? (bb? 0: -1):(bb? 1: 0); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/StaticFlexiColumnModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/StaticFlexiColumnModel.java index 5a464362a5d153541ed899760afbfdf0577154c4..43cf35116005b7f6d7edf1caac37d2bee307e8d2 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/StaticFlexiColumnModel.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/StaticFlexiColumnModel.java @@ -51,6 +51,11 @@ public class StaticFlexiColumnModel extends AbstractFlexiColumnModel { super(headerKey, columnIndex, FlexiColumnModel.ALIGNMENT_LEFT, renderer); this.action = action; } + + public StaticFlexiColumnModel(String headerKey, int columnIndex, String action, boolean sortable, String sortedKey, FlexiCellRenderer renderer) { + super(headerKey, columnIndex, FlexiColumnModel.ALIGNMENT_LEFT, sortable, sortedKey, renderer); + this.action = action; + } @Override public String getAction() { diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SyntheticFormItem.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SyntheticFormItem.java deleted file mode 100644 index a9de2218046ea196fcad9d6ea367298676a67a93..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/SyntheticFormItem.java +++ /dev/null @@ -1,275 +0,0 @@ -/** - * <a href="http://www.openolat.org"> - * OpenOLAT - Online Learning and Training</a><br> - * <p> - * Licensed under the Apache License, Version 2.0 (the "License"); <br> - * you may not use this file except in compliance with the License.<br> - * You may obtain a copy of the License at the - * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> - * <p> - * Unless required by applicable law or agreed to in writing,<br> - * software distributed under the License is distributed on an "AS IS" BASIS, <br> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> - * See the License for the specific language governing permissions and <br> - * limitations under the License. - * <p> - * Initial code contributed and copyrighted by<br> - * frentix GmbH, http://www.frentix.com - * <p> - */ -package org.olat.core.gui.components.form.flexible.impl.elements.table; - -import java.util.List; - -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.form.flexible.FormItem; -import org.olat.core.gui.components.form.flexible.FormItemContainer; -import org.olat.core.gui.components.form.flexible.FormLayouter; -import org.olat.core.gui.components.form.flexible.impl.Form; -import org.olat.core.gui.control.Controller; -import org.olat.core.gui.translator.Translator; -import org.olat.core.util.ValidationStatus; - -/** - * - * Initial date: 06.02.2013<br> - * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com - * - */ -class SyntheticFormItem<T> implements FormItem { - - private final String name; - private final String itemId; - private final String dispatchId; - private final FlexiTableElementImpl table; - - public SyntheticFormItem(String name, String itemId, String dispatchId, FlexiTableElementImpl table) { - this.name = name; - this.itemId = itemId; - this.dispatchId = dispatchId; - this.table = table; - } - - - @Override - public String getName() { - return name; - } - - @Override - public String getFormItemId() { - return itemId; - } - - @Override - public String getFormDispatchId() { - return dispatchId; - } - - @Override - public Form getRootForm() { - return table.getRootForm(); - } - - @Override - public void evalFormRequest(UserRequest ureq) { - // - } - - @Override - public void doDispatchFormRequest(UserRequest ureq) { - // - } - - @Override - public void validate(List<ValidationStatus> validationResults) { - // - } - - @Override - public void reset() { - // - } - - @Override - public boolean hasFocus() { - return false; - } - - @Override - public void setFocus(boolean hasFocus) { - // - } - - - @Override - public String getElementCssClass() { - return null; - } - - @Override - public void setElementCssClass(String cssClass) { - // - } - - @Override - public Component getComponent() { - return null; - } - - @Override - public Component getLabelC() { - return null; - } - - @Override - public String getLabelText() { - return null; - } - - @Override - public void setLabel(String labelkey, String[] params) { - // - } - - @Override - public void setLabel(String labelkey, String[] params, boolean translate) { - // - } - - @Override - public FormItem setLabelComponent(FormItem labelComponent, FormItemContainer formLayout) { - return null; - } - - @Override - public boolean isMandatory() { - return false; - } - - @Override - public void setMandatory(boolean isMandatory) { - // - } - - @Override - public Component getErrorC() { - return null; - } - - @Override - public void setErrorKey(String errorKey, String[] params) { - // - } - - @Override - public void setErrorComponent(FormItem errorFormItem, FormLayouter container) { - // - } - - @Override - public Component getExampleC() { - return null; - } - - @Override - public String getExampleText() { - return null; - } - - @Override - public void setExampleKey(String exampleKey, String[] params) { - // - } - - @Override - public Translator getTranslator() { - return null; - } - - @Override - public void setTranslator(Translator translator) { - // - } - - @Override - public boolean isVisible() { - return false; - } - - @Override - public void setVisible(boolean isVisible) { - // - } - - @Override - public boolean isEnabled() { - return true; - } - - @Override - public void setEnabled(boolean isEnabled) { - // - } - - @Override - public boolean hasError() { - return false; - } - - @Override - public boolean hasLabel() { - return false; - } - - @Override - public boolean hasExample() { - return false; - } - - @Override - public void setRootForm(Form rootForm) { - // - } - - @Override - public void showLabel(boolean show) { - // - } - - @Override - public void showError(boolean show) { - // - } - - @Override - public void clearError() { - // - } - - @Override - public void showExample(boolean show) { - // - } - - @Override - public void addActionListener(Controller listener, int events) { - // - } - - @Override - public int getAction() { - return 0; - } - - @Override - public void setUserObject(Object userObject) { - // - } - - @Override - public Object getUserObject() { - return null; - } -} \ No newline at end of file diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/VisibleFlexiColumnsModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/VisibleFlexiColumnsModel.java index a302db3d2a35eeef37193e57d1eeab57b80b80a6..2199d0db8d5bea5a0edc20ead23ae3c72a8f4ef0 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/VisibleFlexiColumnsModel.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/VisibleFlexiColumnsModel.java @@ -61,6 +61,9 @@ public class VisibleFlexiColumnsModel implements TableDataModel<FlexiColumnModel case 0: // on/off indicator; true if column is visible return (enabledCols.contains(new Integer(cd.getColumnIndex())) ? Boolean.TRUE : Boolean.FALSE); case 1: // name of column + if(cd.getHeaderLabel() != null) { + return cd.getHeaderLabel(); + } return translator.translate(cd.getHeaderKey()); default: return "ERROR"; diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/XlsFlexiTableExporter.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/XlsFlexiTableExporter.java new file mode 100644 index 0000000000000000000000000000000000000000..e2044c40f85d38cf865c287da72e273b9d6cb685 --- /dev/null +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/XlsFlexiTableExporter.java @@ -0,0 +1,159 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.core.gui.components.form.flexible.impl.elements.table; + +import java.util.List; + +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.media.MediaResource; +import org.olat.core.gui.media.WorkbookMediaResource; +import org.olat.core.gui.render.StringOutput; +import org.olat.core.gui.render.StringOutputPool; +import org.olat.core.gui.render.URLBuilder; +import org.olat.core.gui.translator.Translator; +import org.olat.core.util.StringHelper; +import org.olat.core.util.filter.FilterFactory; + +/** + * Export as excel file with POI + * + * Initial date: 11.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class XlsFlexiTableExporter implements FlexiTableExporter { + private static final URLBuilder ubu = new EmptyURLBuilder(); + + private CellStyle headerCellStyle; + + public MediaResource export(FlexiTableComponent ftC, List<FlexiColumnModel> columns, Translator translator) { + Workbook wb = new HSSFWorkbook(); + headerCellStyle = getHeaderCellStyle(wb); + + Sheet exportSheet = wb.createSheet("Sheet 1"); + createHeader(columns, translator, exportSheet); + createData(ftC, columns, translator, exportSheet); + + return new WorkbookMediaResource(wb); + } + + private void createHeader(List<FlexiColumnModel> columns, Translator translator, Sheet sheet) { + Row headerRow = sheet.createRow(0); + for (int c=0; c<columns.size(); c++) { + FlexiColumnModel cd = columns.get(c); + String headerVal = cd.getHeaderLabel() == null ? + translator.translate(cd.getHeaderKey()) : cd.getHeaderLabel(); + Cell cell = headerRow.createCell(c); + cell.setCellValue(headerVal); + cell.setCellStyle(headerCellStyle); + } + } + + private void createData(FlexiTableComponent ftC, List<FlexiColumnModel> columns, Translator translator, Sheet sheet) { + FlexiTableDataModel<?> dataModel = ftC.getFlexiTableElement().getTableDataModel(); + + int numOfRow = dataModel.getRowCount(); + int numOfColumns = columns.size(); + for (int r=0; r<numOfRow; r++) { + Row dataRow = sheet.createRow(r+1); + for (int c = 0; c<numOfColumns; c++) { + FlexiColumnModel cd = columns.get(c); + + StringOutput so = StringOutputPool.allocStringBuilder(1000); + Object value = dataModel.getValueAt(r, cd.getColumnIndex()); + cd.getCellRenderer().render(so, value, r, ftC, ubu, translator); + + String cellValue = StringOutputPool.freePop(so); + cellValue = StringHelper.stripLineBreaks(cellValue); + cellValue = FilterFactory.getHtmlTagsFilter().filter(cellValue); + if(StringHelper.containsNonWhitespace(cellValue)) { + cellValue = StringEscapeUtils.unescapeHtml(cellValue); + } + Cell cell = dataRow.createCell(c); + cell.setCellValue(cellValue); + } + } + } + + private CellStyle getHeaderCellStyle(final Workbook wb) { + CellStyle cellStyle = wb.createCellStyle(); + Font boldFont = wb.createFont(); + boldFont.setBoldweight(Font.BOLDWEIGHT_BOLD); + cellStyle.setFont(boldFont); + return cellStyle; + } + + private static class EmptyURLBuilder extends URLBuilder { + + public EmptyURLBuilder() { + super(null, null, null, null); + } + + @Override + public void appendTarget(StringOutput sb) { + // nothing to do + } + + @Override + public void buildJavaScriptBgCommand(StringOutput buf, String[] keys, String[] values, int mode) { + // nothing to do + } + + @Override + public void buildURI(StringOutput buf, String[] keys, String[] values, int mode) { + // nothing to do + } + + @Override + public void buildURI(StringOutput buf, String[] keys, String[] values, String modURI, int mode) { + // nothing to do + } + + @Override + public void buildURI(StringOutput buf, String[] keys, String[] values, String modURI) { + // nothing to do + } + + @Override + public void buildURI(StringOutput buf, String[] keys, String[] values) { + // nothing to do + } + + @Override + public URLBuilder createCopyFor(Component source) { + return super.createCopyFor(source); + } + + @Override + public void setComponentPath(String componentPath) { + // nothing to do + } + + + } +} diff --git a/src/main/java/org/olat/core/logging/activity/ActionObject.java b/src/main/java/org/olat/core/logging/activity/ActionObject.java index c9ea94c4998d1f8dba6cab5e61c5b58a9c169989..1d8a2c9d48ea8ed7025ba2cf637f6cfb759aca7e 100644 --- a/src/main/java/org/olat/core/logging/activity/ActionObject.java +++ b/src/main/java/org/olat/core/logging/activity/ActionObject.java @@ -42,6 +42,8 @@ public enum ActionObject { calendar, chat, + check, + checkbox, checkpoint, comment, course, diff --git a/src/main/java/org/olat/core/logging/activity/CourseLoggingAction.java b/src/main/java/org/olat/core/logging/activity/CourseLoggingAction.java index e1c96ab686ad1d5d517ef744fed265c29660db77..684e8fd6d5742d1a6de51c85390b73e3d5aa0fee 100644 --- a/src/main/java/org/olat/core/logging/activity/CourseLoggingAction.java +++ b/src/main/java/org/olat/core/logging/activity/CourseLoggingAction.java @@ -86,6 +86,26 @@ public class CourseLoggingAction extends BaseLoggingAction { setTypeList(new ResourceableTypeList().addMandatory(OlatResourceableType.course, OlatResourceableType.node, StringResourceableType.checklist, StringResourceableType.checkpoint)); + public static final ILoggingAction CHECKLIST_CHECK_UPDATED = + new CourseLoggingAction(ActionType.statistic, CrudAction.update, ActionVerb.edit, ActionObject.check). + setTypeList(new ResourceableTypeList().addMandatory(OlatResourceableType.course, + OlatResourceableType.node, StringResourceableType.checkbox)); + + public static final ILoggingAction CHECKLIST_CHECKBOX_CREATED = + new CourseLoggingAction(ActionType.statistic, CrudAction.create, ActionVerb.add, ActionObject.checkbox). + setTypeList(new ResourceableTypeList().addMandatory(OlatResourceableType.course, + OlatResourceableType.node, StringResourceableType.checkbox)); + + public static final ILoggingAction CHECKLIST_CHECKBOX_UPDATED = + new CourseLoggingAction(ActionType.statistic, CrudAction.update, ActionVerb.edit, ActionObject.checkbox). + setTypeList(new ResourceableTypeList().addMandatory(OlatResourceableType.course, + OlatResourceableType.node, StringResourceableType.checkbox)); + + public static final ILoggingAction CHECKLIST_CHECKBOX_DELETED = + new CourseLoggingAction(ActionType.statistic, CrudAction.delete, ActionVerb.remove, ActionObject.checkbox). + setTypeList(new ResourceableTypeList().addMandatory(OlatResourceableType.course, + OlatResourceableType.node, StringResourceableType.checkbox)); + public static final ILoggingAction INFO_MESSAGE_CREATED = new CourseLoggingAction(ActionType.statistic, CrudAction.create, ActionVerb.add, ActionObject.infomessage). setTypeList(new ResourceableTypeList().addMandatory(OlatResourceableType.course, diff --git a/src/main/java/org/olat/core/logging/activity/StringResourceableType.java b/src/main/java/org/olat/core/logging/activity/StringResourceableType.java index 3f642f5651833acb479678db946628ca2fbab289..9e7dbc581691a48d232f1ca8e97e98e9ccbf7607 100644 --- a/src/main/java/org/olat/core/logging/activity/StringResourceableType.java +++ b/src/main/java/org/olat/core/logging/activity/StringResourceableType.java @@ -64,6 +64,9 @@ public enum StringResourceableType implements ILoggingResourceableType { /** a checkpoint from a checklist **/ checkpoint, + + /** checkbox from a checklist **/ + checkbox, /** the briefcase filename **/ bcFile, diff --git a/src/main/java/org/olat/course/CourseFactory.java b/src/main/java/org/olat/course/CourseFactory.java index 4272f316978883081d88f4c6b8ee56d1811db443..3d2e32dd58ca7f195626b81ab40ebe9bafdcfeec 100644 --- a/src/main/java/org/olat/course/CourseFactory.java +++ b/src/main/java/org/olat/course/CourseFactory.java @@ -106,6 +106,7 @@ import org.olat.course.config.ui.courselayout.CourseLayoutHelper; import org.olat.course.editor.EditorMainController; import org.olat.course.editor.PublishProcess; import org.olat.course.editor.StatusDescription; +import org.olat.course.editor.PublishSetInformations; import org.olat.course.groupsandrights.CourseGroupManager; import org.olat.course.groupsandrights.PersistingCourseGroupManager; import org.olat.course.nodes.AssessableCourseNode; @@ -776,7 +777,8 @@ public class CourseFactory extends BasicManager { visitPublishModel(publishTreeModel.getRootNode(), publishTreeModel, nodeToPublish); publishProcess.createPublishSetFor(nodeToPublish); - StatusDescription[] status = publishProcess.testPublishSet(locale); + PublishSetInformations set = publishProcess.testPublishSet(locale); + StatusDescription[] status = set.getWarnings(); //publish not possible when there are errors for(int i = 0; i < status.length; i++) { if(status[i].isError()) { diff --git a/src/main/java/org/olat/course/archiver/ArchiverMainController.java b/src/main/java/org/olat/course/archiver/ArchiverMainController.java index 99db791db44d41db63f5112ada5985d1349443ba..1b603c348c9068c06bf297f97a9495ed84242115 100644 --- a/src/main/java/org/olat/course/archiver/ArchiverMainController.java +++ b/src/main/java/org/olat/course/archiver/ArchiverMainController.java @@ -48,6 +48,7 @@ import org.olat.core.id.OLATResourceable; import org.olat.core.logging.activity.ActionType; import org.olat.course.CourseFactory; import org.olat.course.ICourse; +import org.olat.course.nodes.CheckListCourseNode; import org.olat.course.nodes.DialogCourseNode; import org.olat.course.nodes.FOCourseNode; import org.olat.course.nodes.ProjectBrokerCourseNode; @@ -74,6 +75,7 @@ public class ArchiverMainController extends MainLayoutBasicController { private static final String CMD_DIALOGS = "dialogs"; private static final String CMD_WIKIS = "wikis"; private static final String CMD_SCORM = "scorm"; + private static final String CMD_CHECKLIST = "checklist"; private IArchiverCallback archiverCallback; @@ -224,13 +226,20 @@ public class ArchiverMainController extends MainLayoutBasicController { gtn.setAltText(translate("menu.wikis.alt")); root.addChild(gtn); } - if (archiverCallback.mayArchiveWikis()) { + if (archiverCallback.mayArchiveScorm()) { gtn = new GenericTreeNode(); gtn.setTitle(translate("menu.scorm")); gtn.setUserObject(CMD_SCORM); gtn.setAltText(translate("menu.scorm.alt")); root.addChild(gtn); } + if (archiverCallback.mayArchiveChecklist()) { + gtn = new GenericTreeNode(); + gtn.setTitle(translate("menu.checklist")); + gtn.setUserObject(CMD_CHECKLIST); + gtn.setAltText(translate("menu.checklist.alt")); + root.addChild(gtn); + } //add extension menues ExtManager extm = ExtManager.getInstance(); @@ -289,6 +298,9 @@ public class ArchiverMainController extends MainLayoutBasicController { } else if (menuCommand.equals(CMD_SCORM)) { contentCtr = new GenericArchiveController(ureq, getWindowControl(), ores, new ScormCourseNode()); main.setContent(contentCtr.getInitialComponent()); + } else if (menuCommand.equals(CMD_CHECKLIST)) { + contentCtr = new GenericArchiveController(ureq, getWindowControl(), ores, new CheckListCourseNode()); + main.setContent(contentCtr.getInitialComponent()); } listenTo(contentCtr); } diff --git a/src/main/java/org/olat/course/archiver/IArchiverCallback.java b/src/main/java/org/olat/course/archiver/IArchiverCallback.java index 423cb68ae25f73e80370543e6a6489183b5fb208..f90054ca929c4ea9511231a8890d5b8f583b0b38 100644 --- a/src/main/java/org/olat/course/archiver/IArchiverCallback.java +++ b/src/main/java/org/olat/course/archiver/IArchiverCallback.java @@ -65,6 +65,10 @@ public interface IArchiverCallback { */ public boolean mayArchiveWikis(); + public boolean mayArchiveScorm(); + + public boolean mayArchiveChecklist(); + /** * @return true if user has rights to archive project-broker data */ diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties index 0fb1d5a606c5e6cd1c433228faaea14223987a3e..487f2a59b4fb816e2a3a72c8999366eb119a617f 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties @@ -35,6 +35,7 @@ chelp.uid=Benutzeridentifikation chelp.ziel=Ziel cmd.start=Start cmd.download=Herunterladen +cl=Checklisten column.field.missing=- column.field.no=nein column.field.notavailable=k. A. @@ -79,6 +80,8 @@ logfilechooserform.logstat=Statistik-Logfile (Aktivit\u00E4ten der User, anonymi logfilechooserform.loguser=Benutzer-Logfile (Detaillierte Aktivit\u00E4ten aller User, personalisiert) menu.archivelogfiles=Logfiles menu.archivelogfiles.alt=Administrator-, Kurs- und Userlogfiles +menu.checklist=Checklisten +menu.checklist.alt=Checklisten menu.dialogs=Dateidiskussionen menu.dialogs.alt=Dateidiskussionen archivieren menu.forums=Foren @@ -103,6 +106,7 @@ nodechoose.intro.ta=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Aufgaben/L nodechoose.intro.wiki=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Wikis zu archivieren. nodechoose.intro.projectbroker=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Themenvergabe zu archivieren. nodechoose.intro.scorm=W\u00E4hlen Sie im folgenden Dialog den SCORM Baustein aus, der ausgewertet werden soll +nodechoose.intro.cl=W\u00E4hlen Sie im folgenden Dialog den Checklisten Baustein aus, der ausgewertet werden soll overview.nonodes.dialog=Dieser Kurs enth\u00E4lt keine Dateidiskussionen. overview.nonodes.fo=Dieser Kurs enth\u00E4lt keine Foren overview.nonodes.ta=Dieser Kurs enth\u00E4lt keine Aufgabenkursbausteine diff --git a/src/main/java/org/olat/course/assessment/AssessedIdentityInfosController.java b/src/main/java/org/olat/course/assessment/AssessedIdentityInfosController.java new file mode 100644 index 0000000000000000000000000000000000000000..e8ff50f0474743d4efe90a5f28e3bcbb5c900f83 --- /dev/null +++ b/src/main/java/org/olat/course/assessment/AssessedIdentityInfosController.java @@ -0,0 +1,61 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.assessment; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.velocity.VelocityContainer; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.controller.BasicController; +import org.olat.core.id.Identity; + +/** + * + * Initial date: 10.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class AssessedIdentityInfosController extends BasicController { + + private final VelocityContainer mainVC; + + public AssessedIdentityInfosController(UserRequest ureq, WindowControl wControl, Identity assessedIdentity) { + super(ureq, wControl); + mainVC = createVelocityContainer("identityoverview"); + setAssessedIdentity(assessedIdentity); + putInitialPanel(mainVC); + } + + public void setAssessedIdentity(Identity assessedIdentity) { + mainVC.contextPut("user", assessedIdentity.getUser()); + } + + + @Override + protected void doDispose() { + // + } + + @Override + protected void event(UserRequest ureq, Component source, Event event) { + // + } +} diff --git a/src/main/java/org/olat/course/assessment/AssessmentEditController.java b/src/main/java/org/olat/course/assessment/AssessmentEditController.java index 07151875b695d6997fa22b0d5602e79f335273d8..e35b16399ca62f9e14f459b5ca2c0f4320b34f55 100644 --- a/src/main/java/org/olat/course/assessment/AssessmentEditController.java +++ b/src/main/java/org/olat/course/assessment/AssessmentEditController.java @@ -160,6 +160,9 @@ public class AssessmentEditController extends BasicController { }); detailView.contextPut("participantGroups", participantGroups); detailView.contextPut("noParticipantGroups", (participantGroups.size() > 0 ? Boolean.FALSE : Boolean.TRUE)); + detailView.contextPut("identityInfosVisible", Boolean.TRUE); + detailView.contextPut("courseNodeInfosVisible", Boolean.TRUE); + detailView.contextPut("titleVisible", Boolean.TRUE); putInitialPanel(detailView); }else{ @@ -170,6 +173,25 @@ public class AssessmentEditController extends BasicController { //no initial component set -> empty behind dialog box! } } + + public void setIdentityInfos(boolean visible) { + if(detailView != null) { + detailView.contextPut("identityInfosVisible", new Boolean(visible)); + } + } + + public void setCourseNodeInfos(boolean visible) { + if(detailView != null) { + detailView.contextPut("courseNodeInfosVisible", new Boolean(visible)); + } + } + + public void setTitleInfos(boolean visible) { + if(detailView != null) { + detailView.contextPut("titleVisible", new Boolean(visible)); + } + } + /** * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, diff --git a/src/main/java/org/olat/course/assessment/IdentityAssessmentEditController.java b/src/main/java/org/olat/course/assessment/IdentityAssessmentEditController.java index 539f3f5cc3a5c6513425013a6e0cff620ec745f0..f090cc53ff6075d2c8b5dbd791533b0ea3b9ede0 100644 --- a/src/main/java/org/olat/course/assessment/IdentityAssessmentEditController.java +++ b/src/main/java/org/olat/course/assessment/IdentityAssessmentEditController.java @@ -70,16 +70,16 @@ import org.olat.course.run.userview.UserCourseEnvironment; public class IdentityAssessmentEditController extends BasicController { private boolean mayEdit; - private VelocityContainer identityOverviewVC; + private final VelocityContainer identityAssessmentVC; private Panel main; private AssessmentEditController assessmentEditCtr; private IdentityAssessmentOverviewController assessmentOverviewCtr; private UserCourseEnvironment assessedUserCourseEnvironment; private Link backLink; private final StackedController stackPanel; + private final AssessedIdentityInfosController identityInfosCtrl; private OLATResourceable ores; - private final boolean headers; /** * Constructor for the identity assessment overview controller @@ -100,12 +100,19 @@ public class IdentityAssessmentEditController extends BasicController { super(ureq, wControl); this.stackPanel = stackPanel; this.mayEdit = mayEdit; - main = new Panel("main"); assessedUserCourseEnvironment = AssessmentHelper.createAndInitUserCourseEnvironment(assessedIdentity, course); this.ores = OresHelper.clone(course); - this.headers = headers; - doIdentityAssessmentOverview(ureq, true); - putInitialPanel(main); + + identityAssessmentVC = createVelocityContainer("identityassessment"); + if(headers) { + backLink = LinkFactory.createLinkBack(identityAssessmentVC, this); + identityAssessmentVC.contextPut("user", assessedIdentity.getUser()); + } + main = putInitialPanel(identityAssessmentVC); + + identityInfosCtrl = new AssessedIdentityInfosController(ureq, wControl, assessedIdentity); + identityAssessmentVC.put("identityInfos", identityInfosCtrl.getInitialComponent()); + doIdentityAssessmentOverview(ureq, true); BusinessControl bc = getWindowControl().getBusinessControl(); ContextEntry ce = bc.popLauncherContextEntry(); @@ -152,23 +159,14 @@ public class IdentityAssessmentEditController extends BasicController { } private void doIdentityAssessmentOverview(UserRequest ureq, boolean initTable) { - if (identityOverviewVC == null) { - identityOverviewVC = createVelocityContainer("identityoverview"); - - if(headers) { - backLink = LinkFactory.createLinkBack(identityOverviewVC, this); - Identity assessedIdentity = assessedUserCourseEnvironment.getIdentityEnvironment().getIdentity(); - identityOverviewVC.contextPut("user", assessedIdentity.getUser()); - } - } if (initTable) { assessedUserCourseEnvironment.getScoreAccounting().evaluateAll(); assessmentOverviewCtr = new IdentityAssessmentOverviewController(ureq, getWindowControl(), assessedUserCourseEnvironment, mayEdit, false, true); listenTo(assessmentOverviewCtr); - identityOverviewVC.put("assessmentOverviewTable", assessmentOverviewCtr.getInitialComponent()); + identityAssessmentVC.put("assessmentOverviewTable", assessmentOverviewCtr.getInitialComponent()); } - main.setContent(identityOverviewVC); + main.setContent(identityAssessmentVC); } diff --git a/src/main/java/org/olat/course/assessment/_content/detailview.html b/src/main/java/org/olat/course/assessment/_content/detailview.html index 2c1da022754715464eff60afb9c2040525e6a650..1c36a2ce2e73bdcad89c14a2a15658c1617cf4d4 100644 --- a/src/main/java/org/olat/course/assessment/_content/detailview.html +++ b/src/main/java/org/olat/course/assessment/_content/detailview.html @@ -1,4 +1,4 @@ -#if ($courseNode) +#if ($courseNodeInfosVisible && $courseNode) <div class="b_with_small_icon_left $courseNodeCss">$r.escapeHtml($courseNode.getShortTitle()) #if ($courseNode.getLongTitle() && $courseNode.getLongTitle() != "") ($r.escapeHtml($courseNode.getLongTitle())) @@ -6,10 +6,13 @@ </div> <hr /> #end + +#if($titleVisible) <h4>$r.translate("detailview.title")</h4> -$r.render("backLink") -<br /> -<br /> +$r.render("backLink")<br /><br /> +#end + +#if($identityInfosVisible) <table class="b_table"> <tr> <td> @@ -49,6 +52,7 @@ $r.render("backLink") </tr> </table> <hr /> +#end #if ($infoCoach && $infoCoach != "") <div class="o_course_run_disclaimer"> diff --git a/src/main/java/org/olat/course/assessment/_content/identityassessment.html b/src/main/java/org/olat/course/assessment/_content/identityassessment.html new file mode 100644 index 0000000000000000000000000000000000000000..d59ca9f0e4b085fda67a36c349eb9c2d80bfefbc --- /dev/null +++ b/src/main/java/org/olat/course/assessment/_content/identityassessment.html @@ -0,0 +1,12 @@ +#if($r.available("backLink")) + <h5>$r.translate("identityoverview.title")</h5> + $r.render("backLink") + <br><br> +#end + +#if($r.available("identityInfos")) + $r.render("identityInfos") +#end + + +$r.render("assessmentOverviewTable") \ No newline at end of file diff --git a/src/main/java/org/olat/course/assessment/_content/identityoverview.html b/src/main/java/org/olat/course/assessment/_content/identityoverview.html index 54bfc81ea67ef5bc423d3ce93ed00693d2a38b02..5025424d3e2c1e2620a76522a81b8a3c1b102d49 100644 --- a/src/main/java/org/olat/course/assessment/_content/identityoverview.html +++ b/src/main/java/org/olat/course/assessment/_content/identityoverview.html @@ -1,10 +1,3 @@ -#if($r.available("backLink")) - <h5>$r.translate("identityoverview.title")</h5> - $r.render("backLink") - <br><br> -#end - -#if($user) <div> #if ($user.getProperty("institutionalName", $locale) && $user.getProperty("institutionalName", $locale).length() > 0) #set ($inst = $r.escapeHtml($user.getProperty("institutionalName", $locale))) @@ -29,6 +22,4 @@ <span class="b_with_small_icon_left b_institution_icon">$inst</span> #end <br /> -</div> -#end -$r.render("assessmentOverviewTable") \ No newline at end of file +</div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/editor/EditorMainController.java b/src/main/java/org/olat/course/editor/EditorMainController.java index 98e8eda26b5d7e82a3229cb4fe3a6077f198e1a7..05b81375bc9d198afa7b17c3531ccb508264d95d 100644 --- a/src/main/java/org/olat/course/editor/EditorMainController.java +++ b/src/main/java/org/olat/course/editor/EditorMainController.java @@ -676,43 +676,39 @@ public class EditorMainController extends MainLayoutBasicController implements G StepRunnerCallback finish = new StepRunnerCallback(){ @SuppressWarnings("unchecked") public Step execute(UserRequest ureq1, WindowControl wControl1, StepsRunContext runContext) { - /* - * all information to do now is within the runContext saved - */ + //all information to do now is within the runContext saved boolean hasChanges = false; - - if (runContext.containsKey("validPublish") && ((Boolean) runContext.get("validPublish")).booleanValue()) { - + + PublishProcess publishManager = (PublishProcess)runContext.get("publishProcess"); + if (runContext.containsKey("validPublish") && ((Boolean)runContext.get("validPublish")).booleanValue()) { Set<String> selectedNodeIds = (Set<String>) runContext.get("publishSetCreatedFor"); hasChanges = (selectedNodeIds != null) && (selectedNodeIds.size() > 0); if (hasChanges) { - PublishProcess publishManager = (PublishProcess) runContext.get("publishProcess"); publishManager.applyPublishSet(ureq1.getIdentity(), ureq1.getLocale()); + publishManager.applyUpdateSet(ureq1.getIdentity(), ureq1.getLocale()); } } + if (runContext.containsKey("changedaccess")) { // there were changes made to the general course access String newAccessStr = (String) runContext.get("changedaccess"); int newAccess; - //fxdiff VCRP-1,2: access control of resources boolean membersOnly = RepositoryEntry.MEMBERS_ONLY.equals(newAccessStr); if(membersOnly) { newAccess = RepositoryEntry.ACC_OWNERS; } else { newAccess = Integer.valueOf(newAccessStr); } - PublishProcess publishManager = (PublishProcess) runContext.get("publishProcess"); + // fires an EntryChangedEvent for repository entry notifying // about modification. publishManager.changeGeneralAccess(ureq1, newAccess, membersOnly); hasChanges = true; } - //fxdiff VCRP-3: add catalog entry in publish wizard if (runContext.containsKey("catalogChoice")) { String choice = (String) runContext.get("catalogChoice"); List<CategoryLabel> categories = (List<CategoryLabel>)runContext.get("categories"); - PublishProcess publishManager = (PublishProcess) runContext.get("publishProcess"); publishManager.publishToCatalog(choice, categories); } diff --git a/src/main/java/org/olat/course/editor/PublishProcess.java b/src/main/java/org/olat/course/editor/PublishProcess.java index 58b0a75edb0550d3c9a015ff1bcc08f808af27ee..1e0eddcfe24ff46fb398eb90b83a0a720616c0f9 100644 --- a/src/main/java/org/olat/course/editor/PublishProcess.java +++ b/src/main/java/org/olat/course/editor/PublishProcess.java @@ -197,10 +197,6 @@ public class PublishProcess { Visitor nodePublishV = new NodePublishVisitor(editorRoot, nodesIdsToPublish, existingCourseRun); TreeVisitor tv = new TreeVisitor(nodePublishV, editorRoot, visitChildrenFirst); tv.visitAll(); - /* - * - */ - } @@ -229,21 +225,21 @@ public class PublishProcess { * @param locale * @return */ - public StatusDescription[] testPublishSet(Locale locale) { + public PublishSetInformations testPublishSet(Locale locale) { //check for valid references to tests, resource folder, wiki List<StatusDescription> damagedRefsInsertedNodes = checkRefs(editorModelInsertedNodes); if (damagedRefsInsertedNodes.size() > 0) { // abort testing as a blocking error found! StatusDescription[] status = new StatusDescription[damagedRefsInsertedNodes.size()]; status = damagedRefsInsertedNodes.toArray(status); - return status; + return new PublishSetInformations(status); } List<StatusDescription> damagedRefsModifiedNodes = checkRefs(editorModelModifiedNodes); if (damagedRefsModifiedNodes.size() > 0) { // abort testing as a blocking error found StatusDescription[] status = new StatusDescription[damagedRefsModifiedNodes.size()]; status = damagedRefsModifiedNodes.toArray(status); - return status; + return new PublishSetInformations(status); } CourseNode clonedCourseNode = (CourseNode) ObjectCloner.deepCopy(resultingCourseRun.getRootNode()); @@ -298,7 +294,16 @@ public class PublishProcess { status[i] = cn.explainThisDuringPublish(description); } } - return status; + + List<StatusDescription> updateNotifications = testUpdateSet(tmpCEV, locale); + return new PublishSetInformations(status, updateNotifications); + } + + public List<StatusDescription> testUpdateSet(CourseEditorEnv cev, Locale locale) { + //check for valid references to tests, resource folder, wiki + List<StatusDescription> notifications = checkUpdates(editorModelInsertedNodes, cev); + notifications.addAll(checkUpdates(editorModelModifiedNodes, cev)); + return notifications; } @@ -328,6 +333,19 @@ public class PublishProcess { } return cetnDamaged; } + + private List<StatusDescription> checkUpdates(List<CourseEditorTreeNode> courseEditorTreeNodes, CourseEditorEnv cev) { + List<StatusDescription> notifications = new ArrayList<StatusDescription>(); + for (Iterator<CourseEditorTreeNode> iter = courseEditorTreeNodes.iterator(); iter.hasNext();) { + CourseEditorTreeNode cetn = iter.next(); + CourseNode cn = cetn.getCourseNode(); + List<StatusDescription> nodeNotes = cn.publishUpdatesExplanations(cev); + if(nodeNotes != null && nodeNotes.size() > 0) { + notifications.addAll(nodeNotes); + } + } + return notifications; + } /** * Convert all CourseNodes into CourseEditorTreeNode @@ -487,6 +505,15 @@ public class PublishProcess { } + public void applyUpdateSet(Identity identity, Locale locale) { + for (CourseEditorTreeNode cetn:editorModelInsertedNodes) { + cetn.getCourseNode().updateOnPublish(locale, course); + } + for (CourseEditorTreeNode cetn:editorModelModifiedNodes) { + cetn.getCourseNode().updateOnPublish(locale, course); + } + } + private void archiveDeletedNode(Identity identity, CourseNode cn, CourseNode oldCn, Locale locale, String charset) { File exportDirectory = CourseFactory.getOrCreateDataExportDirectory(identity, course.getCourseTitle()); String archiveName = cn.getType() + "_" @@ -553,7 +580,6 @@ public class PublishProcess { } } -//VCRP-3: add catalog entry in publish wizard protected void publishToCatalog(String choiceValue, List<CategoryLabel> labels) { CoursePropertyManager cpm = course.getCourseEnvironment().getCoursePropertyManager(); @@ -622,7 +648,7 @@ public class PublishProcess { String assemblePublishConfirmation() { List<String> nodeIdsToPublish = this.originalNodeIdsToPublish; - StringBuffer msg = new StringBuffer(); + StringBuilder msg = new StringBuilder(); OLATResourceable courseRunOres = OresHelper.createOLATResourceableInstance(RunMainController.ORES_TYPE_COURSE_RUN, repositoryEntry.getOlatResource().getResourceableId()); int cnt = CoordinatorManager.getInstance().getCoordinator().getEventBus().getListeningIdentityCntFor(courseRunOres) -1; // -1: Remove myself from list diff --git a/src/main/java/org/olat/course/editor/PublishSetInformations.java b/src/main/java/org/olat/course/editor/PublishSetInformations.java new file mode 100644 index 0000000000000000000000000000000000000000..eec5b17bba04b563925bfddd899ba2f3d4537a60 --- /dev/null +++ b/src/main/java/org/olat/course/editor/PublishSetInformations.java @@ -0,0 +1,51 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.editor; + +import java.util.List; + +/** + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class PublishSetInformations { + + private final StatusDescription[] warnings; + private final List<StatusDescription> updateInfos; + + public PublishSetInformations(StatusDescription[] warnings) { + this(warnings, null); + } + + public PublishSetInformations(StatusDescription[] warnings, List<StatusDescription> updateInfos) { + this.warnings = warnings; + this.updateInfos = updateInfos; + } + + public StatusDescription[] getWarnings() { + return warnings; + } + + public List<StatusDescription> getUpdateInfos() { + return updateInfos; + } +} diff --git a/src/main/java/org/olat/course/editor/PublishStep00.java b/src/main/java/org/olat/course/editor/PublishStep00.java index 1746086fc4bf948dd67293c8cb1b9866432b5a9c..c8ecae1d353cae8ae2f6d35c231307307049cec8 100644 --- a/src/main/java/org/olat/course/editor/PublishStep00.java +++ b/src/main/java/org/olat/course/editor/PublishStep00.java @@ -149,6 +149,7 @@ class PublishStep00 extends BasicStep { private PublishProcess publishManager2; private MultipleSelectionElement multiSelectTree; private StatusDescription[] sds; + private List<StatusDescription> updateNotes; private FormLayoutContainer fic; private StaticTextElement errorElement; private FormLink selectAllLink; @@ -162,10 +163,8 @@ class PublishStep00 extends BasicStep { @Override protected void doDispose() { - // nothing to dispose - + // nothing to dispose } - @SuppressWarnings("synthetic-access") @Override @@ -185,7 +184,11 @@ class PublishStep00 extends BasicStep { publishManager2.createPublishSetFor(asList); addToRunContext("publishSetCreatedFor", multiSelectTree.getSelectedKeys()); // - sds = publishProcess.testPublishSet(ureq.getLocale()); + PublishSetInformations set = publishProcess.testPublishSet(ureq.getLocale()); + sds = set.getWarnings(); + updateNotes = set.getUpdateInfos(); + addToRunContext("updateNotes", updateNotes); + // boolean isValid = sds.length == 0; if (isValid) { @@ -200,9 +203,9 @@ class PublishStep00 extends BasicStep { String errorTxt = getTranslator().translate("publish.notpossible.setincomplete"); String warningTxt = getTranslator().translate("publish.withwarnings"); - String errors = "<UL>"; + String errors = "<ul>"; int errCnt = 0; - String warnings = "<UL>"; + String warnings = "<ul>"; for (int i = 0; i < sds.length; i++) { StatusDescription description = sds[i]; String nodeId = sds[i].getDescriptionForUnit(); @@ -214,14 +217,14 @@ class PublishStep00 extends BasicStep { String nodeName = publishProcess.getCourseEditorTreeModel().getCourseNode(nodeId).getShortName(); String isFor = "<b>" + nodeName + "</b><br/>"; if (description.isError()) { - errors += "<LI>" + isFor + description.getShortDescription(ureq.getLocale()) + "</LI>"; + errors += "<li>" + isFor + description.getShortDescription(ureq.getLocale()) + "</li>"; errCnt++; } else if (description.isWarning()) { - warnings += "<LI>" + isFor + description.getShortDescription(ureq.getLocale()) + "</LI>"; + warnings += "<li>" + isFor + description.getShortDescription(ureq.getLocale()) + "</li>"; } } - warnings += "</UL>"; - errors += "</UL>"; + warnings += "</ul>"; + errors += "</ul>"; // errorTxt += "<P/>" + errors; warningTxt += "<P/>" + warnings; diff --git a/src/main/java/org/olat/course/editor/PublishStep00a.java b/src/main/java/org/olat/course/editor/PublishStep00a.java index 86c08399c1651ba06578168689ef9b28c7389516..cf5612d920ed6e5d1afca26839a905070f18183c 100644 --- a/src/main/java/org/olat/course/editor/PublishStep00a.java +++ b/src/main/java/org/olat/course/editor/PublishStep00a.java @@ -50,7 +50,7 @@ class PublishStep00a extends BasicStep implements Step { public PublishStep00a(UserRequest ureq) { super(ureq); setI18nTitleAndDescr("publish.step.title.messages", null); - setNextStep(new PublishStep00b(ureq)); + setNextStep(new PublishStepUpdate(ureq, null, true)); } /** diff --git a/src/main/java/org/olat/course/editor/PublishStepCatalog.java b/src/main/java/org/olat/course/editor/PublishStepCatalog.java index 46b3b83c83493082e792227754171088815f3ee3..a6e4da430304be50a331d821487951372abe869f 100644 --- a/src/main/java/org/olat/course/editor/PublishStepCatalog.java +++ b/src/main/java/org/olat/course/editor/PublishStepCatalog.java @@ -106,7 +106,7 @@ class PublishStepCatalog extends BasicStep { return new PublishStepCatalogForm(ureq, wControl, form, stepsRunContext, courseEnv, rootNode); } - class PublishStepCatalogForm extends StepFormBasicController { + static class PublishStepCatalogForm extends StepFormBasicController { private FormLink addToCatalog; private SingleSelection catalogBox; diff --git a/src/main/java/org/olat/course/editor/PublishStepUpdate.java b/src/main/java/org/olat/course/editor/PublishStepUpdate.java new file mode 100644 index 0000000000000000000000000000000000000000..f9c36d47c895e3856ccc10e32cef088fdf29541e --- /dev/null +++ b/src/main/java/org/olat/course/editor/PublishStepUpdate.java @@ -0,0 +1,153 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.editor; + +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; + +import org.olat.core.CoreSpringFactory; +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.impl.Form; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.generic.wizard.BasicStep; +import org.olat.core.gui.control.generic.wizard.PrevNextFinishConfig; +import org.olat.core.gui.control.generic.wizard.Step; +import org.olat.core.gui.control.generic.wizard.StepFormBasicController; +import org.olat.core.gui.control.generic.wizard.StepFormController; +import org.olat.core.gui.control.generic.wizard.StepsEvent; +import org.olat.core.gui.control.generic.wizard.StepsRunContext; +import org.olat.course.ICourse; +import org.olat.course.nodes.CourseNode; +import org.olat.course.nodes.CourseNodeConfiguration; +import org.olat.course.nodes.CourseNodeFactory; +import org.olat.course.run.environment.CourseEnvironment; + +import edu.emory.mathcs.backport.java.util.Collections; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +class PublishStepUpdate extends BasicStep { + + private final PrevNextFinishConfig prevNextConfig; + private final CourseEnvironment courseEnv; + private final CourseNode rootNode; + + public PublishStepUpdate(UserRequest ureq, ICourse course, boolean hasPublishableChanges) { + super(ureq); + + this.courseEnv = null;//course.getCourseEnvironment(); + this.rootNode = null;//course.getRunStructure().getRootNode(); + setI18nTitleAndDescr("publish.step.update.title", null); + + if(hasPublishableChanges) { + setNextStep(new PublishStep00b(ureq)); + prevNextConfig = PrevNextFinishConfig.BACK_NEXT_FINISH; + } else { + setNextStep(Step.NOSTEP); + prevNextConfig = PrevNextFinishConfig.BACK_FINISH; + } + } + + @Override + public PrevNextFinishConfig getInitialPrevNextFinishConfig() { + return prevNextConfig; + } + + @Override + public StepFormController getStepController(UserRequest ureq, WindowControl wControl, StepsRunContext runContext, Form form) { + return new PublishStepUpdateForm(ureq, wControl, form, runContext, courseEnv, rootNode); + } + + static class PublishStepUpdateForm extends StepFormBasicController { + + private final CourseNodeFactory courseNodeFactory; + + public PublishStepUpdateForm(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext, + CourseEnvironment courseEnv, CourseNode rootNode) { + super(ureq, wControl, rootForm, runContext, LAYOUT_CUSTOM, "publish_update"); + + courseNodeFactory = CoreSpringFactory.getImpl(CourseNodeFactory.class); + + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + + @SuppressWarnings("unchecked") + List<StatusDescription> noteDescriptions = (List<StatusDescription>)getFromRunContext("updateNotes"); + if(noteDescriptions != null && noteDescriptions.size() > 0) { + PublishProcess publishProcess = (PublishProcess)getFromRunContext("publishProcess"); + StringBuilder notes = new StringBuilder(); + + Collections.sort(noteDescriptions, new StatusDescriptionComparator()); + StatusDescription currentDesc = null; + for (Iterator<StatusDescription> it=noteDescriptions.iterator(); it.hasNext(); ) { + if(currentDesc == null) { + currentDesc = it.next(); + } + + String nodeId = currentDesc.getDescriptionForUnit(); + CourseNode courseNode = publishProcess.getCourseEditorTreeModel().getCourseNode(nodeId); + CourseNodeConfiguration config = courseNodeFactory.getCourseNodeConfiguration(courseNode.getType()); + String cssClass = config.getIconCSSClass(); + String nodeName = courseNode.getShortName(); + notes.append("<div class='b_with_small_icon_left ").append(cssClass).append("'><b>").append(nodeName).append("</b></div><ul>"); + for ( ;currentDesc != null && currentDesc.getDescriptionForUnit().equals(nodeId); currentDesc = (it.hasNext() ? it.next() : null)) { + notes.append("<li>").append(currentDesc.getShortDescription(ureq.getLocale())).append("</li>"); + } + notes.append("</ul>"); + } + + uifactory.addStaticTextElement("updateNotes", null, notes.toString(), formLayout); + } + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void formOK(UserRequest ureq) { + fireEvent(ureq, StepsEvent.ACTIVATE_NEXT); + } + } + + static class StatusDescriptionComparator implements Comparator<StatusDescription> { + @Override + public int compare(StatusDescription s1, StatusDescription s2) { + String i1 = s1.getDescriptionForUnit(); + String i2 = s2.getDescriptionForUnit(); + + if(i1 == null && i2 == null) return 0; + if(i1 == null) return -1; + if(i2 == null) return 1; + return i1.compareTo(i2); + } + } +} diff --git a/src/main/java/org/olat/course/editor/_content/publish_update.html b/src/main/java/org/olat/course/editor/_content/publish_update.html new file mode 100644 index 0000000000000000000000000000000000000000..330be77d3b724d97eda89b41f4515f742a6f2f0c --- /dev/null +++ b/src/main/java/org/olat/course/editor/_content/publish_update.html @@ -0,0 +1,9 @@ +<h4>$r.translate("publish.step.update.title")</h4> +#if($r.available("updateNotes")) + <div class='b_info'> + $r.translate("publish.update.description") + </div> + $r.render("updateNotes") +#else + $r.translate("publish.update.nothing") +#end \ No newline at end of file diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties index 4104261717e48840ebb2431c98f78439c290bce2..fe7892d1a0f1145cccf7c4063099625dd5405e98 100644 --- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties @@ -462,6 +462,9 @@ publish.notpossible.setincomplete=Die Kombination der zu publizierenden Baustein publish.nowarnings=Keine Probleme gefunden publish.step.title.confirm=Zusammenfassung der \u00C4nderungen publish.step.title.messages=Hinweise +publish.step.update.title=Hintergrund Aktualisierung +publish.update.description=Während der Publikation müssen die folgende Hintergrundprozesse ausgeführt werden um die Datenkonsistenz sicherzustellen. Dieser Prozess kann einige Zeit dauern. Bitte warten Sie bei der Fertigstellung der Publikation bis Sie eine entsprechende Rückmeldung erhalten haben. +publish.update.nothing=Es gibt keine die eine Aktualisierung brauchte. publish.title=Publizieren der \u00C4nderungen von Kursbausteinen publish.withwarnings=Warnung publish.wizard.title=Publizieren diff --git a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java new file mode 100644 index 0000000000000000000000000000000000000000..d2124011210322b841ec9515deb49bedd358525e --- /dev/null +++ b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java @@ -0,0 +1,560 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes; + +import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Set; +import java.util.UUID; +import java.util.logging.Level; +import java.util.zip.ZipOutputStream; + +import org.olat.core.CoreSpringFactory; +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.stack.StackedController; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.generic.tabbable.TabbableController; +import org.olat.core.id.Identity; +import org.olat.core.id.OLATResourceable; +import org.olat.core.logging.OLATRuntimeException; +import org.olat.core.util.FileUtils; +import org.olat.core.util.Formatter; +import org.olat.core.util.StringHelper; +import org.olat.core.util.Util; +import org.olat.core.util.ZipUtil; +import org.olat.core.util.resource.OresHelper; +import org.olat.core.util.vfs.VFSContainer; +import org.olat.core.util.vfs.VFSItem; +import org.olat.core.util.vfs.VFSLeaf; +import org.olat.course.ICourse; +import org.olat.course.assessment.AssessmentManager; +import org.olat.course.auditing.UserNodeAuditManager; +import org.olat.course.editor.CourseEditorEnv; +import org.olat.course.editor.NodeEditController; +import org.olat.course.editor.StatusDescription; +import org.olat.course.nodes.cl.CheckboxManager; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.nodes.cl.model.CheckboxList; +import org.olat.course.nodes.cl.ui.AssessedIdentityCheckListController; +import org.olat.course.nodes.cl.ui.CheckListEditController; +import org.olat.course.nodes.cl.ui.CheckListRunController; +import org.olat.course.nodes.cl.ui.CheckListRunForCoachController; +import org.olat.course.run.navigation.NodeRunConstructionResult; +import org.olat.course.run.scoring.ScoreEvaluation; +import org.olat.course.run.userview.NodeEvaluation; +import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.modules.ModuleConfiguration; +import org.olat.repository.RepositoryEntry; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckListCourseNode extends AbstractAccessableCourseNode implements AssessableCourseNode { + + private static final String translatorStr = Util.getPackageName(CheckListEditController.class); + private static final long serialVersionUID = -7460670977531082040L; + + private static final String TYPE = "checklist"; + private static final String ICON_CSS_CLASS = "o_cl_icon"; + + public static final String CONFIG_KEY_PASSED_SUM_CHECKBOX = "passedSumCheckbox"; + public static final String CONFIG_KEY_PASSED_MANUAL_CORRECTION = "passedManualCorrection"; + + public static final String CONFIG_KEY_DUE_DATE = "dueDate"; + public static final String CONFIG_KEY_CLOSE_AFTER_DUE_DATE = "closeAfterDueDate"; + + public static final String CONFIG_KEY_CHECKBOX = "checkbox"; + + public static final String FOLDER_NAME = "checklistfiles"; + + /** + * Constructor for a course building block of the type structure + */ + public CheckListCourseNode() { + super(TYPE); + updateModuleConfigDefaults(true); + } + + /** + * @see org.olat.course.nodes.CourseNode#createEditController(org.olat.core.gui.UserRequest, + * org.olat.core.gui.control.WindowControl, org.olat.course.ICourse) + */ + @Override + public TabbableController createEditController(UserRequest ureq, WindowControl wControl, StackedController stackPanel, ICourse course, UserCourseEnvironment euce) { + updateModuleConfigDefaults(false); + // only the precondition "access" can be configured till now + CheckListEditController childTabCntrllr = new CheckListEditController(this, ureq, wControl, course, euce); + CourseNode chosenNode = course.getEditorTreeModel().getCourseNode(euce.getCourseEditorEnv().getCurrentCourseNodeId()); + return new NodeEditController(ureq, wControl, course.getEditorTreeModel(), course, chosenNode, course.getCourseEnvironment() + .getCourseGroupManager(), euce, childTabCntrllr); + } + + /** + * @see org.olat.course.nodes.CourseNode#createNodeRunConstructionResult(org.olat.core.gui.UserRequest, + * org.olat.core.gui.control.WindowControl, + * org.olat.course.run.userview.UserCourseEnvironment, + * org.olat.course.run.userview.NodeEvaluation) + */ + @Override + public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq, WindowControl wControl, + final UserCourseEnvironment userCourseEnv, NodeEvaluation ne, String nodecmd) { + updateModuleConfigDefaults(false); + + Controller ctrl; + OLATResourceable ores = OresHelper.createOLATResourceableInstance("CourseModule", userCourseEnv.getCourseEnvironment().getCourseResourceableId()); + if(userCourseEnv.isCoach()) { + ctrl = new CheckListRunForCoachController(ureq, wControl, userCourseEnv, ores, this); + } else { + ctrl = new CheckListRunController(ureq, wControl, userCourseEnv, ores, this); + } + Controller cont = TitledWrapperHelper.getWrapper(ureq, wControl, ctrl, this, ICON_CSS_CLASS); + return new NodeRunConstructionResult(cont); + } + + /** + * @see org.olat.course.nodes.GenericCourseNode#createPreviewController(org.olat.core.gui.UserRequest, + * org.olat.core.gui.control.WindowControl, + * org.olat.course.run.userview.UserCourseEnvironment, + * org.olat.course.run.userview.NodeEvaluation) + */ + @Override + public Controller createPreviewController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv, NodeEvaluation ne) { + return createNodeRunConstructionResult(ureq, wControl, userCourseEnv, ne, null).getRunController(); + } + + /** + * the structure node does not have a score itself, but calculates the + * score/passed info by evaluating the configured expression in the the + * (condition)interpreter. + * + * @see org.olat.course.nodes.AssessableCourseNode#getUserScoreEvaluation(org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public ScoreEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnvironment) { + // read score from properties + AssessmentManager am = userCourseEnvironment.getCourseEnvironment().getAssessmentManager(); + Identity mySelf = userCourseEnvironment.getIdentityEnvironment().getIdentity(); + Boolean passed = null; + Float score = null; + // only db lookup if configured, else return null + if (hasPassedConfigured()) passed = am.getNodePassed(this, mySelf); + if (hasScoreConfigured()) score = am.getNodeScore(this, mySelf); + + ScoreEvaluation se = new ScoreEvaluation(score, passed); + return se; + } + + /** + * @see org.olat.course.nodes.CourseNode#isConfigValid() + */ + public StatusDescription isConfigValid() { + if (oneClickStatusCache != null) { + return oneClickStatusCache[0]; + } + StatusDescription sd = StatusDescription.NOERROR; + return sd; + } + + /** + * @see org.olat.course.nodes.CourseNode#isConfigValid(org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public StatusDescription[] isConfigValid(CourseEditorEnv cev) { + oneClickStatusCache = null; + // only here we know which translator to take for translating condition + // error messages + List<StatusDescription> sds = isConfigValidWithTranslator(cev, translatorStr, getConditionExpressions()); + oneClickStatusCache = StatusDescriptionHelper.sort(sds); + return oneClickStatusCache; + } + + @Override + public List<StatusDescription> publishUpdatesExplanations(CourseEditorEnv cev) { + List<StatusDescription> statusDescs = new ArrayList<>(); + StatusDescription statusDesc1 = new StatusDescription(Level.INFO, "checklist.update.assessment", null, null, translatorStr); + statusDesc1.setDescriptionForUnit(getIdent()); + statusDescs.add(statusDesc1); + StatusDescription statusDesc2 = new StatusDescription(Level.INFO, "checklist.update.efficiencystatements", null, null, translatorStr); + statusDesc2.setDescriptionForUnit(getIdent()); + statusDescs.add(statusDesc2); + return statusDescs; + } + + /** + * @see org.olat.course.nodes.CourseNode#getReferencedRepositoryEntry() + */ + @Override + public RepositoryEntry getReferencedRepositoryEntry() { + return null; + } + + /** + * @see org.olat.course.nodes.CourseNode#needsReferenceToARepositoryEntry() + */ + @Override + public boolean needsReferenceToARepositoryEntry() { + return false; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getCutValueConfiguration() + */ + @Override + public Float getCutValueConfiguration() { + if (!hasPassedConfigured()) { + throw new OLATRuntimeException(MSCourseNode.class, "getCutValue not defined when hasPassed set to false", null); + } + ModuleConfiguration config = getModuleConfiguration(); + Float cut = (Float) config.get(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE); + return cut; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getMaxScoreConfiguration() + */ + @Override + public Float getMaxScoreConfiguration() { + if (!hasScoreConfigured()) { + throw new OLATRuntimeException(MSCourseNode.class, "getMaxScore not defined when hasScore set to false", null); + } + ModuleConfiguration config = getModuleConfiguration(); + Float max = (Float)config.get(MSCourseNode.CONFIG_KEY_SCORE_MAX); + return max; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getMinScoreConfiguration() + */ + @Override + public Float getMinScoreConfiguration() { + if (!hasScoreConfigured()) { + throw new OLATRuntimeException(MSCourseNode.class, "getMinScore not defined when hasScore set to false", null); + } + ModuleConfiguration config = getModuleConfiguration(); + Float min = (Float) config.get(MSCourseNode.CONFIG_KEY_SCORE_MIN); + return min; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getUserCoachComment(org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public String getUserCoachComment(UserCourseEnvironment userCourseEnvironment) { + AssessmentManager am = userCourseEnvironment.getCourseEnvironment().getAssessmentManager(); + String coachCommentValue = am.getNodeCoachComment(this, userCourseEnvironment.getIdentityEnvironment().getIdentity()); + return coachCommentValue; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getUserLog(org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public String getUserLog(UserCourseEnvironment userCourseEnvironment) { + UserNodeAuditManager am = userCourseEnvironment.getCourseEnvironment().getAuditManager(); + String logValue = am.getUserNodeLog(this, userCourseEnvironment.getIdentityEnvironment().getIdentity()); + return logValue; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getUserUserComment(org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public String getUserUserComment(UserCourseEnvironment userCourseEnvironment) { + AssessmentManager am = userCourseEnvironment.getCourseEnvironment().getAssessmentManager(); + String userCommentValue = am.getNodeComment(this, userCourseEnvironment.getIdentityEnvironment().getIdentity()); + return userCommentValue; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#hasCommentConfigured() + */ + @Override + public boolean hasCommentConfigured() { + // never has comments + return true; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#hasPassedConfigured() + */ + @Override + public boolean hasPassedConfigured() { + ModuleConfiguration config = getModuleConfiguration(); + Boolean passed = (Boolean) config.get(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD); + if (passed == null) return false; + return passed.booleanValue(); + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#hasScoreConfigured() + */ + @Override + public boolean hasScoreConfigured() { + ModuleConfiguration config = getModuleConfiguration(); + Boolean score = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD); + if (score == null) return false; + return score.booleanValue(); + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#hasStatusConfigured() + */ + @Override + public boolean hasStatusConfigured() { + return false; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#isEditableConfigured() + */ + @Override + public boolean isEditableConfigured() { + // manual scoring fields can be edited manually + ModuleConfiguration config = getModuleConfiguration(); + Boolean manualCorr = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_MANUAL_CORRECTION); + return true;//manualCorr != null && manualCorr.booleanValue(); + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#updateUserCoachComment(java.lang.String, + * org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public void updateUserCoachComment(String coachComment, UserCourseEnvironment userCourseEnvironment) { + AssessmentManager am = userCourseEnvironment.getCourseEnvironment().getAssessmentManager(); + Identity mySelf = userCourseEnvironment.getIdentityEnvironment().getIdentity(); + if (coachComment != null) { + am.saveNodeCoachComment(this, mySelf, coachComment); + } + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#updateUserScoreEvaluation(org.olat.course.run.scoring.ScoreEvaluation, + * org.olat.course.run.userview.UserCourseEnvironment, + * org.olat.core.id.Identity) + */ + @Override + public void updateUserScoreEvaluation(ScoreEvaluation scoreEvaluation, UserCourseEnvironment userCourseEnvironment, + Identity coachingIdentity, boolean incrementAttempts) { + AssessmentManager am = userCourseEnvironment.getCourseEnvironment().getAssessmentManager(); + Identity mySelf = userCourseEnvironment.getIdentityEnvironment().getIdentity(); + am.saveScoreEvaluation(this, coachingIdentity, mySelf, new ScoreEvaluation(scoreEvaluation.getScore(), scoreEvaluation.getPassed()), userCourseEnvironment, incrementAttempts); + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#updateUserUserComment(java.lang.String, + * org.olat.course.run.userview.UserCourseEnvironment, + * org.olat.core.id.Identity) + */ + @Override + public void updateUserUserComment(String userComment, UserCourseEnvironment userCourseEnvironment, Identity coachingIdentity) { + AssessmentManager am = userCourseEnvironment.getCourseEnvironment().getAssessmentManager(); + Identity mySelf = userCourseEnvironment.getIdentityEnvironment().getIdentity(); + if (userComment != null) { + am.saveNodeComment(this, coachingIdentity, mySelf, userComment); + } + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getUserAttempts(org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public Integer getUserAttempts(UserCourseEnvironment userCourseEnvironment) { + throw new OLATRuntimeException(CheckListCourseNode.class, "No attempts available in ST nodes", null); + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#hasAttemptsConfigured() + */ + @Override + public boolean hasAttemptsConfigured() { + return false; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#updateUserAttempts(java.lang.Integer, + * org.olat.course.run.userview.UserCourseEnvironment, + * org.olat.core.id.Identity) + */ + @Override + public void updateUserAttempts(Integer userAttempts, UserCourseEnvironment userCourseEnvironment, Identity coachingIdentity) { + throw new OLATRuntimeException(CheckListCourseNode.class, "Attempts variable can't be updated in ST nodes", null); + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#incrementUserAttempts(org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public void incrementUserAttempts(UserCourseEnvironment userCourseEnvironment) { + throw new OLATRuntimeException(CheckListCourseNode.class, "Attempts variable can't be updated in ST nodes", null); + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getDetailsEditController(org.olat.core.gui.UserRequest, + * org.olat.core.gui.control.WindowControl, + * org.olat.course.run.userview.UserCourseEnvironment) + */ + @Override + public Controller getDetailsEditController(UserRequest ureq, WindowControl wControl, + StackedController stackPanel, UserCourseEnvironment userCourseEnvironment) { + Identity assessedIdentity = userCourseEnvironment.getIdentityEnvironment().getIdentity(); + Long resId = userCourseEnvironment.getCourseEnvironment().getCourseResourceableId(); + OLATResourceable courseOres = OresHelper.createOLATResourceableInstance("CourseModule", resId); + return new AssessedIdentityCheckListController(ureq, wControl, assessedIdentity, courseOres, this); + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getDetailsListView(org.olat.course.run.userview.UserCourseEnvironment) + */ + public String getDetailsListView(UserCourseEnvironment userCourseEnvironment) { + return "checklist"; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#getDetailsListViewHeaderKey() + */ + public String getDetailsListViewHeaderKey() { + return null; + } + + /** + * @see org.olat.course.nodes.AssessableCourseNode#hasDetails() + */ + @Override + public boolean hasDetails() { + return true; + } + + @Override + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, + ZipOutputStream exportStream, String charset) { + + String dirName = "cl_" + + StringHelper.transformDisplayNameToFileSystemName(getShortName()) + + "_" + Formatter.formatDatetimeFilesystemSave(new Date(System.currentTimeMillis())); + + ModuleConfiguration config = getModuleConfiguration(); + CheckboxList list = (CheckboxList)config.get(CONFIG_KEY_CHECKBOX); + CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); + if(list != null && list.getList() != null) { + Set<String> usedNames = new HashSet<String>(); + + for(Checkbox checkbox:list.getList()) { + VFSContainer dir = checkboxManager.getFileContainer(course.getCourseEnvironment(), this, checkbox); + if(dir != null) { + VFSItem item = dir.resolve(checkbox.getFilename()); + if(item instanceof VFSLeaf) { + String path = dirName + "/" + Formatter.makeStringFilesystemSave(checkbox.getTitle()); + if(usedNames.contains(checkbox.getTitle())) { + path += "_" + checkbox.getCheckboxId(); + } else { + usedNames.add(checkbox.getTitle()); + } + ZipUtil.addToZip((VFSLeaf)item, path, exportStream); + } + } + } + } + + return super.archiveNodeData(locale, course, options, exportStream, charset); + } + + @Override + public void exportNode(File fExportDirectory, ICourse course) { + //export the files + CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); + ModuleConfiguration config = getModuleConfiguration(); + CheckboxList list = (CheckboxList)config.get(CONFIG_KEY_CHECKBOX); + if(list != null && list.getList() != null) { + for(Checkbox checkbox:list.getList()) { + File dir = checkboxManager.getFileDirectory(course.getCourseEnvironment(), this, checkbox); + if(dir.exists()) { + File fFileExportDir = new File(fExportDirectory, "checklistfiles/" + getIdent() + "/" + checkbox.getCheckboxId()); + fFileExportDir.mkdirs(); + FileUtils.copyDirContentsToDir(dir, fFileExportDir, false, "export files of checkbox"); + } + } + } + } + + @Override + public Controller importNode(File importDirectory, ICourse course, boolean unattendedImport, + UserRequest ureq, WindowControl wControl) { + + CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); + ModuleConfiguration config = getModuleConfiguration(); + CheckboxList list = (CheckboxList)config.get(CONFIG_KEY_CHECKBOX); + if(list != null && list.getList() != null) { + for(Checkbox checkbox:list.getList()) { + File fFileImportDir = new File(importDirectory, "checklistfiles/" + getIdent() + "/" + checkbox.getCheckboxId()); + + String newCheckboxId = UUID.randomUUID().toString(); + checkbox.setCheckboxId(newCheckboxId); + if(fFileImportDir.exists()) { + File dir = checkboxManager.getFileDirectory(course.getCourseEnvironment(), this, checkbox); + dir.mkdirs(); + FileUtils.copyDirContentsToDir(fFileImportDir, dir, false, "import file of checkbox"); + } + } + } + return null; + } + + @Override + public void cleanupOnDelete(ICourse course) { + super.cleanupOnDelete(course); + CoreSpringFactory.getImpl(CheckboxManager.class).deleteCheckbox(course, getIdent()); + } + + @Override + public void updateOnPublish(Locale locale, ICourse course) { + ModuleConfiguration config = getModuleConfiguration(); + //sync the checkbox with the database + CheckboxList list = (CheckboxList)config.get(CONFIG_KEY_CHECKBOX); + CheckboxManager checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); + checkboxManager.syncCheckbox(list, course, getIdent()); + + super.updateOnPublish(locale, course); + } + + /** + * Update the module configuration to have all mandatory configuration flags + * set to usefull default values + * + * @param isNewNode true: an initial configuration is set; false: upgrading + * from previous node configuration version, set default to maintain + * previous behaviour + */ + @Override + public void updateModuleConfigDefaults(boolean isNewNode) { + ModuleConfiguration config = getModuleConfiguration(); + if (isNewNode) { + config.setConfigurationVersion(1); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/CourseNode.java b/src/main/java/org/olat/course/nodes/CourseNode.java index da3f632c9519e60601e935734514e203aefd67fd..4dc0e19fcc164a247817ef097d35c90b91ac58b9 100644 --- a/src/main/java/org/olat/course/nodes/CourseNode.java +++ b/src/main/java/org/olat/course/nodes/CourseNode.java @@ -288,6 +288,9 @@ public interface CourseNode extends INode, ShortName { * within the specified course environment. */ public StatusDescription[] isConfigValid(CourseEditorEnv cev); + + + public void updateOnPublish(Locale locale, ICourse course); /** * Called if this node is ABOUT TO BE deleted. For the time being, the node @@ -401,6 +404,13 @@ public interface CourseNode extends INode, ShortName { * @return */ public StatusDescription explainThisDuringPublish(StatusDescription description); + + /** + * Return some explanations if an update is planned after publishing + * @param cev + * @return + */ + public List<StatusDescription> publishUpdatesExplanations(CourseEditorEnv cev); /** * Update the module configuration to have all mandatory configuration flags diff --git a/src/main/java/org/olat/course/nodes/GenericCourseNode.java b/src/main/java/org/olat/course/nodes/GenericCourseNode.java index 567c511ca8772f2da9789f12a0b1228415879e07..0fa76c2f7decf455f57ddfd33f0f22b9de2a9a4c 100644 --- a/src/main/java/org/olat/course/nodes/GenericCourseNode.java +++ b/src/main/java/org/olat/course/nodes/GenericCourseNode.java @@ -27,6 +27,7 @@ package org.olat.course.nodes; import java.io.File; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.zip.ZipOutputStream; @@ -347,6 +348,11 @@ public abstract class GenericCourseNode extends GenericNode implements CourseNod preConditionAccess.setConditionId("accessability"); return preConditionAccess; } + + @Override + public void updateOnPublish(Locale locale, ICourse course) { + //default do nothing + } /** * Generic interface implementation. May be overriden by specific node's @@ -366,9 +372,7 @@ public abstract class GenericCourseNode extends GenericNode implements CourseNod * @see org.olat.course.nodes.CourseNode#cleanupOnDelete(org.olat.course.ICourse) */ public void cleanupOnDelete(ICourse course) { - /** - * do nothing in default implementation - */ + // do nothing in default implementation } /** @@ -664,6 +668,11 @@ public abstract class GenericCourseNode extends GenericNode implements CourseNod } return retVal; } + + @Override + public List<StatusDescription> publishUpdatesExplanations(CourseEditorEnv cev) { + return Collections.<StatusDescription>emptyList(); + } /** * Update the module configuration to have all mandatory configuration flags diff --git a/src/main/java/org/olat/course/nodes/TACourseNode.java b/src/main/java/org/olat/course/nodes/TACourseNode.java index 80a1244940d1131ac1674495081accaa8cbac7a4..43395dc0694bf5d1ca647f2f4a3362d9cd0abfa8 100644 --- a/src/main/java/org/olat/course/nodes/TACourseNode.java +++ b/src/main/java/org/olat/course/nodes/TACourseNode.java @@ -772,10 +772,10 @@ public class TACourseNode extends GenericCourseNode implements AssessableCourseN public Controller importNode(File importDirectory, ICourse course, boolean unattendedImport, UserRequest ureq, WindowControl wControl) { //import tasks File fNodeImportDir = new File(importDirectory, getIdent()); - File fTaskfolderDir = new File(FolderConfig.getCanonicalRoot() + TACourseNode.getTaskFolderPathRelToFolderRoot(course, this)); + File fTaskfolderDir = new File(FolderConfig.getCanonicalRoot() + getTaskFolderPathRelToFolderRoot(course, this)); FileUtils.copyDirContentsToDir(fNodeImportDir, fTaskfolderDir, false, "import task course node"); - File fSolutionDir = new File(FolderConfig.getCanonicalRoot(), TACourseNode.getFoldernodesPathRelToFolderBase(course.getCourseEnvironment()) + "/" + getIdent()); + File fSolutionDir = new File(FolderConfig.getCanonicalRoot(), getFoldernodesPathRelToFolderBase(course.getCourseEnvironment()) + "/" + getIdent()); fSolutionDir.mkdirs(); File fSolImportDir = new File(new File(importDirectory, "solutions"), getIdent()); FileUtils.copyDirContentsToDir(fSolImportDir, fSolutionDir, false, "import task course node solutions"); diff --git a/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_de.properties index 6a4096d8e0c76a0870b3051f64e502629a504309..59f26a2f7900772c90e04371eee0c8f15708bc99 100644 --- a/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_de.properties @@ -7,6 +7,7 @@ learningObjectives.title=Beschreibung preview.notavailable=F\u00FCr diesen Kursbaustein existiert keine Vorschau. title_bc=Ordner title_cl=Checkliste +title_checklist=fxCheckliste title_co=E-Mail title_cp=CP-Lerninhalt title_den=Terminvergabe diff --git a/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_en.properties index 094ceac7aedf7a420b88fa126f4696db71157846..4260095382356e04d4cc15c9f0070666ca868add 100644 --- a/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/nodes/_i18n/LocalStrings_en.properties @@ -8,6 +8,7 @@ preview.notavailable=No preview available for this course element title_bc=Folder title_blog=Blog title_cl=Check list +title_checklist=fxCheck list title_co=E-mail title_cp=CP learning content title_den=Assignment of dates diff --git a/src/main/java/org/olat/course/nodes/_spring/buildingblockContext.xml b/src/main/java/org/olat/course/nodes/_spring/buildingblockContext.xml index 49ed53ecfd94298a2933764a80c9c647b37d558f..7daf8e311f317fe4410437a527fe416636a5869d 100644 --- a/src/main/java/org/olat/course/nodes/_spring/buildingblockContext.xml +++ b/src/main/java/org/olat/course/nodes/_spring/buildingblockContext.xml @@ -8,7 +8,7 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> - <context:component-scan base-package="org.olat.course.nodes.en" /> + <context:component-scan base-package="org.olat.course.nodes.en,org.olat.course.nodes.cl" /> <!-- Course node spring config: Course Nodes are searched on the whole classpath, just place your CourceNodeConfiguration somewhere on the classpath best as a jar. The xml file with ending ...Context.xml has do to be outside of the jar to get automatically loaded --> @@ -38,7 +38,7 @@ <bean id="tu" class="org.olat.course.nodes.tu.TUCourseNodeConfiguration" scope="prototype"> <property name="order" value="30" /> </bean> - + <bean id="cp" class="org.olat.course.nodes.cp.CPCourseNodeConfiguration" scope="prototype" > <property name="order" value="40" /> </bean> @@ -107,4 +107,8 @@ <property name="order" value="200" /> </bean> + <bean id="checklist" class="org.olat.course.nodes.cl.CheckListCourseNodeConfiguration" scope="prototype" > + <property name="order" value="210" /> + </bean> + </beans> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/CheckListCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/cl/CheckListCourseNodeConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..fdb04246939fdb5e318a34d5780edf95ee3f29dd --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/CheckListCourseNodeConfiguration.java @@ -0,0 +1,78 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl; + +import java.util.Locale; + +import org.olat.core.gui.translator.Translator; +import org.olat.core.util.Util; +import org.olat.course.nodes.AbstractCourseNodeConfiguration; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.CourseNode; +import org.olat.course.nodes.CourseNodeConfiguration; + +/** + * + * Initial date: 04.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckListCourseNodeConfiguration extends AbstractCourseNodeConfiguration implements CourseNodeConfiguration { + + private CheckListCourseNodeConfiguration() { + super(); + } + + @Override + public CourseNode getInstance() { + return new CheckListCourseNode(); + } + + /** + * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkText(java.util.Locale) + */ + @Override + public String getLinkText(Locale locale) { + Translator fallback = Util.createPackageTranslator(CourseNodeConfiguration.class, locale); + Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback); + return translator.translate("title_checklist"); + } + + /** + * @see org.olat.course.nodes.CourseNodeConfiguration#getCSSClass() + */ + @Override + public String getIconCSSClass() { + return "o_cl_icon"; + } + + /** + * @see org.olat.course.nodes.CourseNodeConfiguration#getLinkCSSClass() + */ + @Override + public String getLinkCSSClass() { + return null; + } + + @Override + public String getAlias() { + return "checklist"; + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/CheckboxManager.java b/src/main/java/org/olat/course/nodes/cl/CheckboxManager.java new file mode 100644 index 0000000000000000000000000000000000000000..80e061a2f8eb90c06069a9619d44b2e189d9fb80 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/CheckboxManager.java @@ -0,0 +1,76 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl; + +import java.io.File; +import java.util.List; +import java.util.Locale; + +import org.olat.basesecurity.SecurityGroup; +import org.olat.core.id.Identity; +import org.olat.core.id.OLATResourceable; +import org.olat.core.util.vfs.VFSContainer; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.cl.model.AssessmentData; +import org.olat.course.nodes.cl.model.AssessmentDataView; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.nodes.cl.model.CheckboxList; +import org.olat.course.nodes.cl.model.DBCheck; +import org.olat.course.nodes.cl.model.DBCheckbox; +import org.olat.course.run.environment.CourseEnvironment; +import org.olat.user.propertyhandlers.UserPropertyHandler; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public interface CheckboxManager { + + public DBCheckbox createDBCheckbox(String checkboxId, OLATResourceable ores, String resSubPath); + + public List<DBCheckbox> loadCheckbox(OLATResourceable ores, String resSubPath); + + public DBCheckbox loadCheckbox(OLATResourceable ores, String resSubPath, String checkboxId); + + public void removeCheckbox(DBCheckbox checkbox); + + public void syncCheckbox(CheckboxList checkboxList, OLATResourceable ores, String resSubPath); + + public void deleteCheckbox(OLATResourceable ores, String resSubPath); + + public void check(DBCheckbox checkbox, Identity owner, Float score, Boolean checked); + + public List<DBCheck> loadCheck(Identity identity, OLATResourceable ores, String resSubPath); + + public int countChecked(Identity identity, OLATResourceable ores, String resSubPath); + + public float calculateScore(Identity identity, OLATResourceable ores, String resSubPath); + + public List<AssessmentData> getAssessmentDatas(OLATResourceable ores, String resSubPath, List<SecurityGroup> groups); + + public List<AssessmentDataView> getAssessmentDataViews(OLATResourceable ores, String resSubPath, List<Checkbox> checkbox, + List<SecurityGroup> secGroups, List<UserPropertyHandler> userPropertyHandlers, Locale locale); + + public VFSContainer getFileContainer(CourseEnvironment courseEnv, CheckListCourseNode cNode, Checkbox checkbox); + + public File getFileDirectory(CourseEnvironment courseEnv, CheckListCourseNode cNode, Checkbox checkbox); +} diff --git a/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java b/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..037a9c367531b293e9717a6e474b4638308c4338 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/manager/CheckboxManagerImpl.java @@ -0,0 +1,401 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.manager; + +import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.persistence.TypedQuery; + +import org.olat.basesecurity.SecurityGroup; +import org.olat.basesecurity.SecurityGroupMembershipImpl; +import org.olat.core.commons.modules.bc.FolderConfig; +import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl; +import org.olat.core.commons.persistence.DB; +import org.olat.core.id.Identity; +import org.olat.core.id.OLATResourceable; +import org.olat.core.util.StringHelper; +import org.olat.core.util.vfs.VFSContainer; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.cl.CheckboxManager; +import org.olat.course.nodes.cl.model.AssessmentData; +import org.olat.course.nodes.cl.model.AssessmentDataView; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.nodes.cl.model.CheckboxList; +import org.olat.course.nodes.cl.model.DBCheck; +import org.olat.course.nodes.cl.model.DBCheckbox; +import org.olat.course.run.environment.CourseEnvironment; +import org.olat.user.propertyhandlers.UserPropertyHandler; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +@Service +public class CheckboxManagerImpl implements CheckboxManager { + + @Autowired + private DB dbInstance; + + @Override + public DBCheckbox createDBCheckbox(String checkboxId, OLATResourceable ores, String resSubPath) { + DBCheckbox checkbox = new DBCheckbox(); + checkbox.setCreationDate(new Date()); + checkbox.setLastModified(new Date()); + checkbox.setCheckboxId(checkboxId); + checkbox.setResName(ores.getResourceableTypeName()); + checkbox.setResId(ores.getResourceableId()); + checkbox.setResSubPath(resSubPath); + dbInstance.getCurrentEntityManager().persist(checkbox); + return checkbox; + } + + @Override + public List<DBCheckbox> loadCheckbox(OLATResourceable ores, String resSubPath) { + StringBuilder sb = new StringBuilder(); + sb.append("select box from clcheckbox box where box.resName=:resName and box.resId=:resId"); + if(StringHelper.containsNonWhitespace(resSubPath)) { + sb.append(" and box.resSubPath=:resSubPath"); + } + + TypedQuery<DBCheckbox> query = dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), DBCheckbox.class) + .setParameter("resName", ores.getResourceableTypeName()) + .setParameter("resId", ores.getResourceableId()); + if(StringHelper.containsNonWhitespace(resSubPath)) { + query.setParameter("resSubPath", resSubPath); + } + return query.getResultList(); + } + + @Override + public DBCheckbox loadCheckbox(OLATResourceable ores, String resSubPath, String checkboxId) { + StringBuilder sb = new StringBuilder(); + sb.append("select box from clcheckbox box") + .append(" where box.checkboxId=:checkboxId and box.resName=:resName and box.resId=:resId") + .append(" and box.resSubPath=:resSubPath"); + + + List<DBCheckbox> box = dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), DBCheckbox.class) + .setParameter("resName", ores.getResourceableTypeName()) + .setParameter("resId", ores.getResourceableId()) + .setParameter("resSubPath", resSubPath) + .setParameter("checkboxId", checkboxId) + .getResultList(); + if(box.isEmpty()) { + return null; + } + return box.get(0); + } + + private DBCheckbox loadForUpdate(DBCheckbox checkbox) { + dbInstance.getCurrentEntityManager().detach(checkbox); + + StringBuilder sb = new StringBuilder(); + sb.append("select box from clcheckbox box where box.key=:key"); + + + List<DBCheckbox> box = dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), DBCheckbox.class) + .setParameter("key", checkbox.getKey()) + .getResultList(); + if(box.isEmpty()) { + return null; + } + return box.get(0); + } + + @Override + public void removeCheckbox(DBCheckbox checkbox) { + DBCheckbox ref = dbInstance.getCurrentEntityManager() + .getReference(DBCheckbox.class, checkbox.getKey()); + dbInstance.getCurrentEntityManager().remove(ref); + } + + @Override + public List<DBCheck> loadCheck(Identity identity, OLATResourceable ores, String resSubPath) { + StringBuilder sb = new StringBuilder(); + sb.append("select check from clcheck check") + .append(" inner join fetch check.checkbox box") + .append(" where check.identity.key=:identityKey") + .append(" and box.resName=:resName and box.resId=:resId"); + if(StringHelper.containsNonWhitespace(resSubPath)) { + sb.append(" and box.resSubPath=:resSubPath"); + } + + TypedQuery<DBCheck> query = dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), DBCheck.class) + .setParameter("resName", ores.getResourceableTypeName()) + .setParameter("resId", ores.getResourceableId()) + .setParameter("identityKey", identity.getKey()); + if(StringHelper.containsNonWhitespace(resSubPath)) { + query.setParameter("resSubPath", resSubPath); + } + return query.getResultList(); + } + + @Override + public void syncCheckbox(CheckboxList checkboxList, OLATResourceable ores, String resSubPath) { + List<DBCheckbox> dbCheckboxList = loadCheckbox(ores, resSubPath); + Map<String,DBCheckbox> uuids = new HashMap<String,DBCheckbox>(); + for(DBCheckbox dbCheckbox:dbCheckboxList) { + uuids.put(dbCheckbox.getCheckboxId(), dbCheckbox); + } + + List<Checkbox> resCheckboxList = checkboxList.getList(); + for(Checkbox resCheckbox:resCheckboxList) { + String resUuid = resCheckbox.getCheckboxId(); + if(uuids.containsKey(resUuid)) { + uuids.remove(resUuid);//already synched + } else { + createDBCheckbox(resUuid, ores, resSubPath); + } + } + + for(DBCheckbox dbCheckbox:uuids.values()) { + System.out.println("Remove them??? " + dbCheckbox.getCheckboxId()); + } + } + + @Override + public void deleteCheckbox(OLATResourceable ores, String resSubPath) { + StringBuilder sb = new StringBuilder(); + sb.append("delete from clcheck check") + .append(" where check.checkbox.key in (") + .append(" select box.key from clcheckbox box where box.resName=:resName and box.resId=:resId and box.resSubPath=:resSubPath") + .append(" )"); + dbInstance.getCurrentEntityManager() + .createQuery(sb.toString()) + .setParameter("resName", ores.getResourceableTypeName()) + .setParameter("resId", ores.getResourceableId()) + .setParameter("resSubPath", resSubPath) + .executeUpdate(); + + StringBuilder sb2 = new StringBuilder(); + sb2.append("delete from clcheckbox box") + .append(" where box.resName=:resName and box.resId=:resId and box.resSubPath=:resSubPath"); + dbInstance.getCurrentEntityManager() + .createQuery(sb2.toString()) + .setParameter("resName", ores.getResourceableTypeName()) + .setParameter("resId", ores.getResourceableId()) + .setParameter("resSubPath", resSubPath) + .executeUpdate(); + } + + @Override + public void check(DBCheckbox checkbox, Identity owner, Float score, Boolean checked) { + DBCheck currentCheck = loadCheck(checkbox, owner); + if(currentCheck == null) { + DBCheckbox lockedCheckbox = loadForUpdate(checkbox); + if(lockedCheckbox != null) { + //locked -> reload to make sure nobody create it + DBCheck reloaedCheck = loadCheck(checkbox, owner); + if(reloaedCheck == null) { + createCheck(lockedCheckbox, owner, score, checked); + } else { + currentCheck = reloaedCheck; + } + } + } + if(currentCheck != null) { + currentCheck.setScore(score); + currentCheck.setChecked(checked); + } + dbInstance.commit(); + } + + protected DBCheck loadCheck(DBCheckbox checkbox, Identity identity) { + StringBuilder sb = new StringBuilder(); + sb.append("select check from clcheck as check") + .append(" where check.identity.key=:identityKey and check.checkbox.key=:checkboxKey"); + + List<DBCheck> checks = dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), DBCheck.class) + .setParameter("identityKey", identity.getKey()) + .setParameter("checkboxKey", checkbox.getKey()) + .getResultList(); + + if(checks.isEmpty()) { + return null; + } + return checks.get(0); + } + + protected DBCheck createCheck(DBCheckbox checkbox, Identity owner, Float score, Boolean checked) { + DBCheck check = new DBCheck(); + check.setCreationDate(new Date()); + check.setLastModified(new Date()); + check.setIdentity(owner); + check.setCheckbox(checkbox); + check.setChecked(checked); + check.setScore(score); + dbInstance.getCurrentEntityManager().persist(check); + return check; + } + + @Override + public int countChecked(Identity identity, OLATResourceable ores, String resSubPath) { + StringBuilder sb = new StringBuilder(); + sb.append("select count(check) from clcheck check") + .append(" inner join check.checkbox box") + .append(" inner join check.identity ident") + .append(" where check.identity.key=:identityKey and box.resName=:resName and box.resId=:resId"); + if(StringHelper.containsNonWhitespace(resSubPath)) { + sb.append(" and box.resSubPath=:resSubPath"); + } + + TypedQuery<Number> query = dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), Number.class) + .setParameter("resName", ores.getResourceableTypeName()) + .setParameter("resId", ores.getResourceableId()) + .setParameter("identityKey", identity.getKey()); + if(StringHelper.containsNonWhitespace(resSubPath)) { + query.setParameter("resSubPath", resSubPath); + } + + Number numOfChecks = query.getSingleResult(); + return numOfChecks.intValue(); + } + + @Override + public float calculateScore(Identity identity, OLATResourceable ores, String resSubPath) { + StringBuilder sb = new StringBuilder(); + sb.append("select sum(check.score) from clcheck check") + .append(" inner join check.checkbox box") + .append(" inner join check.identity ident") + .append(" where check.identity.key=:identityKey and check.checked=true and box.resName=:resName and box.resId=:resId"); + if(StringHelper.containsNonWhitespace(resSubPath)) { + sb.append(" and box.resSubPath=:resSubPath"); + } + + TypedQuery<Number> query = dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), Number.class) + .setParameter("resName", ores.getResourceableTypeName()) + .setParameter("resId", ores.getResourceableId()) + .setParameter("identityKey", identity.getKey()); + if(StringHelper.containsNonWhitespace(resSubPath)) { + query.setParameter("resSubPath", resSubPath); + } + + Number numOfChecks = query.getSingleResult(); + return numOfChecks == null ? 0.0f : numOfChecks.floatValue(); + } + + @Override + public List<AssessmentData> getAssessmentDatas(OLATResourceable ores, String resSubPath, List<SecurityGroup> secGroups) { + StringBuilder sb = new StringBuilder(); + sb.append("select check from clcheck check") + .append(" inner join fetch check.checkbox box") + .append(" inner join fetch check.identity ident") + .append(" where box.resName=:resName and box.resId=:resId"); + if(StringHelper.containsNonWhitespace(resSubPath)) { + sb.append(" and box.resSubPath=:resSubPath"); + } + if(secGroups != null && secGroups.size() > 0) { + sb.append(" and check.identity.key in ( select secMembership.identity.key from ").append(SecurityGroupMembershipImpl.class.getName()).append(" secMembership ") + .append(" where secMembership.securityGroup in (:secGroups)") + .append(" )"); + } + + TypedQuery<DBCheck> query = dbInstance.getCurrentEntityManager() + .createQuery(sb.toString(), DBCheck.class) + .setParameter("resName", ores.getResourceableTypeName()) + .setParameter("resId", ores.getResourceableId()); + if(StringHelper.containsNonWhitespace(resSubPath)) { + query.setParameter("resSubPath", resSubPath); + } + if(secGroups != null && secGroups.size() > 0) { + query.setParameter("secGroups", secGroups); + } + + List<DBCheck> checks = query.getResultList(); + Map<Long, AssessmentData> identToBox = new HashMap<Long,AssessmentData>(); + for(DBCheck check:checks) { + AssessmentData data = identToBox.get(check.getIdentity().getKey()); + if(data == null) { + data = new AssessmentData(check.getIdentity()); + identToBox.put(check.getIdentity().getKey(), data); + } + data.getChecks().add(check); + } + return new ArrayList<AssessmentData>(identToBox.values()); + } + + @Override + public List<AssessmentDataView> getAssessmentDataViews(OLATResourceable ores, String resSubPath, List<Checkbox> checkbox, + List<SecurityGroup> secGroups, List<UserPropertyHandler> userPropertyHandlers, Locale locale) { + + List<AssessmentData> datas = getAssessmentDatas(ores, resSubPath, secGroups); + List<AssessmentDataView> dataViews = new ArrayList<>(); + + int numOfcheckbox = checkbox.size(); + Map<String,Integer> indexed = new HashMap<String,Integer>(); + for(int i=numOfcheckbox; i-->0; ) { + indexed.put(checkbox.get(i).getCheckboxId(), new Integer(i)); + } + + for(AssessmentData data:datas) { + Boolean[] checkBool = new Boolean[numOfcheckbox]; + float totalPoints = 0.0f; + for(DBCheck check:data.getChecks()) { + Float score = check.getScore(); + if(score != null) { + totalPoints += score.floatValue(); + } + + if(check.getChecked() == null) continue; + + Integer index = indexed.get(check.getCheckbox().getCheckboxId()); + if(index != null) { + int i = index.intValue(); + if(i >= 0 && i<numOfcheckbox) { + checkBool[i] = check.getChecked(); + } + } + } + dataViews.add(new AssessmentDataView(data.getIdentity(), checkBool, totalPoints, userPropertyHandlers, locale)); + } + return dataViews; + } + + @Override + public VFSContainer getFileContainer(CourseEnvironment courseEnv, CheckListCourseNode cNode, Checkbox checkbox) { + String path = courseEnv.getCourseBaseContainer().getRelPath() + "/" + CheckListCourseNode.FOLDER_NAME + "/" + cNode.getIdent(); + OlatRootFolderImpl rootFolder = new OlatRootFolderImpl(path, null); + return rootFolder; + } + + @Override + public File getFileDirectory(CourseEnvironment courseEnv, CheckListCourseNode cNode, Checkbox checkbox) { + String path = courseEnv.getCourseBaseContainer().getRelPath() + "/" + CheckListCourseNode.FOLDER_NAME + "/" + cNode.getIdent(); + File rootFolder = new File(FolderConfig.getCanonicalRoot(), path); + return rootFolder; + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/model/AssessmentData.java b/src/main/java/org/olat/course/nodes/cl/model/AssessmentData.java new file mode 100644 index 0000000000000000000000000000000000000000..9b6d8bf951e7f31a0bbba9c905a5b52528a23448 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/model/AssessmentData.java @@ -0,0 +1,53 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.model; + +import java.util.ArrayList; +import java.util.List; + +import org.olat.core.id.Identity; + +/** + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class AssessmentData { + + private final Identity identity; + private final List<DBCheck> checks = new ArrayList<>(); + + public AssessmentData(Identity identity) { + this.identity = identity; + } + + public Identity getIdentity() { + return identity; + } + + public Float getTotalPoints() { + return 2.5f; + } + + public List<DBCheck> getChecks() { + return checks; + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/model/AssessmentDataView.java b/src/main/java/org/olat/course/nodes/cl/model/AssessmentDataView.java new file mode 100644 index 0000000000000000000000000000000000000000..47b2c3f03cabd14a142af2ee30eb3be3d63f30ee --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/model/AssessmentDataView.java @@ -0,0 +1,99 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.model; + +import java.util.List; +import java.util.Locale; + +import org.olat.core.id.Identity; +import org.olat.user.propertyhandlers.UserPropertyHandler; + + +/** + * + * This is a compact view of the assessment data with indexed arrays. It prevent + * to have 1000x identities in memory which is a memory issue. + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class AssessmentDataView { + + private Long[] groupKeys; + private final Long identityKey; + private final String identityName; + private final String[] identityProps; + private final Boolean[] checked; + private final Float totalPoints; + + public AssessmentDataView(Identity identity, Boolean[] checked, Float totalPoints, + List<UserPropertyHandler> userPropertyHandlers, Locale locale) { + identityKey = identity.getKey(); + identityName = identity.getName(); + this.checked = checked; + this.totalPoints = totalPoints; + + identityProps = new String[userPropertyHandlers.size()]; + for(int i=userPropertyHandlers.size(); i-->0; ) { + identityProps[i] = userPropertyHandlers.get(i).getUserProperty(identity.getUser(), locale); + } + } + + public Long getIdentityKey() { + return identityKey; + } + + public String getIdentityName() { + return identityName; + } + + public Long[] getGroupKeys() { + return groupKeys; + } + + public void addGroupKey(Long groupKey) { + if(groupKeys == null) { + this.groupKeys = new Long[]{ groupKey }; + } else { + Long[] newKeys = new Long[groupKeys.length + 1]; + newKeys[0] = groupKey; + System.arraycopy(groupKeys, 0, newKeys, 1, groupKeys.length); + groupKeys = newKeys; + } + } + + public void setGroupKeys(Long[] groupKeys) { + this.groupKeys = groupKeys; + } + + public String getIdentityProp(int index) { + return identityProps[index]; + } + + public Float getTotalPoints() { + return totalPoints; + } + + public Boolean[] getChecked() { + return checked; + } + +} diff --git a/src/main/java/org/olat/course/nodes/cl/model/Checkbox.java b/src/main/java/org/olat/course/nodes/cl/model/Checkbox.java new file mode 100644 index 0000000000000000000000000000000000000000..bf040d9f0825c8bb417786c0e9e1ca1d340f41c9 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/model/Checkbox.java @@ -0,0 +1,104 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.model; + +import java.io.Serializable; + +import org.olat.course.nodes.cl.ui.CheckboxLabelEnum; +import org.olat.course.nodes.cl.ui.CheckboxReleaseEnum; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class Checkbox implements Serializable { + + private static final long serialVersionUID = 7361576695269164580L; + + private String title; + private Float points; + private String checkboxId; + private CheckboxReleaseEnum release; + private CheckboxLabelEnum label; + private String description; + private String filename; + + public Checkbox() { + // + } + + public String getCheckboxId() { + return checkboxId; + } + + public void setCheckboxId(String checkboxId) { + this.checkboxId = checkboxId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Float getPoints() { + return points; + } + + public void setPoints(Float points) { + this.points = points; + } + + public CheckboxReleaseEnum getRelease() { + return release; + } + + public void setRelease(CheckboxReleaseEnum release) { + this.release = release; + } + + public CheckboxLabelEnum getLabel() { + return label; + } + + public void setLabel(CheckboxLabelEnum label) { + this.label = label; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFilename() { + return filename; + } + + public void setFilename(String filename) { + this.filename = filename; + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/model/CheckboxList.java b/src/main/java/org/olat/course/nodes/cl/model/CheckboxList.java new file mode 100644 index 0000000000000000000000000000000000000000..d42efb6c92f633ef25a642e18f9463680ad4d8e6 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/model/CheckboxList.java @@ -0,0 +1,60 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.model; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckboxList implements Serializable { + + private static final long serialVersionUID = -5703947579583559550L; + + private List<Checkbox> list; + + public List<Checkbox> getList() { + return list; + } + + public void setList(List<Checkbox> list) { + this.list = list; + } + + public void add(Checkbox checkbox) { + if(list == null) { + list = new ArrayList<Checkbox>(); + list.add(checkbox); + } else if(!list.contains(checkbox)) { + list.add(checkbox); + } + } + + public void remove(Checkbox checkbox) { + if(list != null) { + list.remove(checkbox); + } + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/model/DBCheck.java b/src/main/java/org/olat/course/nodes/cl/model/DBCheck.java new file mode 100644 index 0000000000000000000000000000000000000000..8c61a9562a6df171c62e77614855c60ee0deef9d --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/model/DBCheck.java @@ -0,0 +1,159 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.model; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import org.hibernate.annotations.GenericGenerator; +import org.olat.basesecurity.IdentityImpl; +import org.olat.core.id.CreateInfo; +import org.olat.core.id.Identity; +import org.olat.core.id.ModifiedInfo; +import org.olat.core.id.Persistable; + +/** + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +@Entity(name="clcheck") +@Table(name="o_cl_check") +public class DBCheck implements Persistable, CreateInfo, ModifiedInfo { + + private static final long serialVersionUID = -5102470594385705622L; + + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "hilo") + @Column(name="id", nullable=false, unique=true, insertable=true, updatable=false) + private Long key; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name="creationdate", nullable=false, insertable=true, updatable=false) + private Date creationDate; + @Temporal(TemporalType.TIMESTAMP) + @Column(name="lastmodified", nullable=false, insertable=true, updatable=true) + private Date lastModified; + + @Column(name="c_checked", nullable=true, insertable=true, updatable=true) + private Boolean checked; + @Column(name="c_score", nullable=true, insertable=true, updatable=true) + private Float score; + + @ManyToOne(targetEntity=IdentityImpl.class,fetch=FetchType.LAZY,optional=false) + @JoinColumn(name="fk_identity_id", nullable=false, updatable=false) + private Identity identity; + @ManyToOne(targetEntity=DBCheckbox.class,fetch=FetchType.LAZY,optional=false) + @JoinColumn(name="fk_checkbox_id", nullable=false, updatable=false) + private DBCheckbox checkbox; + + @Override + public Long getKey() { + return key; + } + + public void setKey(Long key) { + this.key = key; + } + + @Override + public Date getCreationDate() { + return creationDate; + } + + @Override + public Date getLastModified() { + return lastModified; + } + + public void setLastModified(Date lastModified) { + this.lastModified = lastModified; + } + + public void setCreationDate(Date creationDate) { + this.creationDate = creationDate; + } + + public Boolean getChecked() { + return checked; + } + + public void setChecked(Boolean checked) { + this.checked = checked; + } + + public Float getScore() { + return score; + } + + public void setScore(Float score) { + this.score = score; + } + + public Identity getIdentity() { + return identity; + } + + public void setIdentity(Identity identity) { + this.identity = identity; + } + + public DBCheckbox getCheckbox() { + return checkbox; + } + + public void setCheckbox(DBCheckbox checkbox) { + this.checkbox = checkbox; + } + + @Override + public int hashCode() { + return key == null ? 265781 : key.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if(this == obj) { + return true; + } + if(obj instanceof DBCheck) { + DBCheck checkbox = (DBCheck)obj; + return key != null && key.equals(checkbox.getKey()); + } + return false; + } + + @Override + public boolean equalsByPersistableKey(Persistable persistable) { + return equals(persistable); + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/model/DBCheckbox.java b/src/main/java/org/olat/course/nodes/cl/model/DBCheckbox.java new file mode 100644 index 0000000000000000000000000000000000000000..29f5e267aeb288b8adc87b92f8a446219b6e95b2 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/model/DBCheckbox.java @@ -0,0 +1,148 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.model; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +import org.hibernate.annotations.GenericGenerator; +import org.olat.core.id.CreateInfo; +import org.olat.core.id.ModifiedInfo; +import org.olat.core.id.Persistable; + +/** + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +@Entity(name="clcheckbox") +@Table(name="o_cl_checkbox") +public class DBCheckbox implements Persistable, CreateInfo, ModifiedInfo { + + private static final long serialVersionUID = -5102470594385705622L; + + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "hilo") + @Column(name="id", nullable=false, unique=true, insertable=true, updatable=false) + private Long key; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name="creationdate", nullable=false, insertable=true, updatable=false) + private Date creationDate; + @Temporal(TemporalType.TIMESTAMP) + @Column(name="lastmodified", nullable=false, insertable=true, updatable=true) + private Date lastModified; + + @Column(name="c_checkboxid", nullable=false, insertable=true, updatable=false) + private String checkboxId; + @Column(name="c_resname", nullable=false, insertable=true, updatable=false) + private String resName; + @Column(name="c_resid", nullable=false, insertable=true, updatable=false) + private Long resId; + @Column(name="c_ressubpath", nullable=false, insertable=true, updatable=false) + private String resSubPath; + + public Long getKey() { + return key; + } + + public void setKey(Long key) { + this.key = key; + } + + public Date getCreationDate() { + return creationDate; + } + + public void setCreationDate(Date creationDate) { + this.creationDate = creationDate; + } + + public Date getLastModified() { + return lastModified; + } + + public void setLastModified(Date lastModified) { + this.lastModified = lastModified; + } + + public String getCheckboxId() { + return checkboxId; + } + + public void setCheckboxId(String checkboxId) { + this.checkboxId = checkboxId; + } + + public String getResName() { + return resName; + } + + public void setResName(String resName) { + this.resName = resName; + } + + public Long getResId() { + return resId; + } + + public void setResId(Long resId) { + this.resId = resId; + } + + public String getResSubPath() { + return resSubPath; + } + + public void setResSubPath(String resSubPath) { + this.resSubPath = resSubPath; + } + + @Override + public int hashCode() { + return key == null ? 265781 : key.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if(this == obj) { + return true; + } + if(obj instanceof DBCheckbox) { + DBCheckbox checkbox = (DBCheckbox)obj; + return key != null && key.equals(checkbox.getKey()); + } + return false; + } + + @Override + public boolean equalsByPersistableKey(Persistable persistable) { + return equals(persistable); + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityAssessmentController.java b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityAssessmentController.java new file mode 100644 index 0000000000000000000000000000000000000000..922be7c178e9335ae2c3213c1e8a462286837ab3 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityAssessmentController.java @@ -0,0 +1,67 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; + +/** + * + * Initial date: 10.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class AssessedIdentityAssessmentController extends FormBasicController { + + public AssessedIdentityAssessmentController(UserRequest ureq, WindowControl wControl) { + super(ureq, wControl); + + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + + FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); + formLayout.add(buttonCont); + uifactory.addFormSubmitButton("save", "save", buttonCont); + uifactory.addFormCancelButton("cancel", buttonCont, ureq, getWindowControl()); + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void formOK(UserRequest ureq) { + fireEvent(ureq, Event.DONE_EVENT); + } + + @Override + protected void formCancelled(UserRequest ureq) { + fireEvent(ureq, Event.CANCELLED_EVENT); + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java new file mode 100644 index 0000000000000000000000000000000000000000..85d6b213ebbaa417cb3538d9768c00455c6f15d3 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityCheckListController.java @@ -0,0 +1,201 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.olat.core.CoreSpringFactory; +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; +import org.olat.core.gui.components.form.flexible.elements.TextElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.id.Identity; +import org.olat.core.id.OLATResourceable; +import org.olat.course.assessment.AssessmentHelper; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.cl.CheckboxManager; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.nodes.cl.model.CheckboxList; +import org.olat.course.nodes.cl.model.DBCheck; +import org.olat.course.nodes.cl.model.DBCheckbox; +import org.olat.modules.ModuleConfiguration; + +/** + * + * Initial date: 10.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class AssessedIdentityCheckListController extends FormBasicController { + + private static final String[] onKeys = new String[]{ "on" }; + + private final ModuleConfiguration config; + private final CheckListCourseNode courseNode; + private final OLATResourceable courseOres; + private final Identity assessedIdentity; + private final CheckboxList checkboxList; + + private final CheckboxManager checkboxManager; + + public AssessedIdentityCheckListController(UserRequest ureq, WindowControl wControl, + Identity assessedIdentity, OLATResourceable courseOres, CheckListCourseNode courseNode) { + super(ureq, wControl); + + this.courseNode = courseNode; + this.courseOres = courseOres; + config = courseNode.getModuleConfiguration(); + this.assessedIdentity = assessedIdentity; + checkboxList = (CheckboxList)config.get(CheckListCourseNode.CONFIG_KEY_CHECKBOX); + checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); + + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + if(formLayout instanceof FormLayoutContainer) { + FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; + + List<DBCheck> checks = checkboxManager.loadCheck(assessedIdentity, courseOres, courseNode.getIdent()); + Map<String, DBCheck> uuidToCheckMap = new HashMap<>(); + for(DBCheck check:checks) { + uuidToCheckMap.put(check.getCheckbox().getCheckboxId(), check); + } + + List<Checkbox> list = checkboxList.getList(); + List<CheckboxWrapper> wrappers = new ArrayList<>(list.size()); + for(Checkbox checkbox:list) { + DBCheck check = uuidToCheckMap.get(checkbox.getCheckboxId()); + boolean readOnly = false; + CheckboxWrapper wrapper = forgeCheckboxWrapper(checkbox, check, readOnly, formLayout); + layoutCont.add(wrapper.getCheckboxEl()); + wrappers.add(wrapper); + } + layoutCont.contextPut("checkboxList", wrappers); + } + + FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); + formLayout.add(buttonCont); + uifactory.addFormSubmitButton("save", "save", buttonCont); + uifactory.addFormCancelButton("cancel", buttonCont, ureq, getWindowControl()); + + } + + private CheckboxWrapper forgeCheckboxWrapper(Checkbox checkbox, DBCheck check, boolean readOnly, FormItemContainer formLayout) { + String[] values = new String[]{ translate(checkbox.getLabel().i18nKey()) }; + + String boxId = "box_" + checkbox.getCheckboxId(); + MultipleSelectionElement boxEl = uifactory + .addCheckboxesHorizontal(boxId, null, formLayout, onKeys, values, null); + boxEl.setEnabled(!readOnly); + boxEl.setLabel(checkbox.getTitle(), null, false); + boxEl.showLabel(true); + boxEl.addActionListener(this, FormEvent.ONCHANGE); + + String pointId = "point_" + checkbox.getCheckboxId(); + String points = AssessmentHelper.getRoundedScore(checkbox.getPoints()); + TextElement pointEl = uifactory.addTextElement(pointId, null, 16, points, formLayout); + pointEl.setDisplaySize(5); + pointEl.setExampleKey("checklist.point.example", new String[]{ "0", "1"}); + + CheckboxWrapper wrapper = new CheckboxWrapper(checkbox, boxEl, pointEl); + boxEl.setUserObject(wrapper); + if(check != null && check.getChecked() != null && check.getChecked().booleanValue()) { + boxEl.select(onKeys[0], true); + wrapper.setDbCheckbox(check.getCheckbox()); + } + return wrapper; + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void formOK(UserRequest ureq) { + fireEvent(ureq, Event.DONE_EVENT); + } + + @Override + protected void formCancelled(UserRequest ureq) { + fireEvent(ureq, Event.CANCELLED_EVENT); + } + + public static class CheckboxWrapper { + + private final TextElement pointEl; + private final MultipleSelectionElement checkboxEl; + private final Checkbox checkbox; + private DBCheckbox dbCheckbox; + + public CheckboxWrapper(Checkbox checkbox, MultipleSelectionElement checkboxEl, TextElement pointEl) { + this.checkboxEl = checkboxEl; + this.pointEl = pointEl; + this.checkbox = checkbox; + } + + public Checkbox getCheckbox() { + return checkbox; + } + + /** + * This value is lazy loaded and can be null! + * @return + */ + public DBCheckbox getDbCheckbox() { + return dbCheckbox; + } + + public void setDbCheckbox(DBCheckbox dbCheckbox) { + this.dbCheckbox = dbCheckbox; + } + + public String getTitle() { + return checkbox.getTitle(); + } + + public boolean isPointsAvailable() { + return checkbox.getPoints() != null; + } + + public TextElement getPointEl() { + return pointEl; + } + + public MultipleSelectionElement getCheckboxEl() { + return checkboxEl; + } + + public String getCheckboxElName() { + return checkboxEl.getName();//getComponent().getComponentName(); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityOverviewController.java b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityOverviewController.java new file mode 100644 index 0000000000000000000000000000000000000000..96b1f3b9a9d6a7b3ac1323c04ca63bb29d9ef326 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/AssessedIdentityOverviewController.java @@ -0,0 +1,141 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.link.Link; +import org.olat.core.gui.components.link.LinkFactory; +import org.olat.core.gui.components.segmentedview.SegmentViewComponent; +import org.olat.core.gui.components.segmentedview.SegmentViewEvent; +import org.olat.core.gui.components.segmentedview.SegmentViewFactory; +import org.olat.core.gui.components.velocity.VelocityContainer; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.controller.BasicController; +import org.olat.core.id.Identity; +import org.olat.core.id.OLATResourceable; +import org.olat.course.CourseFactory; +import org.olat.course.ICourse; +import org.olat.course.assessment.AssessedIdentityInfosController; +import org.olat.course.assessment.AssessedIdentityWrapper; +import org.olat.course.assessment.AssessmentEditController; +import org.olat.course.assessment.AssessmentHelper; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.run.userview.UserCourseEnvironment; + +/** + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class AssessedIdentityOverviewController extends BasicController { + + private final VelocityContainer mainVC; + private final Link checkListLink, assessmentLink; + private final SegmentViewComponent segmentView; + + private AssessedIdentityCheckListController listCtrl; + private AssessmentEditController assessmentCtrl; + + private final Identity assessedIdentity; + private final OLATResourceable courseOres; + private final CheckListCourseNode courseNode; + + public AssessedIdentityOverviewController(UserRequest ureq, WindowControl wControl, + Identity assessedIdentity, OLATResourceable courseOres, CheckListCourseNode courseNode) { + super(ureq, wControl); + + this.courseNode = courseNode; + this.courseOres = courseOres; + this.assessedIdentity = assessedIdentity; + + mainVC = createVelocityContainer("user_assessment"); + + AssessedIdentityInfosController identityInfos = new AssessedIdentityInfosController(ureq, wControl, assessedIdentity); + mainVC.put("identityInfos", identityInfos.getInitialComponent()); + + segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this); + checkListLink = LinkFactory.createLink("checklist", mainVC, this); + segmentView.addSegment(checkListLink, true); + assessmentLink = LinkFactory.createLink("assessment", mainVC, this); + segmentView.addSegment(assessmentLink, false); + + doOpenCheckList(ureq); + + mainVC.put("segments", segmentView); + putInitialPanel(mainVC); + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void event(UserRequest ureq, Controller source, Event event) { + if(listCtrl == source) { + fireEvent(ureq, event); + } else if(assessmentCtrl == source) { + fireEvent(ureq, event); + } + super.event(ureq, source, event); + } + + @Override + protected void event(UserRequest ureq, Component source, Event event) { + if(source == segmentView) { + if(event instanceof SegmentViewEvent) { + SegmentViewEvent sve = (SegmentViewEvent)event; + String segmentCName = sve.getComponentName(); + Component clickedLink = mainVC.getComponent(segmentCName); + if (clickedLink == checkListLink) { + doOpenCheckList(ureq); + } else if (clickedLink == assessmentLink) { + doOpenAssessment(ureq); + } + } + } + } + + private void doOpenCheckList(UserRequest ureq) { + if(listCtrl == null) { + listCtrl = new AssessedIdentityCheckListController(ureq, getWindowControl(), assessedIdentity, courseOres, courseNode); + listenTo(listCtrl); + } + mainVC.put("segmentCmp", listCtrl.getInitialComponent()); + } + + private void doOpenAssessment(UserRequest ureq) { + if(assessmentCtrl == null) { + ICourse course = CourseFactory.loadCourse(courseOres); + UserCourseEnvironment uce = AssessmentHelper.createAndInitUserCourseEnvironment(assessedIdentity, course); + AssessedIdentityWrapper idWrapper = AssessmentHelper.wrapIdentity(uce, null, courseNode); + assessmentCtrl = new AssessmentEditController(ureq, getWindowControl(), null, course, courseNode, idWrapper); + assessmentCtrl.setIdentityInfos(false); + assessmentCtrl.setCourseNodeInfos(false); + assessmentCtrl.setTitleInfos(false); + listenTo(assessmentCtrl); + } + mainVC.put("segmentCmp", assessmentCtrl.getInitialComponent()); + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java new file mode 100644 index 0000000000000000000000000000000000000000..9af5f9f38a6e9a08640d334a69aab5663745860b --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListAssessmentController.java @@ -0,0 +1,351 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.olat.NewControllerFactory; +import org.olat.basesecurity.BaseSecurity; +import org.olat.basesecurity.BaseSecurityModule; +import org.olat.basesecurity.SecurityGroup; +import org.olat.core.CoreSpringFactory; +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; +import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent; +import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiCellRenderer; +import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.TextFlexiCellRenderer; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.ControllerEventListener; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController; +import org.olat.core.id.Identity; +import org.olat.core.id.OLATResourceable; +import org.olat.core.id.Roles; +import org.olat.core.id.UserConstants; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.cl.CheckboxManager; +import org.olat.course.nodes.cl.model.AssessmentDataView; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.nodes.cl.model.CheckboxList; +import org.olat.course.nodes.cl.ui.CheckboxAssessmentDataModel.Cols; +import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.course.run.userview.UserCourseEnvironmentImpl; +import org.olat.group.BusinessGroup; +import org.olat.group.BusinessGroupMembership; +import org.olat.group.BusinessGroupService; +import org.olat.modules.ModuleConfiguration; +import org.olat.repository.RepositoryEntry; +import org.olat.repository.RepositoryManager; +import org.olat.repository.model.RepositoryEntryMembership; +import org.olat.user.UserManager; +import org.olat.user.propertyhandlers.UserPropertyHandler; + +/** + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckListAssessmentController extends FormBasicController implements ControllerEventListener { + + protected static final String USER_PROPS_ID = CheckListAssessmentController.class.getCanonicalName(); + + private final Date dueDate; + private final Boolean closeAfterDueDate; + private final OLATResourceable courseOres; + private final CheckListCourseNode courseNode; + private final ModuleConfiguration config; + private final UserCourseEnvironment userCourseEnv; + private final boolean isAdministrativeUser; + + private CheckboxAssessmentDataModel model; + private FlexiTableElement table; + private final List<UserPropertyHandler> userPropertyHandlers; + + private CloseableModalController cmc; + private AssessedIdentityOverviewController editCtrl; + + private final UserManager userManager; + private final BaseSecurity securityManager; + private final CheckboxManager checkboxManager; + private final RepositoryManager repositoryManager; + private final BusinessGroupService businessGroupService; + + /** + * Use this constructor to launch the checklist. + * + * @param ureq + * @param wControl + * @param courseNode + */ + public CheckListAssessmentController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv, + OLATResourceable courseOres, CheckListCourseNode courseNode) { + super(ureq, wControl, "assessment_list"); + + userManager = CoreSpringFactory.getImpl(UserManager.class); + setTranslator(userManager.getPropertyHandlerTranslator(getTranslator())); + securityManager = CoreSpringFactory.getImpl(BaseSecurity.class); + checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); + repositoryManager = CoreSpringFactory.getImpl(RepositoryManager.class); + businessGroupService = CoreSpringFactory.getImpl(BusinessGroupService.class); + BaseSecurityModule securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class); + + this.courseOres = courseOres; + this.courseNode = courseNode; + this.userCourseEnv = userCourseEnv; + config = courseNode.getModuleConfiguration(); + Roles roles = ureq.getUserSession().getRoles(); + isAdministrativeUser = securityModule.isUserAllowedAdminProps(roles); + userPropertyHandlers = userManager.getUserPropertyHandlersFor(USER_PROPS_ID, isAdministrativeUser); + + closeAfterDueDate = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_CLOSE_AFTER_DUE_DATE); + if(closeAfterDueDate != null && closeAfterDueDate.booleanValue()) { + dueDate = (Date)config.get(CheckListCourseNode.CONFIG_KEY_DUE_DATE); + } else { + dueDate = null; + } + + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + if(formLayout instanceof FormLayoutContainer) { + FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; + if(dueDate != null) { + layoutCont.contextPut("dueDate", dueDate); + } + } + + FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); + if(isAdministrativeUser) { + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.username.i18nKey(), Cols.username.ordinal())); + } + + int i=0; + for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) { + int colIndex = CheckboxAssessmentDataModel.USER_PROPS_OFFSET + i++; + if (userPropertyHandler == null) continue; + + String propName = userPropertyHandler.getName(); + boolean visible = userManager.isMandatoryUserProperty(USER_PROPS_ID , userPropertyHandler); + if(visible) { + FlexiColumnModel col; + if(UserConstants.FIRSTNAME.equals(propName) + || UserConstants.LASTNAME.equals(propName)) { + col = new StaticFlexiColumnModel(userPropertyHandler.i18nColumnDescriptorLabelKey(), + colIndex, userPropertyHandler.getName(), true, propName, + new StaticFlexiCellRenderer(userPropertyHandler.getName(), new TextFlexiCellRenderer())); + } else { + col = new DefaultFlexiColumnModel(true, userPropertyHandler.i18nColumnDescriptorLabelKey(), colIndex, true, propName); + } + columnsModel.addFlexiColumnModel(col); + } + } + + CheckboxList list = (CheckboxList)config.get(CheckListCourseNode.CONFIG_KEY_CHECKBOX); + List<Checkbox> checkboxList = list.getList(); + int j = 0; + for(Checkbox box:checkboxList) { + int colIndex = CheckboxAssessmentDataModel.CHECKBOX_OFFSET + j++; + String colName = "checkbox_" + colIndex; + DefaultFlexiColumnModel column = new DefaultFlexiColumnModel(true, colName, colIndex, true, colName); + column.setHeaderLabel(box.getTitle()); + columnsModel.addFlexiColumnModel(column); + } + + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, Cols.totalPoints.i18nKey(), Cols.totalPoints.ordinal(), true, "points")); + columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("edit.checkbox", translate("edit.checkbox"), "edit")); + + String[] keys = null; + String[] values = null; + if(userCourseEnv instanceof UserCourseEnvironmentImpl) { + UserCourseEnvironmentImpl env = (UserCourseEnvironmentImpl)userCourseEnv; + List<BusinessGroup> coachedGroups = env.getCoachedGroups(); + keys = new String[coachedGroups.size() + 1]; + values = new String[coachedGroups.size() + 1]; + + keys[0] = "all"; + values[0] = translate("filter.all"); + for(int k=0; k<coachedGroups.size(); k++) { + BusinessGroup group = coachedGroups.get(k); + keys[k+1] = group.getKey().toString(); + values[k+1] = group.getName(); + } + } + + List<AssessmentDataView> datas = loadDatas(); + model = new CheckboxAssessmentDataModel(datas, columnsModel); + table = uifactory.addTableElement(ureq, getWindowControl(), "checkbox-list", model, getTranslator(), formLayout); + table.setFilterKeysAndValues("participants", keys, values); + table.setExportEnabled(true); + } + + private List<AssessmentDataView> loadDatas() { + if(!(userCourseEnv instanceof UserCourseEnvironmentImpl)) { + return Collections.emptyList(); + } + + UserCourseEnvironmentImpl env = (UserCourseEnvironmentImpl)userCourseEnv; + CheckboxList list = (CheckboxList)config.get(CheckListCourseNode.CONFIG_KEY_CHECKBOX); + List<Checkbox> checkboxList = list.getList(); + + List<SecurityGroup> secGroups = new ArrayList<SecurityGroup>(); + Map<Long,Long> groupToSecGroupKey = new HashMap<Long,Long>(); + + RepositoryEntry re = env.getCourseRepositoryEntry(); + boolean courseTutor = securityManager.isIdentityInSecurityGroup(getIdentity(), re.getTutorGroup()); + + Set<Long> missingIdentityKeys = new HashSet<>(); + if(courseTutor) { + secGroups.add(re.getParticipantGroup()); + List<RepositoryEntryMembership> repoMemberships = repositoryManager.getRepositoryEntryMembership(re); + for(RepositoryEntryMembership repoMembership:repoMemberships) { + if(repoMembership.getParticipantRepoKey() == null) continue; + missingIdentityKeys.add(repoMembership.getIdentityKey()); + } + } + + List<BusinessGroup> coachedGroups = env.getCoachedGroups(); + for(BusinessGroup group:coachedGroups) { + secGroups.add(group.getPartipiciantGroup()); + groupToSecGroupKey.put(group.getKey(), group.getPartipiciantGroup().getKey()); + } + + List<AssessmentDataView> boxList = checkboxManager.getAssessmentDataViews(courseOres, courseNode.getIdent(), + checkboxList, secGroups, userPropertyHandlers, getLocale()); + Map<Long,AssessmentDataView> identityToView = new HashMap<>(); + for(AssessmentDataView box:boxList) { + identityToView.put(box.getIdentityKey(), box); + missingIdentityKeys.remove(box.getIdentityKey()); + } + + List<BusinessGroupMembership> memberships = businessGroupService.getBusinessGroupsMembership(coachedGroups); + for(BusinessGroupMembership membership:memberships) { + if(!membership.isParticipant()) continue; + Long identityKey = membership.getIdentityKey(); + if(!identityToView.containsKey(identityKey)) { + missingIdentityKeys.add(identityKey); + } + } + + List<Identity> missingIdentities = securityManager.loadIdentityByKeys(missingIdentityKeys); + for(Identity missingIdentity:missingIdentities) { + AssessmentDataView view = new AssessmentDataView(missingIdentity, null, null, userPropertyHandlers, getLocale()); + identityToView.put(missingIdentity.getKey(), view); + } + + for(BusinessGroupMembership membership:memberships) { + if(!membership.isParticipant()) continue; + AssessmentDataView view = identityToView.get(membership.getIdentityKey()); + if(view != null) { + view.addGroupKey(membership.getGroupKey()); + } + } + + List<AssessmentDataView> views = new ArrayList<>(); + views.addAll(identityToView.values()); + return views; + } + + @Override + protected void formOK(UserRequest ureq) { + // + } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + if(table == source) { + if(event instanceof SelectionEvent) { + SelectionEvent se = (SelectionEvent)event; + String cmd = se.getCommand(); + if("edit".equals(cmd)) { + AssessmentDataView row = model.getObject(se.getIndex()); + doOpenEdit(ureq, row); + } else if(UserConstants.FIRSTNAME.equals(cmd) || UserConstants.LASTNAME.equals(cmd)) { + AssessmentDataView row = model.getObject(se.getIndex()); + doOpenIdentity(ureq, row); + } + } + } + super.formInnerEvent(ureq, source, event); + } + + @Override + protected void event(UserRequest ureq, Controller source, Event event) { + if(editCtrl == source) { + cmc.deactivate(); + cleanUp(); + } else if(cmc == source) { + cleanUp(); + } + super.event(ureq, source, event); + } + + private void cleanUp() { + removeAsListenerAndDispose(editCtrl); + removeAsListenerAndDispose(cmc); + editCtrl = null; + cmc = null; + } + + @Override + protected void doDispose() { + // + } + + private void doOpenIdentity(UserRequest ureq, AssessmentDataView row) { + String businessPath = "[Identity:" + row.getIdentityKey() + "]"; + NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl()); + } + + private void doOpenEdit(UserRequest ureq, AssessmentDataView row) { + if(editCtrl != null) return; + + Identity assessedIdentity = securityManager.loadIdentityByKey(row.getIdentityKey()); + editCtrl = new AssessedIdentityOverviewController(ureq, getWindowControl(), assessedIdentity, courseOres, courseNode); + listenTo(editCtrl); + + String title = courseNode.getShortTitle(); + Component content = editCtrl.getInitialComponent(); + cmc = new CloseableModalController(getWindowControl(), "close", content, true, title); + listenTo(cmc); + cmc.activate(); + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListBoxListEditController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListBoxListEditController.java new file mode 100644 index 0000000000000000000000000000000000000000..d7d6ceaad31e1eeffde7cc97edd6088062372ccb --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListBoxListEditController.java @@ -0,0 +1,198 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; +import org.olat.core.gui.components.form.flexible.elements.FormLink; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; +import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent; +import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiColumnModel; +import org.olat.core.gui.components.link.Link; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController; +import org.olat.core.id.OLATResourceable; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.nodes.cl.model.CheckboxList; +import org.olat.course.nodes.cl.ui.CheckboxConfigDataModel.Cols; +import org.olat.modules.ModuleConfiguration; + +/** + * Controller to manage a list of checks + * + * + * Initial date: 04.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckListBoxListEditController extends FormBasicController { + + private FormLink addLink; + private FlexiTableElement boxTable; + private CheckboxConfigDataModel model; + private CloseableModalController cmc; + private CheckboxEditController editCtrl; + + private ModuleConfiguration config; + private final OLATResourceable courseOres; + private final CheckListCourseNode courseNode; + + public CheckListBoxListEditController(UserRequest ureq, WindowControl wControl, + OLATResourceable courseOres, CheckListCourseNode courseNode) { + super(ureq, wControl, LAYOUT_VERTICAL); + + this.courseOres = courseOres; + this.courseNode = courseNode; + config = courseNode.getModuleConfiguration(); + + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + setFormTitle("config.checkbox.title"); + setFormDescription("config.checkbox.description"); + setFormContextHelp("org.olat.course.nodes.cl.ui", "cl-checkbox.html", "help.hover.checkbox"); + + FormLayoutContainer tableCont = FormLayoutContainer + .createCustomFormLayout("tablecontainer", getTranslator(), velocity_root + "/checkboxlist_edit.html"); + formLayout.add(tableCont); + + addLink = uifactory.addFormLink("add.checkbox", tableCont, Link.BUTTON); + + FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.title.i18nKey(), Cols.title.ordinal())); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.points.i18nKey(), Cols.points.ordinal())); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.release.i18nKey(), Cols.release.ordinal())); + columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.file.i18nKey(), Cols.file.ordinal())); + columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("edit.checkbox", translate("edit.checkbox"), "edit")); + + CheckboxList list = (CheckboxList)config.get(CheckListCourseNode.CONFIG_KEY_CHECKBOX); + List<Checkbox> boxList = list == null ? null : list.getList(); + if(boxList == null) { + boxList = new ArrayList<Checkbox>(); + } + model = new CheckboxConfigDataModel(boxList, getTranslator(), columnsModel); + boxTable = uifactory.addTableElement(ureq, getWindowControl(), "checkbox-list", model, getTranslator(), tableCont); + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void formOK(UserRequest ureq) { + // + } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + if(addLink == source) { + Checkbox checkbox = new Checkbox(); + checkbox.setCheckboxId(UUID.randomUUID().toString()); + String title = translate("add.checkbox"); + doOpenEdit(ureq, checkbox, true, title); + } else if(boxTable == source) { + if(event instanceof SelectionEvent) { + SelectionEvent se = (SelectionEvent)event; + String cmd = se.getCommand(); + if("edit".equals(cmd)) { + Checkbox row = model.getObject(se.getIndex()); + doOpenEdit(ureq, row, false, "edit.checkbox"); + } + } + } + super.formInnerEvent(ureq, source, event); + } + + @Override + protected void event(UserRequest ureq, Controller source, Event event) { + if(cmc == source) { + cleanUp(); + } else if(editCtrl == source) { + if(event == Event.CHANGED_EVENT || event == Event.DONE_EVENT) { + doEdit(ureq, editCtrl.getCheckbox()); + } else if("delete".equals(event.getCommand())) { + doDelete(ureq, editCtrl.getCheckbox()); + } + cmc.deactivate(); + cleanUp(); + } + super.event(ureq, source, event); + } + + private void doDelete(UserRequest ureq, Checkbox checkbox ) { + CheckboxList list = (CheckboxList)config.get(CheckListCourseNode.CONFIG_KEY_CHECKBOX); + if(list == null || checkbox == null) return; + + list.remove(checkbox); + config.set(CheckListCourseNode.CONFIG_KEY_CHECKBOX, list); + fireEvent(ureq, Event.DONE_EVENT); + model.setObjects(list.getList()); + boxTable.reset(); + } + + private void doEdit(UserRequest ureq, Checkbox checkbox) { + CheckboxList list = (CheckboxList)config.get(CheckListCourseNode.CONFIG_KEY_CHECKBOX); + if(list == null) { + list = new CheckboxList(); + } + list.add(checkbox); + config.set(CheckListCourseNode.CONFIG_KEY_CHECKBOX, list); + fireEvent(ureq, Event.DONE_EVENT); + model.setObjects(list.getList()); + boxTable.reset(); + } + + private void doOpenEdit(UserRequest ureq, Checkbox checkbox, boolean newCheckbox, String title) { + if(editCtrl != null) return; + + editCtrl = new CheckboxEditController(ureq, getWindowControl(), courseOres, courseNode, checkbox, newCheckbox); + listenTo(editCtrl); + + Component content = editCtrl.getInitialComponent(); + cmc = new CloseableModalController(getWindowControl(), "close", content, true, title); + listenTo(cmc); + cmc.activate(); + } + + private void cleanUp() { + removeAsListenerAndDispose(editCtrl); + removeAsListenerAndDispose(cmc); + editCtrl = null; + cmc = null; + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListConfigurationController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListConfigurationController.java new file mode 100644 index 0000000000000000000000000000000000000000..00a3f713669d6cad649cac190fc7f7f86c4b588f --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListConfigurationController.java @@ -0,0 +1,289 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import java.util.Date; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.DateChooser; +import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; +import org.olat.core.gui.components.form.flexible.elements.RichTextElement; +import org.olat.core.gui.components.form.flexible.elements.SingleSelection; +import org.olat.core.gui.components.form.flexible.elements.TextElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.util.StringHelper; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.CourseNode; +import org.olat.course.nodes.MSCourseNode; +import org.olat.modules.ModuleConfiguration; + +/** + * + * Initial date: 04.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckListConfigurationController extends FormBasicController { + + private static final String[] onKeys = new String[]{ "on" }; + private static final String[] outputKeys = new String[]{ "cutvalue", "sum", "coach"}; + + private MultipleSelectionElement dueDateEl, scoreGrantedEl, passedEl, commentEl; + private SingleSelection outputEl; + private TextElement minPointsEl, maxPointsEl, cutValueEl; + private RichTextElement tipUserEl, tipCoachEl; + private DateChooser dueDateChooserEl; + + private ModuleConfiguration config; + + + public CheckListConfigurationController(UserRequest ureq, WindowControl wControl, CourseNode courseNode) { + super(ureq, wControl); + + config = courseNode.getModuleConfiguration(); + + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + setFormTitle("config.title"); + setFormDescription("config.description"); + setFormContextHelp("org.olat.course.nodes.cl.ui", "cl-config.html", "help.hover.config"); + + //due date + Boolean dueDateBool = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_CLOSE_AFTER_DUE_DATE); + Date dueDate = (Date)config.get(CheckListCourseNode.CONFIG_KEY_DUE_DATE); + String[] theValues = new String[] { "" }; + dueDateEl = uifactory.addCheckboxesHorizontal("duedate", "config.due.date.on", formLayout, onKeys, theValues, null); + dueDateEl.addActionListener(this, FormEvent.ONCHANGE); + if(dueDateBool != null && dueDateBool.booleanValue()) { + dueDateEl.select(onKeys[0], true); + } + dueDateChooserEl = uifactory.addDateChooser("config.due.date", dueDate, formLayout); + dueDateChooserEl.setDateChooserTimeEnabled(true); + if(dueDateBool != null && dueDateBool.booleanValue()) { + dueDateEl.select(onKeys[0], true); + dueDateChooserEl.setVisible(true); + } else { + dueDateChooserEl.setVisible(false); + } + uifactory.addSpacerElement("spacer-duedate", formLayout, false); + + //points + Boolean scoreGrantedBool = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD); + Float minVal = (Float)config.get(MSCourseNode.CONFIG_KEY_SCORE_MIN); + Float maxVal = (Float)config.get(MSCourseNode.CONFIG_KEY_SCORE_MAX); + String[] pointsValues = new String[]{ translate("config.points.on") }; + scoreGrantedEl = uifactory.addCheckboxesHorizontal("points", "config.points", formLayout, onKeys, pointsValues, null); + if(scoreGrantedBool != null && scoreGrantedBool.booleanValue()) { + scoreGrantedEl.select(onKeys[0], true); + } + String minValStr = minVal == null ? "" : Float.toString(minVal.floatValue()); + minPointsEl = uifactory.addTextElement("pointsmin", "config.points.min", 4, minValStr, formLayout); + minPointsEl.setDisplaySize(5); + String maxValStr = maxVal == null ? "" : Float.toString(maxVal.floatValue()); + maxPointsEl = uifactory.addTextElement("pointsmax", "config.points.max", 4, maxValStr, formLayout); + maxPointsEl.setDisplaySize(5); + uifactory.addSpacerElement("spacer-points", formLayout, false); + + //passed + Boolean passedBool = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD); + passedEl = uifactory.addCheckboxesHorizontal("passed", "config.passed", formLayout, onKeys, theValues, null); + if(passedBool != null && passedBool.booleanValue()) { + passedEl.select(onKeys[0], true); + } + String[] outputValues = new String[]{ + translate("config.output.cutvalue"), translate("config.output.sum"), translate("config.output.coach") + }; + outputEl = uifactory.addRadiosVertical("output", "config.output", formLayout, outputKeys, outputValues); + Boolean passedSum = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CHECKBOX); + if(passedSum != null && passedSum.booleanValue()) { + outputEl.select(outputKeys[1], true); + } + Boolean manualCorr = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_MANUAL_CORRECTION); + if(manualCorr != null && manualCorr.booleanValue()) { + outputEl.select(outputKeys[2], true); + } + Float cutVal = (Float)config.get(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE); + if(cutVal != null && cutVal.floatValue() > -0.1) { + outputEl.select(outputKeys[0], true); + } + String cutValStr = cutVal == null ? "" : Float.toString(cutVal.floatValue()); + cutValueEl = uifactory.addTextElement("cutvalue", "config.cutvalue", 4, cutValStr, formLayout); + cutValueEl.setDisplaySize(5); + uifactory.addSpacerElement("spacer-passed", formLayout, false); + + //comment + commentEl = uifactory.addCheckboxesHorizontal("comment", "config.comment", formLayout, onKeys, theValues, null); + Boolean commentBool = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_COMMENT_FIELD); + if(commentBool != null && commentBool.booleanValue()) { + commentEl.select(onKeys[0], true); + } + + String iu = (String)config.get(MSCourseNode.CONFIG_KEY_INFOTEXT_USER); + tipUserEl = uifactory.addRichTextElementForStringDataMinimalistic("tip.user", "config.tip.user", iu, 5, -1, formLayout, + ureq.getUserSession(), getWindowControl()); + + String ic = (String)config.get(MSCourseNode.CONFIG_KEY_INFOTEXT_COACH); + tipCoachEl = uifactory.addRichTextElementForStringDataMinimalistic("tip.coach", "config.tip.coach", ic, 5, -1, formLayout, + ureq.getUserSession(), getWindowControl()); + + + FormLayoutContainer buttonsLayout = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); + formLayout.add(buttonsLayout); + uifactory.addFormSubmitButton("submit", "submit", buttonsLayout); + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void formOK(UserRequest ureq) { + //due date + boolean closeAfterDueDate = dueDateEl.isAtLeastSelected(1); + config.set(CheckListCourseNode.CONFIG_KEY_CLOSE_AFTER_DUE_DATE, new Boolean(closeAfterDueDate)); + Date dueDate = dueDateChooserEl.getDate(); + if(dueDate != null) { + config.set(CheckListCourseNode.CONFIG_KEY_DUE_DATE, dueDate); + } else { + config.remove(CheckListCourseNode.CONFIG_KEY_DUE_DATE); + } + //score + Boolean sf = new Boolean(scoreGrantedEl.isSelected(0)); + config.set(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD, sf); + if (sf.booleanValue()) { + config.set(MSCourseNode.CONFIG_KEY_SCORE_MIN, new Float(minPointsEl.getValue())); + config.set(MSCourseNode.CONFIG_KEY_SCORE_MAX, new Float(maxPointsEl.getValue())); + } else { + config.remove(MSCourseNode.CONFIG_KEY_SCORE_MIN); + config.remove(MSCourseNode.CONFIG_KEY_SCORE_MAX); + } + + // mandatory passed flag + Boolean pf = new Boolean(passedEl.isSelected(0)); + config.set(MSCourseNode.CONFIG_KEY_HAS_PASSED_FIELD, pf); + config.remove(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE); + config.set(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CHECKBOX, Boolean.FALSE); + config.set(CheckListCourseNode.CONFIG_KEY_PASSED_MANUAL_CORRECTION, Boolean.FALSE); + if (pf.booleanValue()) { + String output = outputEl.getSelectedKey(); + if("cutvalue".equals(output)) { + config.set(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE, new Float(cutValueEl.getValue())); + } else if("sum".equals(output)) { + config.set(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CHECKBOX, Boolean.TRUE); + } else if("coach".equals(output)) { + config.set(CheckListCourseNode.CONFIG_KEY_PASSED_MANUAL_CORRECTION, Boolean.TRUE); + } + } + + // mandatory comment flag + config.set(MSCourseNode.CONFIG_KEY_HAS_COMMENT_FIELD, new Boolean(commentEl.isSelected(0))); + + // set info text only if something is in there + String iu = tipUserEl.getValue(); + if (StringHelper.containsNonWhitespace(iu)) { + config.set(MSCourseNode.CONFIG_KEY_INFOTEXT_USER, iu); + } else { + config.remove(MSCourseNode.CONFIG_KEY_INFOTEXT_USER); + } + String ic = tipCoachEl.getValue(); + if (StringHelper.containsNonWhitespace(ic)) { + config.set(MSCourseNode.CONFIG_KEY_INFOTEXT_COACH, ic); + } else { + config.remove(MSCourseNode.CONFIG_KEY_INFOTEXT_COACH); + } + fireEvent(ureq, Event.DONE_EVENT); + } + + @Override + protected boolean validateFormLogic(UserRequest ureq) { + boolean allOk = true; + // score flag + minPointsEl.clearError(); + maxPointsEl.clearError(); + if (scoreGrantedEl.isSelected(0)) { + float min = toFloat(minPointsEl.getValue()); + float max = toFloat(maxPointsEl.getValue()); + if (Float.isNaN(min) || min < 0.0f) { + minPointsEl.setErrorKey("form.error.wrongFloat", null); + allOk &= false; + } + if (Float.isNaN(max) || max < 0.0f) { + maxPointsEl.setErrorKey("form.error.wrongFloat", null); + allOk &= false; + } + if (!Float.isNaN(min) && !Float.isNaN(min) && min > max) { + maxPointsEl.setErrorKey("form.error.minGreaterThanMax", null); + allOk &= false; + } + } + + cutValueEl.clearError(); + outputEl.clearError(); + if(passedEl.isSelected(0)) { + if(outputEl.isOneSelected()) { + String selectKey = outputEl.getSelectedKey(); + if("cutvalue".equals(selectKey)) { + float cut = toFloat(cutValueEl.getValue()); + if (Float.isNaN(cut) || cut < 0.0f) { + minPointsEl.setErrorKey("form.error.wrongFloat", null); + allOk &= false; + } + } + } else { + maxPointsEl.setErrorKey("form.legende.mandatory", null); + } + } + return allOk & super.validateFormLogic(ureq); + } + + private float toFloat(String val) { + float ret; + try { + ret = Float.parseFloat(val); + } catch (NumberFormatException e) { + ret = Float.NaN; + } + return ret; + } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + if(dueDateEl == source) { + boolean selected = dueDateEl.isAtLeastSelected(1); + dueDateChooserEl.setVisible(selected); + + + } + super.formInnerEvent(ureq, source, event); + } + + +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListEditController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListEditController.java new file mode 100644 index 0000000000000000000000000000000000000000..8f4c079804165cc1cd884f37d555cb5daddce1c5 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListEditController.java @@ -0,0 +1,126 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.tabbedpane.TabbedPane; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.ControllerEventListener; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController; +import org.olat.course.ICourse; +import org.olat.course.assessment.AssessmentHelper; +import org.olat.course.condition.Condition; +import org.olat.course.condition.ConditionEditController; +import org.olat.course.editor.NodeEditController; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.run.userview.UserCourseEnvironment; + +/** + * + * Initial date: 04.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckListEditController extends ActivateableTabbableDefaultController implements ControllerEventListener { + + public static final String PANE_TAB_CLCONFIG = "pane.tab.clconfig"; + private static final String PANE_TAB_ACCESSIBILITY = "pane.tab.accessibility"; + private static final String PANE_TAB_CHECKBOX = "pane.tab.checkbox"; + + private ConditionEditController accessibilityCondCtrl; + private CheckListBoxListEditController checkboxListEditCtrl; + private CheckListConfigurationController configurationCtrl; + private CheckListCourseNode courseNode; + + private TabbedPane myTabbedPane; + + private final static String[] paneKeys = { PANE_TAB_CLCONFIG, PANE_TAB_CHECKBOX }; + + /** + * @param cpNode + * @param ureq + * @param wControl + * @param course + */ + public CheckListEditController(CheckListCourseNode courseNode, UserRequest ureq, WindowControl wControl, + ICourse course, UserCourseEnvironment euce) { + super(ureq, wControl); + this.courseNode = courseNode; + + // Accessibility precondition + Condition accessCondition = courseNode.getPreConditionAccess(); + accessibilityCondCtrl = new ConditionEditController(ureq, getWindowControl(), course.getCourseEnvironment().getCourseGroupManager(), + accessCondition, "accessabilityConditionForm", AssessmentHelper.getAssessableNodes(course.getEditorTreeModel(), courseNode), euce); + listenTo(accessibilityCondCtrl); + + checkboxListEditCtrl = new CheckListBoxListEditController(ureq, wControl, course, courseNode); + listenTo(checkboxListEditCtrl); + configurationCtrl = new CheckListConfigurationController(ureq, wControl, courseNode); + listenTo(configurationCtrl); + } + + @Override + protected void doDispose() { + // + } + + @Override + public String[] getPaneKeys() { + return paneKeys; + } + + @Override + public TabbedPane getTabbedPane() { + return myTabbedPane; + } + + @Override + public void addTabs(TabbedPane tabbedPane) { + myTabbedPane = tabbedPane; + + tabbedPane.addTab(translate(PANE_TAB_ACCESSIBILITY), + accessibilityCondCtrl.getWrappedDefaultAccessConditionVC(translate("condition.accessibility.title"))); + tabbedPane.addTab(translate(PANE_TAB_CLCONFIG), configurationCtrl.getInitialComponent()); + tabbedPane.addTab(translate(PANE_TAB_CHECKBOX), checkboxListEditCtrl.getInitialComponent()); + } + + @Override + public void event(UserRequest ureq, Component source, Event event) { + // + } + + @Override + public void event(UserRequest urequest, Controller source, Event event) { + if (source == accessibilityCondCtrl) { + if (event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) { + Condition cond = accessibilityCondCtrl.getCondition(); + courseNode.setPreConditionAccess(cond); + fireEvent(urequest, NodeEditController.NODECONFIG_CHANGED_EVENT); + } + } else if(source == configurationCtrl || source == checkboxListEditCtrl) { + if (event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) { + fireEvent(urequest, NodeEditController.NODECONFIG_CHANGED_EVENT); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java new file mode 100644 index 0000000000000000000000000000000000000000..cdcf588a447f8b5d647e57a73e51334e0b46f362 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunController.java @@ -0,0 +1,339 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.olat.core.CoreSpringFactory; +import org.olat.core.commons.persistence.DBFactory; +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.FormLink; +import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.components.link.Link; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.ControllerEventListener; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.generic.dtabs.Activateable2; +import org.olat.core.id.OLATResourceable; +import org.olat.core.id.context.ContextEntry; +import org.olat.core.id.context.StateEntry; +import org.olat.core.logging.activity.CourseLoggingAction; +import org.olat.core.logging.activity.StringResourceableType; +import org.olat.core.logging.activity.ThreadLocalUserActivityLogger; +import org.olat.core.util.StringHelper; +import org.olat.core.util.vfs.VFSContainer; +import org.olat.core.util.vfs.VFSItem; +import org.olat.core.util.vfs.VFSLeaf; +import org.olat.core.util.vfs.VFSMediaResource; +import org.olat.course.assessment.AssessmentHelper; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.MSCourseNode; +import org.olat.course.nodes.cl.CheckboxManager; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.nodes.cl.model.CheckboxList; +import org.olat.course.nodes.cl.model.DBCheck; +import org.olat.course.nodes.cl.model.DBCheckbox; +import org.olat.course.run.environment.CourseEnvironment; +import org.olat.course.run.scoring.ScoreEvaluation; +import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.modules.ModuleConfiguration; +import org.olat.util.logging.activity.LoggingResourceable; + +/** + * + * Initial date: 04.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckListRunController extends FormBasicController implements ControllerEventListener, Activateable2 { + + private final Date dueDate; + private final Boolean closeAfterDueDate; + private final CheckboxList checkboxList; + + private static final String[] onKeys = new String[]{ "on" }; + + private final ModuleConfiguration config; + private final CheckListCourseNode courseNode; + private final OLATResourceable courseOres; + private final UserCourseEnvironment userCourseEnv; + + private final CheckboxManager checkboxManager; + + /** + * Use this constructor to launch the checklist. + * + * @param ureq + * @param wControl + * @param courseNode + */ + public CheckListRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv, + OLATResourceable courseOres, CheckListCourseNode courseNode) { + super(ureq, wControl, "run"); + + this.courseNode = courseNode; + this.courseOres = courseOres; + this.userCourseEnv = userCourseEnv; + checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); + + config = courseNode.getModuleConfiguration(); + checkboxList = (CheckboxList)config.get(CheckListCourseNode.CONFIG_KEY_CHECKBOX); + closeAfterDueDate = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_CLOSE_AFTER_DUE_DATE); + if(closeAfterDueDate != null && closeAfterDueDate.booleanValue()) { + dueDate = (Date)config.get(CheckListCourseNode.CONFIG_KEY_DUE_DATE); + } else { + dueDate = null; + } + + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + boolean readOnly = isReadOnly(); + if(formLayout instanceof FormLayoutContainer) { + FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; + layoutCont.contextPut("readOnly", new Boolean(readOnly)); + if(dueDate != null) { + layoutCont.contextPut("dueDate", dueDate); + } + + List<DBCheck> checks = checkboxManager.loadCheck(getIdentity(), courseOres, courseNode.getIdent()); + Map<String, DBCheck> uuidToCheckMap = new HashMap<>(); + for(DBCheck check:checks) { + uuidToCheckMap.put(check.getCheckbox().getCheckboxId(), check); + } + + List<Checkbox> list = checkboxList.getList(); + List<CheckboxWrapper> wrappers = new ArrayList<>(list.size()); + for(Checkbox checkbox:list) { + DBCheck check = uuidToCheckMap.get(checkbox.getCheckboxId()); + CheckboxWrapper wrapper = forgeCheckboxWrapper(checkbox, check, readOnly, formLayout); + layoutCont.add(wrapper.getCheckboxEl()); + wrappers.add(wrapper); + } + layoutCont.contextPut("checkboxList", wrappers); + } + } + + private CheckboxWrapper forgeCheckboxWrapper(Checkbox checkbox, DBCheck check, boolean readOnly, FormItemContainer formLayout) { + String[] values = new String[]{ translate(checkbox.getLabel().i18nKey()) }; + + boolean canCheck = CheckboxReleaseEnum.userAndCoach.equals(checkbox.getRelease()); + + String boxId = "box_" + checkbox.getCheckboxId(); + MultipleSelectionElement el = uifactory + .addCheckboxesHorizontal(boxId, null, formLayout, onKeys, values, null); + el.setEnabled(canCheck && !readOnly); + el.addActionListener(this, FormEvent.ONCHANGE); + + FormLink downloadLink = null; + if(StringHelper.containsNonWhitespace(checkbox.getFilename())) { + String filename = checkbox.getFilename(); + String name = "file_" + checkbox.getCheckboxId(); + downloadLink = uifactory.addFormLink(name, "download", filename, null, formLayout, Link.LINK | Link.NONTRANSLATED); + ((Link)downloadLink.getComponent()).setTarget("_blank"); + } + + CheckboxWrapper wrapper = new CheckboxWrapper(checkbox, downloadLink, el); + el.setUserObject(wrapper); + if(check != null && check.getChecked() != null && check.getChecked().booleanValue()) { + el.select(onKeys[0], true); + wrapper.setDbCheckbox(check.getCheckbox()); + } + if(downloadLink != null) { + downloadLink.setUserObject(wrapper); + } + + return wrapper; + } + + private boolean isReadOnly() { + return (closeAfterDueDate != null && closeAfterDueDate.booleanValue() + && dueDate != null && dueDate.before(new Date())); + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void formOK(UserRequest ureq) { + // + } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + if(source instanceof MultipleSelectionElement) { + MultipleSelectionElement boxEl = (MultipleSelectionElement)source; + CheckboxWrapper wrapper = (CheckboxWrapper)boxEl.getUserObject(); + if(wrapper != null) { + boolean checked = boxEl.isAtLeastSelected(1); + doCheck(wrapper, checked); + } + } else if(source instanceof FormLink) { + FormLink link = (FormLink)source; + if("download".equals(link.getCmd())) { + CheckboxWrapper wrapper = (CheckboxWrapper)link.getUserObject(); + CourseEnvironment courseEnv = userCourseEnv.getCourseEnvironment(); + VFSContainer container = checkboxManager.getFileContainer(courseEnv, courseNode, wrapper.getCheckbox()); + VFSItem item = container.resolve(wrapper.getCheckbox().getFilename()); + if(item instanceof VFSLeaf) { + VFSMediaResource rsrc = new VFSMediaResource((VFSLeaf)item); + rsrc.setDownloadable(true); + ureq.getDispatchResult().setResultingMediaResource(rsrc); + } + } + } + super.formInnerEvent(ureq, source, event); + } + + private void doCheck(CheckboxWrapper wrapper, boolean checked) { + DBCheckbox theOne; + if(wrapper.getDbCheckbox() == null) { + String uuid = wrapper.getCheckbox().getCheckboxId(); + theOne = checkboxManager.loadCheckbox(courseOres, courseNode.getIdent(), uuid); + } else { + theOne = wrapper.getDbCheckbox(); + } + + Float score = wrapper.getCheckbox().getPoints(); + checkboxManager.check(theOne, getIdentity(), score, new Boolean(checked)); + DBFactory.getInstance().commit();//make sure all results is on the database before calculating some scores + + Boolean sum = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CHECKBOX); + Float cutValue = (Float)config.get(MSCourseNode.CONFIG_KEY_PASSED_CUT_VALUE); + if(cutValue != null) { + doUpdateAssessment(cutValue); + } else if(sum != null) { + doUpdateAssessmentBySum(); + } + + Checkbox checkbox = wrapper.getCheckbox(); + logUpdateCheck(checkbox.getCheckboxId(), checkbox.getTitle()); + } + + private void doUpdateAssessment(Float cutValue) { + float score = checkboxManager.calculateScore(getIdentity(), courseOres, courseNode.getIdent()); + Boolean passed = null; + if(cutValue != null) { + boolean aboveCutValue = score >= cutValue.floatValue(); + passed = new Boolean(aboveCutValue); + } + ScoreEvaluation sceval = new ScoreEvaluation(new Float(score), passed); + courseNode.updateUserScoreEvaluation(sceval, userCourseEnv, getIdentity(), false); + userCourseEnv.getScoreAccounting().scoreInfoChanged(courseNode, sceval); + } + + private void doUpdateAssessmentBySum() { + int checkedBox = checkboxManager.countChecked(getIdentity(), courseOres, courseNode.getIdent()); + boolean passed = checkedBox == checkboxList.getList().size(); + + Float score = null; + if(passed) { + Boolean scoreGrantedBool = (Boolean)config.get(MSCourseNode.CONFIG_KEY_HAS_SCORE_FIELD); + if(scoreGrantedBool != null && scoreGrantedBool.booleanValue()) { + score = (Float)config.get(MSCourseNode.CONFIG_KEY_SCORE_MAX); + } + } + + ScoreEvaluation sceval = new ScoreEvaluation(score, new Boolean(passed)); + courseNode.updateUserScoreEvaluation(sceval, userCourseEnv, getIdentity(), false); + userCourseEnv.getScoreAccounting().scoreInfoChanged(courseNode, sceval); + } + + private void logUpdateCheck(String checkboxId, String boxTitle) { + ThreadLocalUserActivityLogger.log(CourseLoggingAction.CHECKLIST_CHECK_UPDATED, getClass(), + LoggingResourceable.wrapNonOlatResource(StringResourceableType.checkbox, checkboxId, boxTitle)); + } + + @Override + public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { + //nothin to do + } + + public static class CheckboxWrapper { + + private final Checkbox checkbox; + private final FormLink downloadLink; + private final MultipleSelectionElement checkboxEl; + private DBCheckbox dbCheckbox; + + public CheckboxWrapper(Checkbox checkbox, FormLink downloadLink, MultipleSelectionElement checkboxEl) { + this.checkboxEl = checkboxEl; + this.downloadLink = downloadLink; + this.checkbox = checkbox; + } + + public Checkbox getCheckbox() { + return checkbox; + } + + /** + * This value is lazy loaded and can be null! + * @return + */ + public DBCheckbox getDbCheckbox() { + return dbCheckbox; + } + + public void setDbCheckbox(DBCheckbox dbCheckbox) { + this.dbCheckbox = dbCheckbox; + } + + public String getTitle() { + return checkbox.getTitle(); + } + + public boolean isPointsAvailable() { + return checkbox.getPoints() != null; + } + + public String getPoints() { + return AssessmentHelper.getRoundedScore(checkbox.getPoints()); + } + + public String getDescription() { + return checkbox.getDescription(); + } + + public MultipleSelectionElement getCheckboxEl() { + return checkboxEl; + } + + public String getCheckboxElName() { + return checkboxEl.getName();//getComponent().getComponentName(); + } + + public String getDownloadName() { + return downloadLink.getComponent().getComponentName(); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunForCoachController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunForCoachController.java new file mode 100644 index 0000000000000000000000000000000000000000..7c2fad6e7fe23e43ec3cc11fe719022143784ed2 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckListRunForCoachController.java @@ -0,0 +1,114 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.Component; +import org.olat.core.gui.components.link.Link; +import org.olat.core.gui.components.link.LinkFactory; +import org.olat.core.gui.components.segmentedview.SegmentViewComponent; +import org.olat.core.gui.components.segmentedview.SegmentViewEvent; +import org.olat.core.gui.components.segmentedview.SegmentViewFactory; +import org.olat.core.gui.components.velocity.VelocityContainer; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.gui.control.controller.BasicController; +import org.olat.core.id.OLATResourceable; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.run.userview.UserCourseEnvironment; + +/** + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckListRunForCoachController extends BasicController { + + private final VelocityContainer mainVC; + + private final Link runLink, coachLink; + private final SegmentViewComponent segmentView; + + private CheckListRunController runController; + private CheckListAssessmentController assessmentController; + + private final OLATResourceable courseOres; + private final CheckListCourseNode courseNode; + private final UserCourseEnvironment userCourseEnv; + + public CheckListRunForCoachController(UserRequest ureq, WindowControl wControl, + UserCourseEnvironment userCourseEnv, OLATResourceable courseOres, CheckListCourseNode courseNode) { + super(ureq, wControl); + + this.courseOres = courseOres; + this.courseNode = courseNode; + this.userCourseEnv = userCourseEnv; + mainVC = createVelocityContainer("segments"); + + segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this); + runLink = LinkFactory.createLink("run.run", mainVC, this); + segmentView.addSegment(runLink, true); + coachLink = LinkFactory.createLink("run.coach", mainVC, this); + segmentView.addSegment(coachLink, false); + + doOpenRun(ureq); + + mainVC.put("segments", segmentView); + putInitialPanel(mainVC); + } + + @Override + protected void doDispose() { + // + } + + @Override + protected void event(UserRequest ureq, Component source, Event event) { + if(source == segmentView) { + if(event instanceof SegmentViewEvent) { + SegmentViewEvent sve = (SegmentViewEvent)event; + String segmentCName = sve.getComponentName(); + Component clickedLink = mainVC.getComponent(segmentCName); + if (clickedLink == runLink) { + doOpenRun(ureq); + } else if (clickedLink == coachLink) { + doOpenCoach(ureq); + } + } + } + } + + private void doOpenRun(UserRequest ureq) { + if(runController == null) { + runController = new CheckListRunController(ureq, getWindowControl(), userCourseEnv, courseOres, courseNode); + listenTo(runController); + } + mainVC.put("segmentCmp", runController.getInitialComponent()); + } + + private void doOpenCoach(UserRequest ureq) { + if(assessmentController == null) { + assessmentController = new CheckListAssessmentController(ureq, getWindowControl(), userCourseEnv, courseOres, courseNode); + listenTo(assessmentController); + } + mainVC.put("segmentCmp", assessmentController.getInitialComponent()); + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentDataModel.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentDataModel.java new file mode 100644 index 0000000000000000000000000000000000000000..7dc3722dc8faf8fbf56e8e7bedc1f0d84678d5f2 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxAssessmentDataModel.java @@ -0,0 +1,187 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import java.util.ArrayList; +import java.util.List; + +import org.olat.core.commons.persistence.SortKey; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.ExportableFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.ExportableFlexiTableDataModelDelegate; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FilterableFlexiTableModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableComponent; +import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableModelDelegate; +import org.olat.core.gui.media.MediaResource; +import org.olat.core.util.StringHelper; +import org.olat.course.nodes.cl.model.AssessmentDataView; + +/** + * + * Initial date: 07.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckboxAssessmentDataModel extends DefaultFlexiTableDataModel<AssessmentDataView> + implements FilterableFlexiTableModel, SortableFlexiTableDataModel<AssessmentDataView>, + ExportableFlexiTableDataModel { + + public static final int USER_PROPS_OFFSET = 500; + public static final int CHECKBOX_OFFSET = 5000; + + private List<AssessmentDataView> backupRows; + + public CheckboxAssessmentDataModel(List<AssessmentDataView> datas, FlexiTableColumnModel columnModel) { + super(datas, columnModel); + backupRows = datas; + } + + @Override + public DefaultFlexiTableDataModel<AssessmentDataView> createCopyWithEmptyList() { + return new CheckboxAssessmentDataModel(new ArrayList<AssessmentDataView>(), getTableColumnModel()); + } + + @Override + public void sort(SortKey orderBy) { + SortableFlexiTableModelDelegate<AssessmentDataView> sorter + = new SortableFlexiTableModelDelegate<>(orderBy, this, null); + List<AssessmentDataView> views = sorter.sort(); + super.setObjects(views); + } + + @Override + public MediaResource export(FlexiTableComponent ftC) { + List<AssessmentDataView> currentRows = getObjects(); + setObjects(backupRows); + + FlexiTableColumnModel columnModel = getTableColumnModel(); + int numOfColumns = columnModel.getColumnCount(); + List<FlexiColumnModel> columns = new ArrayList<>(numOfColumns); + for(int i=0; i<numOfColumns; i++) { + FlexiColumnModel column = columnModel.getColumnModel(i); + String headerKey = column.getHeaderKey(); + if(!"edit.checkbox".equals(headerKey)) { + columns.add(column); + } + } + ExportableFlexiTableDataModelDelegate delegate = new ExportableFlexiTableDataModelDelegate(); + MediaResource resource = delegate.export(ftC, columns, ftC.getTranslator()); + //replace the current perhaps filtered rows + super.setObjects(currentRows); + return resource; + } + + /** + * The filter apply to the groups + * @param key + */ + @Override + public void filter(String filter) { + setObjects(backupRows); + + Long groupKey = extractGroupKey(filter); + if(groupKey != null) { + List<AssessmentDataView> filteredViews = new ArrayList<>(); + int numOfRows = getRowCount(); + for(int i=0; i<numOfRows; i++) { + AssessmentDataView view = getObject(i); + if(accept(view, groupKey)) { + filteredViews.add(view); + } + } + super.setObjects(filteredViews); + } + } + + private Long extractGroupKey(String filter) { + Long key = null; + if(StringHelper.isLong(filter)) { + try { + key = Long.parseLong(filter); + } catch (NumberFormatException e) { + // + } + } + return key; + } + + private boolean accept(AssessmentDataView view, Long groupKey) { + boolean accept = false; + Long[] groupKeys = view.getGroupKeys(); + if(groupKeys != null) { + for(Long key:groupKeys) { + if(groupKey.equals(key)) { + accept = true; + } + } + } + return accept; + } + + @Override + public void setObjects(List<AssessmentDataView> objects) { + backupRows = objects; + super.setObjects(objects); + } + + @Override + public Object getValueAt(int row, int col) { + AssessmentDataView box = getObject(row); + return getValueAt(box, col); + } + + @Override + public Object getValueAt(AssessmentDataView row, int col) { + if(col == Cols.username.ordinal()) { + return row.getIdentityName(); + } else if(col == Cols.totalPoints.ordinal()) { + return row.getTotalPoints(); + } else if(col >= USER_PROPS_OFFSET && col < CHECKBOX_OFFSET) { + int propIndex = col - USER_PROPS_OFFSET; + return row.getIdentityProp(propIndex); + } else if(col >= CHECKBOX_OFFSET) { + int propIndex = col - CHECKBOX_OFFSET; + Boolean[] checked = row.getChecked(); + if(checked != null && propIndex >= 0 && propIndex < checked.length) { + return checked[propIndex]; + } + return null; + } + return row; + } + + public enum Cols { + username("username"), + totalPoints("points"); + + private final String i18nKey; + + private Cols(String i18nKey) { + this.i18nKey = i18nKey; + } + + public String i18nKey() { + return i18nKey; + } + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxConfigDataModel.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxConfigDataModel.java new file mode 100644 index 0000000000000000000000000000000000000000..5f7f7e7e943b940a6b508b6835e6706e20102683 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxConfigDataModel.java @@ -0,0 +1,89 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import java.util.ArrayList; +import java.util.List; + +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; +import org.olat.core.gui.translator.Translator; +import org.olat.course.nodes.cl.model.Checkbox; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckboxConfigDataModel extends DefaultFlexiTableDataModel<Checkbox> { + + private final Translator translator; + + public CheckboxConfigDataModel(List<Checkbox> checkbox, Translator translator, FlexiTableColumnModel columnModel) { + super(checkbox, columnModel); + this.translator = translator; + } + + @Override + public DefaultFlexiTableDataModel<Checkbox> createCopyWithEmptyList() { + return new CheckboxConfigDataModel(new ArrayList<Checkbox>(), translator, getTableColumnModel()); + } + + @Override + public Object getValueAt(int row, int col) { + Checkbox box = getObject(row); + switch(Cols.values()[col]) { + case title: return box.getTitle(); + case points: return box.getPoints(); + case release: { + CheckboxReleaseEnum release = box.getRelease(); + if(release == null) { + return ""; + } + return translator.translate("release." + release.name()); + } + case file: { + return ""; + } + } + return box; + } + + public enum Cols { + title("checkbox.title"), + points("points"), + release("release"), + file("file"); + + private final String i18nKey; + + private Cols(String i18nKey) { + this.i18nKey = i18nKey; + } + + public String i18nKey() { + return i18nKey; + } + } + + + +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java new file mode 100644 index 0000000000000000000000000000000000000000..7c2072a84a5d812d1ac500240eff3726000e6a24 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxEditController.java @@ -0,0 +1,229 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; + +import org.olat.core.CoreSpringFactory; +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItem; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.elements.FileElement; +import org.olat.core.gui.components.form.flexible.elements.FormLink; +import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; +import org.olat.core.gui.components.form.flexible.elements.RichTextElement; +import org.olat.core.gui.components.form.flexible.elements.SingleSelection; +import org.olat.core.gui.components.form.flexible.elements.TextElement; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.components.link.Link; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.Event; +import org.olat.core.gui.control.WindowControl; +import org.olat.core.id.OLATResourceable; +import org.olat.core.logging.activity.CourseLoggingAction; +import org.olat.core.logging.activity.ILoggingAction; +import org.olat.core.logging.activity.StringResourceableType; +import org.olat.core.logging.activity.ThreadLocalUserActivityLogger; +import org.olat.core.util.vfs.VFSContainer; +import org.olat.core.util.vfs.VFSLeaf; +import org.olat.core.util.vfs.VFSManager; +import org.olat.course.CourseFactory; +import org.olat.course.ICourse; +import org.olat.course.nodes.CheckListCourseNode; +import org.olat.course.nodes.cl.CheckboxManager; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.run.environment.CourseEnvironment; +import org.olat.util.logging.activity.LoggingResourceable; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckboxEditController extends FormBasicController { + + private FormLink deleteLink; + private TextElement titleEl, pointsEl; + private SingleSelection releaseEl, labelEl; + private MultipleSelectionElement awardPointEl; + private RichTextElement descriptionEl; + private FileElement fileEl; + + private final Checkbox checkbox; + private final boolean newCheckbox; + private final OLATResourceable courseOres; + private final CheckListCourseNode courseNode; + + private final CheckboxManager checkboxManager; + + public CheckboxEditController(UserRequest ureq, WindowControl wControl, + OLATResourceable courseOres, CheckListCourseNode courseNode, + Checkbox checkbox, boolean newCheckbox) { + super(ureq, wControl); + this.checkbox = checkbox; + this.courseOres = courseOres; + this.courseNode = courseNode; + this.newCheckbox = newCheckbox; + checkboxManager = CoreSpringFactory.getImpl(CheckboxManager.class); + initForm(ureq); + } + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + String title = checkbox.getTitle(); + titleEl = uifactory.addTextElement("checkbox.title", "checkbox.title", 255, title, formLayout); + + String[] releaseKeys = new String[] { + CheckboxReleaseEnum.userAndCoach.name(), CheckboxReleaseEnum.coachOnly.name() + }; + String[] releaseValues = new String[] { + translate("release.userAndCoach"), translate("release.coachOnly") + }; + releaseEl = uifactory.addDropdownSingleselect("release", formLayout, releaseKeys, releaseValues, null); + if(checkbox.getRelease() != null) { + releaseEl.select(checkbox.getRelease().name(), true); + } + + String[] labelKeys = new String[CheckboxLabelEnum.values().length]; + String[] labelValues = new String[CheckboxLabelEnum.values().length]; + for(int i=CheckboxLabelEnum.values().length; i-->0; ){ + labelKeys[i] = CheckboxLabelEnum.values()[i].name(); + labelValues[i] = translate(CheckboxLabelEnum.values()[i].i18nKey()); + } + labelEl = uifactory.addDropdownSingleselect("label", formLayout, labelKeys, labelValues, null); + if(checkbox.getLabel() != null) { + labelEl.select(checkbox.getLabel().name(), true); + } + + String[] onKeys = new String[] { "on" }; + String[] onValues = new String[] { translate("award.point.on") }; + awardPointEl = uifactory.addCheckboxesHorizontal("points", formLayout, onKeys, onValues, null); + if(checkbox.getPoints() != null) { + awardPointEl.select(onKeys[0], true); + } + String points = checkbox.getPoints() == null ? null : Float.toString(checkbox.getPoints().floatValue()); + pointsEl = uifactory.addTextElement("numofpoints", null, 10, points, formLayout); + pointsEl.setDisplaySize(5); + + String desc = checkbox.getDescription(); + descriptionEl = uifactory.addRichTextElementForStringDataMinimalistic("description", "description", desc, 5, -1, formLayout, + ureq.getUserSession(), getWindowControl()); + + fileEl = uifactory.addFileElement("file", formLayout); + + FormLayoutContainer buttonsCont = FormLayoutContainer.createButtonLayout("buttons", getTranslator()); + formLayout.add(buttonsCont); + uifactory.addFormSubmitButton("save", buttonsCont); + deleteLink = uifactory.addFormLink("delete", buttonsCont, Link.BUTTON); + uifactory.addFormCancelButton("cancel", buttonsCont, ureq, getWindowControl()); + } + + @Override + protected void doDispose() { + // + } + + public Checkbox getCheckbox() { + return checkbox; + } + + @Override + protected boolean validateFormLogic(UserRequest ureq) { + boolean allOk = true; + + pointsEl.clearError(); + if(awardPointEl.isAtLeastSelected(1)) { + try { + Float.parseFloat(pointsEl.getValue()); + } catch (NumberFormatException e) { + pointsEl.setErrorKey("form.error.wrongFloat", null); + allOk &= false; + } + } + + return allOk & super.validateFormLogic(ureq); + } + + @Override + protected void formOK(UserRequest ureq) { + checkbox.setTitle(titleEl.getValue()); + String releaseKey = releaseEl.getSelectedKey(); + checkbox.setRelease(CheckboxReleaseEnum.valueOf(releaseKey)); + String labelKey = labelEl.getSelectedKey(); + checkbox.setLabel(CheckboxLabelEnum.valueOf(labelKey)); + if(awardPointEl.isAtLeastSelected(1)) { + Float points = null; + try { + points = new Float(Float.parseFloat(pointsEl.getValue())); + } catch (NumberFormatException e) { + //check in validation + } + checkbox.setPoints(points); + } else { + checkbox.setPoints(null); + } + checkbox.setDescription(descriptionEl.getValue()); + + File uploadedFile = fileEl.getUploadFile(); + if(uploadedFile != null) { + String filename = fileEl.getUploadFileName(); + checkbox.setFilename(filename); + + try { + ICourse course = CourseFactory.loadCourse(courseOres); + CourseEnvironment courseEnv = course.getCourseEnvironment(); + VFSContainer container = checkboxManager.getFileContainer(courseEnv, courseNode, checkbox); + VFSLeaf leaf = container.createChildLeaf(filename); + InputStream inStream = new FileInputStream(uploadedFile); + VFSManager.copyContent(inStream, leaf); + } catch (FileNotFoundException e) { + logError("", e); + } + } + + ILoggingAction action = newCheckbox ? CourseLoggingAction.CHECKLIST_CHECKBOX_CREATED : CourseLoggingAction.CHECKLIST_CHECKBOX_UPDATED; + ThreadLocalUserActivityLogger.log(action, getClass(), LoggingResourceable.wrap(courseNode), + LoggingResourceable.wrapNonOlatResource(StringResourceableType.checkbox, checkbox.getCheckboxId(), checkbox.getTitle())); + + fireEvent(ureq, Event.CHANGED_EVENT); + } + + @Override + protected void formCancelled(UserRequest ureq) { + fireEvent(ureq, Event.CANCELLED_EVENT); + } + + @Override + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + if(deleteLink == source) { + fireEvent(ureq, new Event("delete")); + + ThreadLocalUserActivityLogger.log(CourseLoggingAction.CHECKLIST_CHECKBOX_DELETED, getClass(), LoggingResourceable.wrap(courseNode), + LoggingResourceable.wrapNonOlatResource(StringResourceableType.checkbox, checkbox.getCheckboxId(), checkbox.getTitle())); + } + super.formInnerEvent(ureq, source, event); + } +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxLabelEnum.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxLabelEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..b8de5cca031c1df5ecc5dc71a5203e510503215c --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxLabelEnum.java @@ -0,0 +1,46 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public enum CheckboxLabelEnum { + + done("label.done"), + inWork("label.inWork"), + presented("label.presented"), + controlled("label.controlled"), + present("label.present"); + + private final String i18nKey; + + private CheckboxLabelEnum(String i18nKey) { + this.i18nKey = i18nKey; + } + + public String i18nKey() { + return i18nKey; + } + +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/CheckboxReleaseEnum.java b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxReleaseEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..9e35df5764837d3e0f9c25c74e1f96b6d3eda7dc --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/CheckboxReleaseEnum.java @@ -0,0 +1,33 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.ui; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public enum CheckboxReleaseEnum { + + userAndCoach, + coachOnly + +} diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html new file mode 100644 index 0000000000000000000000000000000000000000..4f01613af37c2279fd1f090630ed23f9640b9f67 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-checkbox.html @@ -0,0 +1 @@ +<p>$r.translate("chelp.chexkbox.1")</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-coach-assessment.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-coach-assessment.html new file mode 100644 index 0000000000000000000000000000000000000000..41a2782f7dbe631cd838ebbc88ae8c7089acdf5a --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-coach-assessment.html @@ -0,0 +1 @@ +<p>$r.translate("chelp.coach.1")</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-config.html b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-config.html new file mode 100644 index 0000000000000000000000000000000000000000..f2a7cbdfbbcbc7c390b26a3de3c1cd350a5375cc --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_chelp/cl-config.html @@ -0,0 +1 @@ +<p>$r.translate("chelp.config.1")</p> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_content/assessment_list.html b/src/main/java/org/olat/course/nodes/cl/ui/_content/assessment_list.html new file mode 100644 index 0000000000000000000000000000000000000000..55a8a5fcd35c389f81665f99fd307b80e2b6e502 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_content/assessment_list.html @@ -0,0 +1,9 @@ +<div class="b_form b_clearfix"> + $r.contextHelpWithWrapper("org.olat.course.nodes.cl.ui","cl-coach-assessment.html","help.hover.choach") + <div class="b_form_desc">$r.translate("coach.desc")</div> + #if($dueDate) + <p>$r.translate("coach.due.date.desc")</p> + <p>$r.translate("run.due.date",$r.formatDateAndTime($dueDate))</p> + #end + $r.render("checkbox-list") +</div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_content/checkboxlist_assessment.html b/src/main/java/org/olat/course/nodes/cl/ui/_content/checkboxlist_assessment.html new file mode 100644 index 0000000000000000000000000000000000000000..986c3e6d042ddb851cc9de4f984eff14b200a5eb --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_content/checkboxlist_assessment.html @@ -0,0 +1,9 @@ +#foreach($checkbox in $checkboxList) + <div class="b_clearfix"> + $r.render($checkbox.checkboxElName) + <b>$checkbox.title #if($checkbox.pointsAvailable) ($checkbox.points) #end</b> + #if($checkbox.description) + <p>$checkbox.description</p> + #end + </div> +#end \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_content/checkboxlist_edit.html b/src/main/java/org/olat/course/nodes/cl/ui/_content/checkboxlist_edit.html new file mode 100644 index 0000000000000000000000000000000000000000..2b82a8508ca6ee65a64d079b7c6490dae128d8d2 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_content/checkboxlist_edit.html @@ -0,0 +1,4 @@ +<div class="b_clearfix"> + <div class="b_float_right">$r.render("add.checkbox")</div> +</div> +$r.render("checkbox-list") \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_content/edit.html b/src/main/java/org/olat/course/nodes/cl/ui/_content/edit.html new file mode 100644 index 0000000000000000000000000000000000000000..157bcf7ff5f96d5024e0584365c834604424bb89 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_content/edit.html @@ -0,0 +1 @@ +Hello edit \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_content/run.html b/src/main/java/org/olat/course/nodes/cl/ui/_content/run.html new file mode 100644 index 0000000000000000000000000000000000000000..26513256c90bc6cd9ca90bd6b76aeb504f170673 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_content/run.html @@ -0,0 +1,26 @@ +<h4>$r.translate("checklist")</h4> +#if($dueDate) + <p>$r.translate("run.due.date.desc")</p> + <p>$r.translate("run.due.date",$r.formatDateAndTime($dueDate))</p> +#end + +<div class="b_clearfix"> + <div class="b_c25l"><h4>$r.translate("run.mark")</h4></div> + <div class="b_c75r"><h4>$r.translate("run.info")</h4></div> +</div> +#foreach($checkbox in $checkboxList) + <div class="b_clearfix"> + <div class="b_c25l"> + $r.render($checkbox.checkboxElName) + </div> + <div class="b_c75r"> + <b>$checkbox.title #if($checkbox.pointsAvailable) ($checkbox.points) #end</b><br/> + #if($checkbox.description) + <p>$checkbox.description</p> + #end + #if($checkbox.checkbox.filename) + <p>Download: $r.render($checkbox.downloadName)</p> + #end + </div> + </div> +#end \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_content/segments.html b/src/main/java/org/olat/course/nodes/cl/ui/_content/segments.html new file mode 100644 index 0000000000000000000000000000000000000000..3d776f938257908fbbff3a476ab4ca371c009513 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_content/segments.html @@ -0,0 +1,7 @@ +<div class="b_clearfix"> + $r.render("segments") <br/> + + #if($r.available("segmentCmp")) + $r.render("segmentCmp") + #end +</div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_content/user_assessment.html b/src/main/java/org/olat/course/nodes/cl/ui/_content/user_assessment.html new file mode 100644 index 0000000000000000000000000000000000000000..b2f65cdd63871a5ed00393bb825727eb1d34b982 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_content/user_assessment.html @@ -0,0 +1,10 @@ +<div class="b_clearfix"> + $r.render("identityInfos") +</div> +<div class="b_clearfix"> + $r.render("segments") <br/> + + #if($r.available("segmentCmp")) + $r.render("segmentCmp") + #end +</div> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties new file mode 100644 index 0000000000000000000000000000000000000000..d0b1090d22b54fe7b2781171fc8dc7d1face3e57 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_de.properties @@ -0,0 +1,66 @@ +#Mon Mar 02 09:54:04 CET 2009 +chelp.config.1=Hilfe Konfiguration 1 +chelp.coach.1=Hilfe Tutoren 1 +chelp.cl-config.title=Konfiguration einer Checkliste Kursbaustein +chelp.cl-checkbox.title=Konfiguration einer Checkbox +chelp.cl-coach-assessment.title=Bewertung einer Checklist +chelp.chexkbox.1=Hilfe Checkboxen +checklist.update.assessment=Aktualisierung der Bewertungsinformationen aller Benutzer des Kurses +checklist.update.efficiencystatements=Aktualisierung der leistungsnachweise aller Benutzer +add.checkbox=Checkbox hinzufügen +edit.checkbox=Checkbox bearbeiten +edit.checkbox=Bearbeiten +condition.accessibility.title=Zugang +pane.tab.accessibility=Zugang +pane.tab.clconfig=Konfiguration +pane.tab.checkbox=Checkboxen +config.title=Konfiguration der Checkliste +config.description=Wählen Sie ob die Checkliste bis zu einem bestimmten Datum ausgefüllt sein muss und ob der Benutzer dafür Punkte oder eine Bestanden Information erhalten soll. +config.due.date=Abgabedatum +config.due.date.on=Checkliste bei Abgabedatum für Benutzer sperren +config.passed=Bestanden / Nicht bestanden ausgeben +config.cutvalue=Punkteschwelle für Bestanden +config.points=Punkte vergeben +config.points.on=Summe Checkboxen Einzelpunkte +config.points.min=Minimal erreichbare Punkte +config.points.max=Maximal erreichbare Punkte +config.output=Art der Ausgabe +config.output.cutvalue=Automatisch durch Punkteschwelle +config.output.sum=Automatisch bei Anzahl Checkboxen +config.output.coach=Manuell durch Betreuer +config.comment=Individueller Kommentar +config.tip.user=Hinweis für alle Benutzer +config.tip.coach=Hinweis für Betreuer +config.checkbox.title=$\:pane.tab.checkbox +config.checkbox.description=Wählen Sie "$\:add.checkbox" um eine neue Checkbox zu erzeugen oder "$\:edit.checkbox" um eine bestehende Checkbox zu verändern. +checkbox.title=Title +help.hover.config=Hilfe zur Konfiguration einer Checkliste Kursbaustein +help.hover.checkbox=Hilfe zur Erstellung einer Checkbox Liste +help.hover.choach=Hilfe zur Bewertung einer Checkbox Liste +table.header.title=$\:checkbox.title +filter.all=Alle anzeigen +release=Freigabe +release.userAndCoach=Benutzer und Betreuer +release.coachOnly=Nur Betreuer +label=Beschriftung +label.done=Erledigt +label.inWork=Bearbeitet +label.presented=Vorgeführt +label.controlled=Kontrolliert +label.present=Anwesend +points=Punkte +award.point.on=Punkte vergeben bei Auswahl +description=Beschreibung +participants=Mitglieder +file=Datei +run.run=Persönliche Checkliste +run.coach=Checklisten Verwaltung +run.mark=Markierung +run.info=Information +run.due.date=Abgabedatum: {0} +run.due.date.desc=Diese Checkliste ist mit einem Abgabedatum versehen. Nach dem Abgabedatum kann die Checkliste nicht mehr von Ihnen verändert werden. +coach.desc=In der unterstehenden Liste finden Sie die Teilnehmer dieses Kurses die sie betreuen. Wählen Sie "$\:edit.checkbox" um die Kreuze oder Punkte eines Teilnehmers zu verändern. +coach.due.date.desc=Diese Checkliste ist mit einem Abgabedatum versehen. Als Betreuer sollten Sie erst nach Ablauf des Abgabedatums Änderungen vornehmen. +checklist=Checkliste +checklist.point.example=Punkte (min: {0} / max: {1}) +assessment=Bewertung \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_en.properties new file mode 100644 index 0000000000000000000000000000000000000000..77d241562694b910ea65e1d478eaac2c3b6b8549 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/cl/ui/_i18n/LocalStrings_en.properties @@ -0,0 +1,3 @@ +#Fri Jan 21 15:27:07 CET 2011 +condition.accessibility.title=Access +pane.tab.accessibility=Access diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java index 7d28f705ccd9c42809484df8b7bd1e6bb596990e..f107b811bc40983e54685f2fed383bdc07438829 100644 --- a/src/main/java/org/olat/course/run/RunMainController.java +++ b/src/main/java/org/olat/course/run/RunMainController.java @@ -740,6 +740,15 @@ public class RunMainController extends MainLayoutBasicController implements Gene return true; } + @Override + public boolean mayArchiveScorm() { + return true; + } + + @Override + public boolean mayArchiveChecklist() { + return true; + } }); listenTo(currentToolCtr); all.pushController(translate("command.openarchiver"), currentToolCtr); @@ -1205,7 +1214,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene List<BusinessGroup> coachedGroups = cgm.getOwnedBusinessGroups(identity); List<BusinessGroup> participatedGroups = cgm.getParticipatingBusinessGroups(identity); List<BusinessGroup> waitingLists = cgm.getWaitingListGroups(identity); - uce.setGroupMemberships(coachedGroups, participatedGroups, waitingLists); + uce.setGroupMemberships(courseRepositoryEntry, coachedGroups, participatedGroups, waitingLists); } /** diff --git a/src/main/java/org/olat/course/run/userview/UserCourseEnvironmentImpl.java b/src/main/java/org/olat/course/run/userview/UserCourseEnvironmentImpl.java index ac34048887b67d5dfbea18e723c80fec7641fffc..914d7b870b402d2c2f6549333f8602efe18855d0 100644 --- a/src/main/java/org/olat/course/run/userview/UserCourseEnvironmentImpl.java +++ b/src/main/java/org/olat/course/run/userview/UserCourseEnvironmentImpl.java @@ -51,7 +51,7 @@ public class UserCourseEnvironmentImpl implements UserCourseEnvironment { private ConditionInterpreter conditionInterpreter; private ScoreAccounting scoreAccounting; private RepositoryEntryLifecycle lifecycle; - + private RepositoryEntry courseRepoEntry; private List<BusinessGroup> coachedGroups; private List<BusinessGroup> participatingGroups; private List<BusinessGroup> waitingLists; @@ -157,9 +157,7 @@ public class UserCourseEnvironmentImpl implements UserCourseEnvironment { @Override public RepositoryEntryLifecycle getLifecycle() { if(lifecycle == null) { - CourseGroupManager cgm = courseEnvironment.getCourseGroupManager(); - OLATResource courseResource = cgm.getCourseResource(); - RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(courseResource, false); + RepositoryEntry re = getCourseRepositoryEntry(); if(re != null) { lifecycle = re.getLifecycle(); } @@ -167,6 +165,15 @@ public class UserCourseEnvironmentImpl implements UserCourseEnvironment { return lifecycle; } + public RepositoryEntry getCourseRepositoryEntry() { + if(courseRepoEntry == null) { + CourseGroupManager cgm = courseEnvironment.getCourseGroupManager(); + OLATResource courseResource = cgm.getCourseResource(); + courseRepoEntry = RepositoryManager.getInstance().lookupRepositoryEntry(courseResource, false); + } + return courseRepoEntry; + } + public List<BusinessGroup> getCoachedGroups() { return coachedGroups; } @@ -179,7 +186,8 @@ public class UserCourseEnvironmentImpl implements UserCourseEnvironment { return waitingLists; } - public void setGroupMemberships(List<BusinessGroup> coachedGroups, List<BusinessGroup> participatingGroups, List<BusinessGroup> waitingLists) { + public void setGroupMemberships(RepositoryEntry repoEntry, List<BusinessGroup> coachedGroups, + List<BusinessGroup> participatingGroups, List<BusinessGroup> waitingLists) { this.coachedGroups = coachedGroups; this.participatingGroups = participatingGroups; this.waitingLists = waitingLists; diff --git a/src/main/java/org/olat/modules/ModuleConfiguration.java b/src/main/java/org/olat/modules/ModuleConfiguration.java index 9becbcf28b178b2409dc79c02a8155dbf2dbfa18..12a8c14263c503030eab9c842e1f31574e5e73e7 100644 --- a/src/main/java/org/olat/modules/ModuleConfiguration.java +++ b/src/main/java/org/olat/modules/ModuleConfiguration.java @@ -61,7 +61,7 @@ public class ModuleConfiguration implements Serializable { * @param value */ public void set(String key, Object value) { - if (!(value instanceof Serializable) && value != null) throw new RuntimeException("ModuleConfiguration only accepts cloneable values."); + if (!(value instanceof Serializable) && value != null) throw new RuntimeException("ModuleConfiguration only accepts serializable values."); config.put(key, value); } diff --git a/src/main/java/org/olat/user/propertyhandlers/_spring/userPropertiesContext.xml b/src/main/java/org/olat/user/propertyhandlers/_spring/userPropertiesContext.xml index 5ad1098498900494f7fbd4992b0efcfca47a1a3d..c090036811b6d0b039fccdf9950db6aa14a24646 100644 --- a/src/main/java/org/olat/user/propertyhandlers/_spring/userPropertiesContext.xml +++ b/src/main/java/org/olat/user/propertyhandlers/_spring/userPropertiesContext.xml @@ -251,6 +251,29 @@ </bean> </entry> + <entry key="org.olat.course.nodes.cl.ui.CheckListAssessmentController"> + <bean class="org.olat.user.propertyhandlers.UserPropertyUsageContext"> + <property name="propertyHandlers"> + <list> + <ref bean="userPropertyFirstName" /> + <ref bean="userPropertyLastName" /> + <ref bean="userPropertyInstitutionalUserIdentifier" /> + </list> + </property> + <property name="mandatoryProperties"> + <set> + <ref bean="userPropertyFirstName" /> + <ref bean="userPropertyLastName" /> + </set> + </property> + <property name="adminViewOnlyProperties"> + <set> + <ref bean="userPropertyInstitutionalUserIdentifier" /> + </set> + </property> + </bean> + </entry> + <entry key="org.olat.admin.user.UsermanagerUserSearchForm"> <bean class="org.olat.user.propertyhandlers.UserPropertyUsageContext"> <property name="propertyHandlers"> diff --git a/src/main/resources/database/mysql/alter_9_3_0_to_9_4_0.sql b/src/main/resources/database/mysql/alter_9_3_0_to_9_4_0.sql index b2076ac8f6c2d24daa788d9fe2d266d1161fa601..4649f710d311452767694ceb2ed1e5ee92e3f778 100644 --- a/src/main/resources/database/mysql/alter_9_3_0_to_9_4_0.sql +++ b/src/main/resources/database/mysql/alter_9_3_0_to_9_4_0.sql @@ -58,3 +58,34 @@ create or replace view o_gp_contactkey_owner_v as ( where bgroup.ownersintern=1 ); +-- checklist +create table o_cl_checkbox ( + id bigint not null, + creationdate datetime not null, + lastmodified datetime not null, + c_checkboxid varchar(50) not null, + c_resname varchar(50) not null, + c_resid bigint not null, + c_ressubpath varchar(255) not null, + primary key (id) +); +alter table o_cl_checkbox ENGINE = InnoDB; + +create table o_cl_check ( + id bigint not null, + creationdate datetime not null, + lastmodified datetime not null, + c_score float(65,30), + c_checked bit(0), + fk_identity_id bigint not null, + fk_checkbox_id bigint not null, + primary key (id) +); +alter table o_cl_check ENGINE = InnoDB; + +alter table o_cl_check add constraint check_identity_ctx foreign key (fk_identity_id) references o_bs_identity (id); +alter table o_cl_check add constraint check_box_ctx foreign key (fk_checkbox_id) references o_cl_checkbox (id); +create index idx_checkbox_uuid_idx on o_cl_checkbox (c_checkboxid); + + + diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql index 66ddae3947d23baf42a4677ebb570b26dcf99dea..82715e87a80895a0d9e4b08ff7c162b8a5310c4d 100644 --- a/src/main/resources/database/mysql/setupDatabase.sql +++ b/src/main/resources/database/mysql/setupDatabase.sql @@ -1244,6 +1244,28 @@ create table o_lti_outcome ( primary key (id) ); +create table o_cl_checkbox ( + id bigint not null, + creationdate datetime not null, + lastmodified datetime not null, + c_checkboxid varchar(50) not null, + c_resname varchar(50) not null, + c_resid bigint not null, + c_ressubpath varchar(255) not null, + primary key (id) +); + +create table o_cl_check ( + id bigint not null, + creationdate datetime not null, + lastmodified datetime not null, + c_score float(65,30), + c_checked bit(0), + fk_identity_id bigint not null, + fk_checkbox_id bigint not null, + primary key (id) +); + create table o_ex_task ( id bigint not null, creationdate datetime not null, @@ -1948,6 +1970,8 @@ alter table o_im_roster_entry ENGINE = InnoDB; alter table o_im_preferences ENGINE = InnoDB; alter table o_ex_task ENGINE = InnoDB; alter table o_ex_task_modifier ENGINE = InnoDB; +alter table o_cl_checkbox ENGINE = InnoDB; +alter table o_cl_check ENGINE = InnoDB; -- rating @@ -2132,6 +2156,11 @@ alter table o_ex_task add constraint idx_ex_task_rsrc_id foreign key (fk_resourc alter table o_ex_task_modifier add constraint idx_ex_task_mod_ident_id foreign key (fk_identity_id) references o_bs_identity(id); alter table o_ex_task_modifier add constraint idx_ex_task_mod_task_id foreign key (fk_task_id) references o_ex_task(id); +-- checklist +alter table o_cl_check add constraint check_identity_ctx foreign key (fk_identity_id) references o_bs_identity (id); +alter table o_cl_check add constraint check_box_ctx foreign key (fk_checkbox_id) references o_cl_checkbox (id); +create index idx_checkbox_uuid_idx on o_cl_checkbox (c_checkboxid); + -- lifecycle create index lc_pref_idx on o_lifecycle (persistentref); create index lc_type_idx on o_lifecycle (persistenttypename); diff --git a/src/main/resources/database/oracle/alter_9_3_0_to_9_4_0.sql b/src/main/resources/database/oracle/alter_9_3_0_to_9_4_0.sql index a2629e9bb78b37cacab688283301e1baf29d9126..c3e35da10b343df08680b6771eb89276ec027c4b 100644 --- a/src/main/resources/database/oracle/alter_9_3_0_to_9_4_0.sql +++ b/src/main/resources/database/oracle/alter_9_3_0_to_9_4_0.sql @@ -57,3 +57,33 @@ create view o_gp_contactkey_owner_v as ( inner join o_bs_membership bg_owner_member on (bg_owner_member.secgroup_id = bgroup.fk_ownergroup) where bgroup.ownersintern=1 ); + +-- checklist +create table o_cl_checkbox ( + id number(20) not null, + creationdate date not null, + lastmodified date not null, + c_checkboxid varchar2(50 char) not null, + c_resname varchar2(50 char) not null, + c_resid number(20) not null, + c_ressubpath varchar2(255 char) not null, + primary key (id) +); + +create table o_cl_check ( + id number(20) not null, + creationdate date not null, + lastmodified date not null, + c_score float, + c_checked number default 0, + fk_identity_id number(20) not null, + fk_checkbox_id number(20) not null, + primary key (id) +); + +alter table o_cl_check add constraint check_identity_ctx foreign key (fk_identity_id) references o_bs_identity (id); +create index check_to_identity_idx on o_cl_check (fk_identity_id); +alter table o_cl_check add constraint check_box_ctx foreign key (fk_checkbox_id) references o_cl_checkbox (id); +create index check_to_checkbox_idx on o_cl_check (fk_checkbox_id); +create index idx_checkbox_uuid_idx on o_cl_checkbox (c_checkboxid); + diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql index b0b205342ba2abc3f4d33f1f07a772266873611f..932502ba3696b286017b0fc06770e6ed69b7c985 100644 --- a/src/main/resources/database/oracle/setupDatabase.sql +++ b/src/main/resources/database/oracle/setupDatabase.sql @@ -1287,6 +1287,28 @@ create table o_lti_outcome ( primary key (id) ); +create table o_cl_checkbox ( + id number(20) not null, + creationdate date not null, + lastmodified date not null, + c_checkboxid varchar2(50 char) not null, + c_resname varchar2(50 char) not null, + c_resid number(20) not null, + c_ressubpath varchar2(255 char) not null, + primary key (id) +); + +create table o_cl_check ( + id number(20) not null, + creationdate date not null, + lastmodified date not null, + c_score float, + c_checked number default 0, + fk_identity_id number(20) not null, + fk_checkbox_id number(20) not null, + primary key (id) +); + create table o_ex_task ( id number(20) not null, creationdate date not null, @@ -2177,6 +2199,13 @@ create index idx_ex_task_mod_ident_idx on o_ex_task_modifier (fk_identity_id); alter table o_ex_task_modifier add constraint idx_ex_task_mod_task_id foreign key (fk_task_id) references o_ex_task(id); create index idx_ex_task_mod_task_idx on o_ex_task_modifier (fk_task_id); +-- checklist +alter table o_cl_check add constraint check_identity_ctx foreign key (fk_identity_id) references o_bs_identity (id); +create index check_to_identity_idx on o_cl_check (fk_identity_id); +alter table o_cl_check add constraint check_box_ctx foreign key (fk_checkbox_id) references o_cl_checkbox (id); +create index check_to_checkbox_idx on o_cl_check (fk_checkbox_id); +create index idx_checkbox_uuid_idx on o_cl_checkbox (c_checkboxid); + -- lifecycle create index lc_pref_idx on o_lifecycle (persistentref); create index lc_type_idx on o_lifecycle (persistenttypename); diff --git a/src/main/resources/database/postgresql/alter_9_3_0_to_9_4_0.sql b/src/main/resources/database/postgresql/alter_9_3_0_to_9_4_0.sql index 7c091b7b6952ff0594bdfab2f381a8066fd0dd2d..c62216b0103f3898ff9dbff95603b4abdb033882 100644 --- a/src/main/resources/database/postgresql/alter_9_3_0_to_9_4_0.sql +++ b/src/main/resources/database/postgresql/alter_9_3_0_to_9_4_0.sql @@ -59,3 +59,32 @@ create view o_gp_contactkey_owner_v as ( inner join o_bs_membership as bg_owner_member on (bg_owner_member.secgroup_id = bgroup.fk_ownergroup) where bgroup.ownersintern=true ); + +-- checklist +create table o_cl_checkbox ( + id int8 not null, + creationdate timestamp not null, + lastmodified timestamp not null, + c_checkboxid varchar(50) not null, + c_resname varchar(50) not null, + c_resid int8 not null, + c_ressubpath varchar(255) not null, + primary key (id) +); + +create table o_cl_check ( + id int8 not null, + creationdate timestamp not null, + lastmodified timestamp not null, + c_score float(24), + c_checked boolean default false, + fk_identity_id int8 not null, + fk_checkbox_id int8 not null, + primary key (id) +); + +alter table o_cl_check add constraint check_identity_ctx foreign key (fk_identity_id) references o_bs_identity (id); +create index check_to_identity_idx on o_cl_check (fk_identity_id); +alter table o_cl_check add constraint check_box_ctx foreign key (fk_checkbox_id) references o_cl_checkbox (id); +create index check_to_checkbox_idx on o_cl_check (fk_checkbox_id); +create index idx_checkbox_uuid_idx on o_cl_checkbox (c_checkboxid); diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql index 5cc776d7e44fac6cd0a76cf750be3eb9d73eadfd..38203ea15e7947ef919efadab823c11710c2562e 100644 --- a/src/main/resources/database/postgresql/setupDatabase.sql +++ b/src/main/resources/database/postgresql/setupDatabase.sql @@ -1241,6 +1241,28 @@ create table o_lti_outcome ( primary key (id) ); +create table o_cl_checkbox ( + id int8 not null, + creationdate timestamp not null, + lastmodified timestamp not null, + c_checkboxid varchar(50) not null, + c_resname varchar(50) not null, + c_resid int8 not null, + c_ressubpath varchar(255) not null, + primary key (id) +); + +create table o_cl_check ( + id int8 not null, + creationdate timestamp not null, + lastmodified timestamp not null, + c_score float(24), + c_checked boolean default false, + fk_identity_id int8 not null, + fk_checkbox_id int8 not null, + primary key (id) +); + create table o_ex_task ( id int8 not null, creationdate timestamp not null, @@ -2106,6 +2128,13 @@ create index idx_ex_task_mod_ident_idx on o_ex_task_modifier (fk_identity_id); alter table o_ex_task_modifier add constraint idx_ex_task_mod_task_id foreign key (fk_task_id) references o_ex_task(id); create index idx_ex_task_mod_task_idx on o_ex_task_modifier (fk_task_id); +-- checklist +alter table o_cl_check add constraint check_identity_ctx foreign key (fk_identity_id) references o_bs_identity (id); +create index check_to_identity_idx on o_cl_check (fk_identity_id); +alter table o_cl_check add constraint check_box_ctx foreign key (fk_checkbox_id) references o_cl_checkbox (id); +create index check_to_checkbox_idx on o_cl_check (fk_checkbox_id); +create index idx_checkbox_uuid_idx on o_cl_checkbox (c_checkboxid); + -- lifecycle create index lc_pref_idx on o_lifecycle (persistentref); create index lc_type_idx on o_lifecycle (persistenttypename); diff --git a/src/main/webapp/static/themes/openolat/all/modules/_tables.scss b/src/main/webapp/static/themes/openolat/all/modules/_tables.scss index a97b481cca7857cf8031e751b4373605901a4ea0..54519a1fa509f5f08db95d17d9808521f801a79e 100644 --- a/src/main/webapp/static/themes/openolat/all/modules/_tables.scss +++ b/src/main/webapp/static/themes/openolat/all/modules/_tables.scss @@ -45,8 +45,23 @@ div.b_table_wrapper { width: 99.5%; margin-left: 1px; border:1px solid $basegray_ultra_light; - thead, thead a { - color: $tablecolor_header; + thead, thead a { + color: $tablecolor_header; + a.b_sorting { + padding: 0 20px 0 0; + text-decoration: none; + background:url("../openolat/images/arrow-resize-090.png") no-repeat center right; + } + a.b_sorting_asc { + padding: 0 20px 0 0; + text-decoration: none; + background:url("../openolat/images/arrow_up.png") no-repeat center right; + } + a.b_sorting_desc { + padding: 0 20px 0 0; + text-decoration: none; + background:url("../openolat/images/arrow_down.png") no-repeat center right; + } } tbody{ tr:hover td { background: $selectcolor_ultra_light; } @@ -143,6 +158,16 @@ div.b_table_wrapper { } } +div.b_table_wrapper.b_flexitable_wrapper div.b_table_filter { + margin:3px 0 3px 0; + label { + padding:3px 7px 3px 0; + } + div.b_form_selection_element { + float:right; + } +} + /* table paging */ diff --git a/src/main/webapp/static/themes/openolat/layout.css b/src/main/webapp/static/themes/openolat/layout.css index 48e228eeb7988acac8f3b1ad2416beb80a3b6446..787e5ddc6d04cda9716f9683f2cc7ccfc0cea887 100644 --- a/src/main/webapp/static/themes/openolat/layout.css +++ b/src/main/webapp/static/themes/openolat/layout.css @@ -22,4 +22,4 @@ * @author strentini, sergio.trentini@frentix.com, www.frentix.com * @date Nov. 2011 * ======================================================== -**/@import url(all/content.css);.b_with_small_icon_left,div.b_table_wrapper div.b_table_empty{padding:2px 0 2px 20px;min-height:16px;background-position:0 50%;background-repeat:no-repeat}option.b_with_small_icon_left{padding:0 0 0 20px;vertical-align:middle;min-height:11px;background-position:0 50%;background-repeat:no-repeat}.b_with_small_icon_right,#b_main_toolbar div.b_breadcumb_close .b_close{padding:1px 20px 1px 0px;min-height:16px;background-position:100% 50%;background-repeat:no-repeat}.b_with_small_icon_only span{display:none}.b_small_icon{float:left;display:inline;width:16px;height:16px;background-position:0 50%;background-repeat:no-repeat}td a span.b_small_table_icon,td a.b_small_table_icon{padding-left:20px;width:16px;height:16px;background-position:2px 50%;background-repeat:no-repeat}a.b_small_icon:hover{text-decoration:none}.b_info_icon{background-image:url("../openolat/images/comment.png")}.b_warn_icon,div.b_table_wrapper div.b_table_empty{background-image:url("../openolat/images/exclamation.png")}.b_error_icon{background-image:url("../openolat/images/cross-circle.png")}.b_new_icon{background-image:url("../openolat/images/new-text.png")}.b_institution_icon{background-image:url("../openolat/images/home.png")}.b_group_icon{background-image:url("../openolat/images/users.png")}.b_group_icon.b_managed_icon{background-image:url("../openolat/images/managed_users.png")}.b_qpool_icon{background-image:url("../openolat/images/qti/pool.png")}.b_user_icon{background-image:url("../openolat/images/user.png")}.b_move_left_icon{background-image:url("../openolat/images/arrow_left_big.png")}.b_move_right_icon{background-image:url("../openolat/images/arrow_right_big.png")}.b_move_down_icon{background-image:url("../openolat/images/arrow_down_big.png")}.b_move_up_icon{background-image:url("../openolat/images/arrow_up_big.png")}.b_delete_icon{background-image:url("../openolat/images/bin-metal-full.png")}.b_share_icon{background-image:url("../openolat/images/share.png")}.b_status_enabled_icon{background-image:url("../openolat/images/tick.png")}.b_status_disabled_icon{background-image:url("../openolat/images/cross.png")}.b_edit_icon{background-image:url("../openolat/images/docs/document--pencil.png")}.b_add_icon{background-image:url("../openolat/images/plus-circle.png")}.b_open_icon{background-image:url("../openolat/images/control/control.png")}.b_star_icon{background-image:url(../openolat/images/star.png)}.b_star_small_icon{background-image:url(../openolat/images/star-small.png)}.o_fulltext_search_button{background-image:url("../openolat/images/magnifier-zoom.png")}.o_help_icon{background-image:url("../openolat/images/help.png")}.o_rss_icon{background-image:url("../openolat/images/feed.png")}.o_login_guests{background-image:url("../openolat/images/user_silhouette.png")}.o_login_pwd{background-image:url("../openolat/images/user_excl.png")}.o_login_register{background-image:url("../openolat/images/user_register.png")}.o_news_icon{background-image:url("../openolat/images/information-white.png")}.o_course_icon{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}.o_chat_icon{background-image:url("../openolat/images/balloons-box.png")}.o_admin_icon{background-image:url("../openolat/images/wrench-screwdriver.png")}.o_calendar_icon{background-image:url("../openolat/images/calendar.png")}.o_locked_icon{background-image:url("../openolat/images/locked.png")}.b_backward_icon{background-image:url("../openolat/images/arrow_left.png")}.b_forward_icon{background-image:url("../openolat/images/arrow_right.png")}.b_flag_en{background-image:url("../openolat/images/flags/gb.png")}.b_flag_de{background-image:url("../openolat/images/flags/de.png")}.b_flag_fr{background-image:url("../openolat/images/flags/fr.png")}.b_flag_it{background-image:url("../openolat/images/flags/it.png")}.b_flag_es{background-image:url("../openolat/images/flags/es.png")}.b_flag_da{background-image:url("../openolat/images/flags/dk.png")}.b_flag_cs{background-image:url("../openolat/images/flags/cz.png")}.b_flag_el{background-image:url("../openolat/images/flags/gr.png")}.b_flag_ee{background-image:url("../openolat/images/flags/ee.png")}.b_flag_ru{background-image:url("../openolat/images/flags/ru.png")}.b_flag_pl{background-image:url("../openolat/images/flags/pl.png")}.b_flag_zh_CN{background-image:url("../openolat/images/flags/cn.png")}.b_flag_zh_TW{background-image:url("../openolat/images/flags/tw.png")}.b_flag_lt{background-image:url("../openolat/images/flags/lt.png")}.b_flag_fa{background-image:url("../openolat/images/flags/ir.png")}.b_flag_pt_PT{background-image:url("../openolat/images/flags/pt.png")}.b_flag_pt_BR{background-image:url("../openolat/images/flags/br.png")}.b_flag_tr{background-image:url("../openolat/images/flags/tr.png")}.b_flag_hu{background-image:url("../openolat/images/flags/hu.png")}.b_flag_sq{background-image:url("../openolat/images/flags/al.png")}.b_flag_in{background-image:url("../openolat/images/flags/id.png")}.b_flag_ar{background-image:url("../openolat/images/flags/eg.png")}.b_flag_rm{background-image:url("../openolat/images/flags/rm.png")}.b_flag_af{background-image:url("../openolat/images/flags/za.png")}.b_flag_vi{background-image:url("../openolat/images/flags/vn.png")}.b_flag_mn{background-image:url("../openolat/images/flags/mn.png")}.b_flag_iw{background-image:url("../openolat/images/flags/il.png")}.b_flag_ko{background-image:url("../openolat/images/flags/kr.png")}.b_flag_nl_NL{background-image:url("../openolat/images/flags/nl.png")}.b_flag_jp{background-image:url("../openolat/images/flags/jp.png")}.b_flag_nb_NO{background-image:url("../openolat/images/flags/no.png")}.b_flag_et_EE{background-image:url("../openolat/images/flags/ee.png")}.b_flag_bg{background-image:url("../openolat/images/flags/bg.png")}.b_flag_hi_IN_ASIA{background-image:url("../openolat/images/flags/in.png")}.b_flag_ar_LB{background-image:url("../openolat/images/flags/lb.png")}.b_flag_gl_ES{background-image:url("../openolat/images/flags/galicia.png")}.b_filetype_file,.b_filetype_ico{background-image:url("../openolat/images/docs/document_plain.png") !important}.b_filetype_folder{background-image:url("../openolat/images/folder.png") !important}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.b_filetype_folder,.b_filetype_folder_open{background-image:url("../openolat/images/folder_open.png") !important}.b_filetype_zip,.b_filetype_gz,.b_filetype_tar,.b_filetype_tgz{background-image:url("../openolat/images/docs/document-zipper.png") !important}.b_filetype_css,.b_filetype_js,.b_filetype_java,.b_filetype_numbers,.b_filetype_ods,.b_filetype_xml,.b_filetype_xsl{background-image:url("../openolat/images/docs/document_tags.png") !important}.b_filetype_bat_icon,.b_filetype_bat,.b_filetype_exe,.b_filetype_app,.b_filetype_sh{background-image:url("../openolat/images/docs/document-binary.png") !important}.b_filetype_xls,.b_filetype_xlsx{background-image:url("../openolat/images/docs/document-excel.png") !important}.b_filetype_swf,.b_filetype_flv{background-image:url("../openolat/images/docs/document-flash-movie.png") !important}.b_filetype_htm,.b_filetype_html{background-image:url("../openolat/images/docs/document-globe.png") !important}.b_filetype_ai{background-image:url("../openolat/images/docs/document-illustrator.png") !important}.b_filetype_png,.b_filetype_tiff,.b_filetype_webp,.b_filetype_gif,.b_filetype_ico,.b_filetype_jpeg,.b_filetype_bmp,.b_filetype_odg,.b_filetype_eps,.b_filetype_jpg{background-image:url("../openolat/images/docs/document-image.png") !important}.b_filetype_avi_icon,.b_filetype_avi,.b_filetype_dvi,.b_filetype_mp4,.b_filetype_m4v,.b_filetype_webm,.b_filetype_ogg,.b_filetype_video,.b_filetype_mov,.b_filetype_mpeg,.b_filetype_mpg,.b_filetype_qt,.b_filetype_ra,.b_filetype_ram{background-image:url("../openolat/images/docs/document-film.png") !important}.b_filetype_midi,.b_filetype_audio,.b_filetype_mp3,.b_filetype_m3u,.b_filetype_wav{background-image:url("../openolat/images/docs/document-music.png") !important}.b_filetype_ps,.b_filetype_pdf{background-image:url("../openolat/images/docs/document-pdf.png") !important}.b_filetype_psd{background-image:url("../openolat/images/docs/document-photoshop.png") !important}.b_filetype_key,.b_filetype_odp,.b_filetype_ppt,.b_filetype_pptx{background-image:url("../openolat/images/docs/document-powerpoint.png") !important}.b_filetype_odf,.b_filetype_rtf,.b_filetype_readme,.b_filetype_README,.b_filetype_log,.b_filetype_txt{background-image:url("../openolat/images/docs/document-text.png") !important}.b_filetype_pages,.b_filetype_doc,.b_filetype_docx{background-image:url("../openolat/images/docs/document-word.png") !important}.b_large_icon.b_filetype_file{background-image:url("../openolat/images/docs_large/file.png") !important}.b_large_icon.b_filetype_folder{background-image:url("../openolat/images/docs_large/folder.png") !important}.b_large_icon.b_filetype_zip,.b_large_icon.b_filetype_gz,.b_large_icon.b_filetype_tar,.b_large_icon.b_filetype_tgz{background-image:url("../openolat/images/docs_large/compressed.png") !important}.b_large_icon.b_filetype_css{background-image:url("../openolat/images/docs_large/css.png") !important}.b_large_icon.b_filetype_js,.b_large_icon.b_filetype_java,.b_large_icon.b_filetype_xml,.b_large_icon.b_filetype_xsl,.b_large_icon.b_filetype_bat,.b_large_icon.b_filetype_exe,.b_large_icon.b_filetype_app,.b_large_icon.b_filetype_sh{background-image:url("../openolat/images/docs_large/developer.png") !important}.b_large_icon.b_filetype_numbers{background-image:url("../openolat/images/docs_large/numbers.png") !important}.b_large_icon.b_filetype_ods,.b_large_icon.b_filetype_xls,.b_large_icon.b_filetype_xlsx{background-image:url("../openolat/images/docs_large/excel.png") !important}.b_large_icon.b_filetype_swf,.b_large_icon.b_filetype_flv{background-image:url("../openolat/images/docs_large/flash.png") !important}.b_large_icon.b_filetype_htm,.b_large_icon.b_filetype_html{background-image:url("../openolat/images/docs_large/html.png") !important}.b_large_icon.b_filetype_ai{background-image:url("../openolat/images/docs_large/illustrator.png") !important}.b_large_icon.b_filetype_png,.b_large_icon.b_filetype_tiff,.b_large_icon.b_filetype_webp,.b_large_icon.b_filetype_gif,.b_large_icon.b_filetype_ico,.b_large_icon.b_filetype_jpeg,.b_large_icon.b_filetype_bmp,.b_large_icon.b_filetype_odg,.b_large_icon.b_filetype_eps,.b_large_icon.b_filetype_jpg{background-image:url("../openolat/images/docs_large/image.png") !important}.b_large_icon.b_filetype_avi,.b_large_icon.b_filetype_dvi,.b_large_icon.b_filetype_mp4,.b_large_icon.b_filetype_m4v,.b_large_icon.b_filetype_webm,.b_large_icon.b_filetype_ogg,.b_large_icon.b_filetype_video,.b_large_icon.b_filetype_mov,.b_large_icon.b_filetype_mpeg,.b_large_icon.b_filetype_mpg,.b_large_icon.b_filetype_qt,.b_large_icon.b_filetype_ra,.b_large_icon.b_filetype_ram{background-image:url("../openolat/images/docs_large/movie.png") !important}.b_large_icon.b_filetype_midi,.b_large_icon.b_filetype_audio,.b_large_icon.b_filetype_mp3,.b_large_icon.b_filetype_m3u,.b_large_icon.b_filetype_wav{background-image:url("../openolat/images/docs_large/music.png") !important}.b_large_icon.b_filetype_ps,.b_large_icon.b_filetype_pdf{background-image:url("../openolat/images/docs_large/pdf.png") !important}.b_large_icon.b_filetype_psd{background-image:url("../openolat/images/docs_large/photoshop.png") !important}.b_large_icon.b_filetype_key{background-image:url("../openolat/images/docs_large/keynote.png") !important}.b_large_icon.b_filetype_odp,.b_large_icon.b_filetype_ppt,.b_large_icon.b_filetype_pptx{background-image:url("../openolat/images/docs_large/powerpoint.png") !important}.b_large_icon.b_filetype_odf,.b_large_icon.b_filetype_rtf,.b_large_icon.b_filetype_readme,.b_large_icon.b_filetype_README,.b_large_icon.b_filetype_log,.b_large_icon.b_filetype_txt{background-image:url("../openolat/images/docs_large/text.png") !important}.b_large_icon.b_filetype_pages{background-image:url("../openolat/images/docs_large/pages.png") !important}.b_large_icon.b_filetype_doc,.b_large_icon.b_filetype_docx{background-image:url("../openolat/images/docs_large/word.png") !important}li.b_nav_site div,li.b_nav_tab div{background:url("../openolat/images/application.png") no-repeat left 50%;padding-left:18px}li.b_resource_BusinessGroup div,.o_BusinessGroup_icon{background-image:url("../openolat/images/users.png")}li.b_resource_GroupCard div,.o_GroupCard_icon{background-image:url("../openolat/images/users.png")}li.b_resource_CourseModule div,.o_CourseModule_icon{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}.o_CourseModule_icon.b_managed_icon{background-image:url("../openolat/images/le_resources/book-open-text-image_locked.png")}li.b_resource_HOMEPAGECONFIG div,.o_HOMEPAGECONFIG_icon,li.b_resource_Identity div{background-image:url("../openolat/images/card-address.png")}li.b_resource_FileResource-SHAREDFOLDER div,.o_FileResource-SHAREDFOLDER_icon{background-image:url("../openolat/images/folder_shared.png")}li.b_resource_FileResource-WIKI div,.o_FileResource-WIKI_icon{background-image:url("../openolat/images/le_resources/wiki.png")}li.b_resource_FileResource-PODCAST div,.o_FileResource-PODCAST_icon{background-image:url("../openolat/images/le_resources/media-player-cast.png")}li.b_resource_FileResource-BLOG div,.o_FileResource-BLOG_icon{background-image:url("../openolat/images/le_resources/blog.png")}li.b_resource_FileResource-MOVIE div,.o_FileResource-MOVIE_icon{background-image:url("../openolat/images/docs/document-film.png")}li.b_resource_FileResource-PDF div,.o_FileResource-PDF_icon{background-image:url("../openolat/images/docs/document-pdf.png")}li.b_resource_FileResource-PPT div,.o_FileResource-PPT_icon{background-image:url("../openolat/images/docs/document-powerpoint.png")}li.b_resource_FileResource-DOC div,.o_FileResource-DOC_icon{background-image:url("../openolat/images/docs/document-word.png")}li.b_resource_FileResource-IMSCP div,.o_FileResource-IMSCP_icon{background-image:url("../openolat/images/le_resources/box.png")}li.b_resource_FileResource-SCORMCP div,.o_FileResource-SCORMCP_icon{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png")}li.b_resource_FileResource-FILE div,.o_FileResource-FILE_icon{background-image:url("../openolat/images/docs/document_plain.png")}li.b_resource_FileResource-IMAGE div,.o_FileResource-IMAGE_icon{background-image:url("../openolat/images/docs/document-image.png")}li.b_resource_FileResource-SOUND div,.o_FileResource-SOUND_icon{background-image:url("../openolat/images/docs/document-music.png")}li.b_resource_FileResource-XLS div,.o_FileResource-XLS_icon{background-image:url("../openolat/images/docs/document-excel.png")}li.b_resource_FileResource-ANIM div,.o_FileResource-ANIM_icon{background-image:url("../openolat/images/docs/document-image.png")}li.b_resource_FileResource-SURVEY div,.o_FileResource-SURVEY_icon{background-image:url("../openolat/images/le_resources/survey.png")}li.b_resource_FileResource-TEST div,.o_FileResource-TEST_icon{background-image:url("../openolat/images/le_resources/test.png")}li.b_resource_FileResource-GLOSSARY div,.o_FileResource-GLOSSARY_icon{background-image:url("../openolat/images/le_resources/glossary.png")}li.b_resource_org-olat-search-ui-SearchController div,.o_org-olat-search-ui-SearchController_icon{background-image:url("../openolat/images/magnifier-zoom.png")}li.b_resource_EPStructuredMapTemplate div{background-image:url("../openolat/images/le_resources/portfolio.png")}li a.o_toolbox_course{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}li a.o_toolbox_content{background-image:url("../openolat/images/le_resources/box.png")}li a.o_toolbox_scorm{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png")}li a.o_toolbox_test{background-image:url("../openolat/images/le_resources/test.png")}li a.o_toolbox_questionnaire{background-image:url("../openolat/images/le_resources/survey.png")}li a.o_toolbox_wiki{background-image:url("../openolat/images/le_resources/wiki.png")}li a.o_toolbox_podcast{background-image:url("../openolat/images/le_resources/media-player-cast.png")}li a.o_toolbox_blog{background-image:url("../openolat/images/le_resources/blog.png")}li a.o_toolbox_glossary{background-image:url("../openolat/images/le_resources/glossary.png")}li a.o_toolbox_sharedfolder{background-image:url("../openolat/images/folder_shared.png")}li a.o_toolbox_coursefolder{background-image:url("../openolat/images/le_resources/blue-folder.png")}li a.o_toolbox_courseareas{background-image:url("../openolat/images/users.png")}li a.o_toolbox_portfolio{background-image:url("../openolat/images/le_resources/portfolio.png")}li a.b_toolbox_link{background-image:url("../openolat/images/bullet_black.png")}li a.b_toolbox_doc{background-image:url("../openolat/images/docs/document_plain.png")}li a.b_toolbox_preview{background-image:url("../openolat/images/docs/document_preview.png")}li a.b_toolbox_publish{background-image:url("../openolat/images/docs/document_share.png")}li a.b_toolbox_move{background-image:url("../openolat/images/docs/document_move.png")}li a.b_toolbox_close{background-image:url("../openolat/images/close.png")}li a.b_toolbox_delete{background-image:url("../openolat/images/bin-metal-full.png")}li a.b_toolbox_copy,.b_copy_icon{background-image:url("../openolat/images/docs/document-copy.png")}.o_midlock{top:9px;left:9px;background-image:url("../openolat/images/decorator/deco_condition.png")}.o_miderr{top:8px;left:-2px;background-image:url("../openolat/images/decorator/deco_error.png")}.o_midwarn{top:8px;left:-2px;background-image:url("../openolat/images/decorator/deco_warn.png")}.o_midpub{top:-2px;left:9px;background-image:url("../openolat/images/decorator/deco_ok.png")}span.o_passed{background:url(../openolat/images/tick.png) no-repeat right 50%;padding:0 25px 0 0;color:#009900}span.o_notpassed{background:url(../openolat/images/cross.png) no-repeat right 50%;padding:0 25px 0 0;color:#990000}.o_efficiencystatement_icon{background-image:url(../openolat/images/seal.png)}span.o_green_led{background:url(../openolat/images/green_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_yellow_led{background:url(../openolat/images/yellow_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_red_led{background:url(../openolat/images/red_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_black_led{background:url(../openolat/images/black_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_grey_led{background:url(../openolat/images/grey_led.png) no-repeat left 50%;padding:0 0 0 25px}.o_bc_icon{background-image:url("../openolat/images/folder.png") !important}.o_co_icon{background-image:url("../openolat/images/mail.png") !important}.o_cp_icon{background-image:url("../openolat/images/le_resources/box.png") !important}.o_cp_org{background-image:url("../openolat/images/le_resources/box.png") !important}.o_cp_item{background-image:url("../openolat/images/docs/document-text.png") !important}.o_dialog_icon{background-image:url("../openolat/images/docs/document_discuss.png") !important}.o_en_icon{background-image:url("../openolat/images/enrol.png") !important}.o_fo_icon{background-image:url("../openolat/images/forum/forum.png") !important}.o_iqself_icon{background-image:url("../openolat/images/le_resources/selftest.png") !important}.o_iqsurv_icon{background-image:url("../openolat/images/le_resources/survey.png") !important}.o_iqtest_icon{background-image:url("../openolat/images/le_resources/test.png") !important}.o_qitem_icon{background-image:url("../openolat/images//question-octagon-frame.png") !important}.o_ms_icon{background-image:url("../openolat/images/le_resources/thumb-up.png") !important}.o_scorm_icon,.o_scorm_org{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png") !important}.o_scorm_item{background-image:url("../openolat/images/docs/document-text.png") !important}.o_scorm_asset{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png") !important}.o_sp_icon{background-image:url("../openolat/images/docs/document-text.png") !important}.o_st_icon{background-image:url("../openolat/images/node-select-all.png") !important}.o_ta_icon{background-image:url("../openolat/images/docs/document-task.png") !important}.o_tu_icon{background-image:url("../openolat/images/docs/document-import.png") !important}.o_wiki_icon{background-image:url("../openolat/images/le_resources/wiki.png") !important}.o_ll_icon{background-image:url("../openolat/images/docs/document_linklist.png") !important}.o_cl_icon{background-image:url("../openolat/images/clipboard-task.png") !important}.o_den_icon{background-image:url("../openolat/images/clock.png") !important}.o_projectbroker_icon{background-image:url("../openolat/images/projectbroker.png") !important}.o_podcast_icon{background-image:url("../openolat/images/le_resources/media-player-cast.png") !important}.o_blog_icon{background-image:url("../openolat/images/le_resources/blog.png") !important}.o_cal_icon{background-image:url("../openolat/images/calendar.png") !important}.o_lti_icon{background-image:url("../openolat/images/docs/document-node.png") !important}.o_vc_icon{background-image:url("../openolat/images/projection-screen.png") !important}.o_vitero_icon{background-image:url("../openolat/images/vitero.png") !important}.o_openmeetings_icon{background-image:url("../openolat/images/projection-screen-presentation.png") !important}.o_ep_icon{background-image:url("../openolat/images/le_resources/portfolio.png") !important}.o_EPStructuredMapTemplate_icon{background-image:url("../openolat/images/portfolio/briefcase.png") !important}.o_infomsg_icon{background-image:url("../openolat/images/information-button.png") !important}.o_cmembers_icon{background-image:url("../openolat/images/users.png") !important}.fx_members_icon{background-image:url("../openolat/images/users_members.png") !important}body#b_body .o_CourseModule_icon_closed{background-image:url("../openolat/images/le_resources/book-open-text-image_locked.png")}.o_portrait_dummy{background-image:url(../openolat/images/dummy.png);width:100px;height:100px}.o_portrait_dummy_small{background-image:url(../openolat/images/dummy_small.png);width:30px;height:30px}.o_portrait_dummy_female_big{background-image:url(../openolat/images/dummy_female_big.png);width:100px;height:100px}.o_portrait_dummy_female_small{background-image:url(../openolat/images/dummy_female_small.png);width:30px;height:30px}.o_portrait_dummy_male_big{background-image:url(../openolat/images/dummy_male_big.png);width:100px;height:100px}.o_portrait_dummy_male_small{background-image:url(../openolat/images/dummy_male_small.png);width:30px;height:30px}.o_portrait_anonymous{background-image:url(../openolat/images/dummy.png);width:100px;height:100px}.o_portrait_anonymous_small{background-image:url(../openolat/images/dummy_small.png);width:30px;height:30px}@media all{html{min-height:100%}body{min-height:100%;overflow-y:scroll;background:#ececec url("../openolat/images/sky.png") repeat-x left 83px}#b_page_margins{min-width:740px;max-width:1324px;margin:0 auto;width:100%;height:100%;position:relative;z-index:1}#b_main_toolbar{clear:both;height:24px;line-height:24px;vertical-align:middle;margin:0;padding:1px 0 0 0;border-bottom:1px solid #dadada;background-color:white;moz-box-shadow:0 0 14px #d3d3d3;-ms-box-shadow:0 0 14px #d3d3d3;-o-box-shadow:0 0 14px #d3d3d3;-webkit-box-shadow:0 0 14px #d3d3d3;box-shadow:0 0 14px #d3d3d3}#b_main_toolbar ul li a span{line-height:24px}#b_main{background:#fff;min-height:550px;clear:both;moz-box-shadow:0 2px 14px #d3d3d3;-ms-box-shadow:0 2px 14px #d3d3d3;-o-box-shadow:0 2px 14px #d3d3d3;-webkit-box-shadow:0 2px 14px #d3d3d3;box-shadow:0 2px 14px #d3d3d3}#b_page a#b_toplink{position:absolute;bottom:1em;right:1em;background:transparent url(../openolat/images/arrow_up.png) 0 50% no-repeat;padding-left:14px;z-index:5}#b_header,#b_page,#b_col1_content,#b_col2_content,#b_col3_content,#b_col3_content_inner{position:relative}#b_col1{overflow:hidden}#b_col1_content{padding:1em 10px 1em 0px}#b_col3{border-left:1px #DDD dotted;border-right:1px #DDD dotted}#b_col3_content{min-height:550px;padding:20px 20px 30px 20px}#b_col2_content{overflow:hidden;padding:1em 0}.b_hidecol2 #b_col3{margin-right:0 !important;border-right:none}.b_hidecol1 #b_col3{margin-left:0 !important;border-left:none}.b_hideboth #b_col3{margin-left:0 !important;margin-right:0 !important;border-left:none;border-right:none}.b_hideboth #b_col1,.b_hideboth #b_col2,.b_hidecol1 #b_col1,.b_hidecol2 #b_col2,#b_ie_clearing{display:none}.b_c15r,.b_c20r,.b_c80r,.b_c85r{float:right;margin-left:-5px}.b_c15l,.b_c15r{width:15%}.b_c20l,.b_c20r{width:20%}.b_c80l,.b_c80r{width:80%}.b_c85l,.b_c85r{width:85%}.b_subcolumns_oldgecko,.b_c20l,.b_c15l,.b_c80l,.b_c85l{float:left}div.b_iframe_wrapper iframe{width:100%;position:relative;top:0;left:0;border:none;margin:0;padding:0;background:transparent}#b_main.b_exception{padding-left:165px;padding-right:165px}#b_header{height:auto;min-height:30px;overflow:hidden;position:relative}#b_header #b_topnav{position:absolute;font-family:Century Gothic, Apple Gothic, sans-serif;right:0px;top:0px;padding:4px 15px 0px 0px;line-height:1.5em;min-height:1.5em}#b_header #b_topnav ul{margin:0}#b_header #b_topnav li,#b_header #b_topnav div,#b_header #b_topnav span{line-height:1.5em}#b_header #b_topnav .b_with_small_icon_right,#b_header #b_topnav #b_main_toolbar div.b_breadcumb_close .b_close,#b_main_toolbar div.b_breadcumb_close #b_header #b_topnav .b_close{padding:0 20px 0 0}#b_header #b_topnav .b_with_small_icon_left,#b_header #b_topnav div.b_table_wrapper div.b_table_empty,div.b_table_wrapper #b_header #b_topnav div.b_table_empty{padding:0 0 0 20px}#b_header #b_topnav .b_small_icon{height:1.5em}#b_header #b_topnav #o_topnav_langchooser select{font-size:90%}#b_header #b_topnav #o_topnav_search input{font-size:90%;margin:0;width:10em}#b_header #b_topnav #o_topnav_search a.o_fulltext_search_button{height:1.5em;background-position:50% 50%}#b_header #b_topnav #o_topnav_printview a{background:url(../openolat/images/printer.png) no-repeat right 50%;padding:0 20px 0 0;margin:0}#b_header #b_topnav #o_topnav_logout a{background:url("../openolat/images/control/control-power.png") no-repeat right 50%;padding:0 20px 0 0;margin:0;font-weight:bold}#b_header #b_topnav li{float:left;list-style:none;margin-left:1.7em}#b_header #b_topnav li div.b_form_element_wrapper.b_form_horizontal{margin:0}#b_header #b_topnav li#o_topnav_imclient li{margin-left:0.5em}#b_nav_main{float:left;font-family:Century Gothic, Apple Gothic, sans-serif}#b_nav_main ul{padding-left:40px;margin:0}#b_nav_main ul li{float:left;position:relative;list-style:none;margin:0px;padding:4px 3px 4px 12px;margin-right:2px;-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;background:rgba(255, 255, 255, 0.5)}#b_nav_main ul li a{padding:4px 12px 4px 3px}#b_nav_main ul li a:hover{text-decoration:none}#b_nav_main ul li.b_nav_site.b_nav_active,#b_nav_main ul li.b_nav_site:hover,#b_nav_main ul li.b_nav_site.b_exception{moz-box-shadow:0 -4px 8px -1px #d3d3d3;-ms-box-shadow:0 -4px 8px -1px #d3d3d3;-o-box-shadow:0 -4px 8px -1px #d3d3d3;-webkit-box-shadow:0 -4px 8px -1px #d3d3d3;box-shadow:0 -4px 8px -1px #d3d3d3;background:white}#b_nav_main ul li.b_nav_site.b_nav_active a.b_nav_tab_close,#b_nav_main ul li.b_nav_site:hover a.b_nav_tab_close,#b_nav_main ul li.b_nav_site.b_exception a.b_nav_tab_close{background-image:url(../openolat/images/cross_small_trimmed_blue.png)}#b_nav_main ul li.b_nav_site > div{padding-left:16px;background-repeat:no-repeat;background-position:0% 50%;background-image:url("../openolat/images/application.png")}#b_nav_main ul li.b_nav_site.o_site_home > div{background-image:url("../openolat/images/home.png")}#b_nav_main ul li.b_nav_site.o_site_admin > div{background-image:url("../openolat/images/wrench-screwdriver.png")}#b_nav_main ul li.b_nav_site.o_site_useradmin > div{background-image:url("../openolat/images/user_conf.png")}#b_nav_main ul li.b_nav_site.o_site_groupsmanagement > div{background-image:url("../openolat/images/users_conf.png")}#b_nav_main ul li.b_nav_site.o_site_repository > div{background-image:url("../openolat/images/books-stack.png")}#b_nav_main ul li.b_nav_site.o_site_groups > div{background-image:url("../openolat/images/users.png")}#b_nav_main ul li.b_nav_site.o_site_coaching > div{background-image:url("../openolat/images/eye.png")}#b_nav_main ul li.b_nav_site.site_demo_icon > div{background-image:url("../openolat/images/information-white.png")}#b_nav_main ul li.b_nav_site.f_site_library > div{background-image:url("../openolat/images/library.png")}#b_nav_main ul li.b_nav_site.fx_members > div{background-image:url("../openolat/images/users_members.png")}#b_nav_main ul li.b_nav_site.o_site_guidemo div{background-image:url("../openolat/images/light-bulb.png")}#b_nav_main ul li.b_nav_site.b_resource_GroupInfoMainController div{background-image:url(../openolat/images/users.png)}#b_nav_main ul li.b_nav_site.o_site_catalog div{background-image:url(../openolat/images/drawer-open.png)}#b_nav_main ul li.b_nav_site.o_site_qpool div{background-image:url(../openolat/images/qti/pool.png)}#b_nav_main ul li.b_nav_tab{margin-right:4px}#b_nav_main ul li.b_nav_tab a.b_nav_tab_close{position:absolute;top:3px;right:4px;width:13px;height:13px;line-height:0;padding:0;margin:0;background:transparent url(../openolat/images/cross_small_trimmed_grey.png) no-repeat right top}#b_nav_main ul li.b_nav_tab.b_nav_active,#b_nav_main ul li.b_nav_tab:hover{moz-box-shadow:0 -4px 8px -1px #d3d3d3;-ms-box-shadow:0 -4px 8px -1px #d3d3d3;-o-box-shadow:0 -4px 8px -1px #d3d3d3;-webkit-box-shadow:0 -4px 8px -1px #d3d3d3;box-shadow:0 -4px 8px -1px #d3d3d3;background:white}#b_nav_main ul li.b_nav_tab.b_nav_active a.b_nav_tab_close,#b_nav_main ul li.b_nav_tab:hover a.b_nav_tab_close{background-image:url(../openolat/images/cross_small_trimmed_blue.png)}#b_nav_main ul li#b_nav_spacer{background:none;border:none;width:20px;height:1px;padding:0}.b_clickable:hover{cursor:pointer}div.b_tree{position:relative;font-size:100%;font-family:Century Gothic, Apple Gothic, sans-serif;padding:0}div.b_tree ul{position:relative;padding:0;margin:0 0 0 1em;list-style:none;white-space:nowrap}div.b_tree ul li{position:relative;background:transparent;margin-left:0;padding-left:0;line-height:1.7em}div.b_tree ul li a.b_tree_icon{padding-left:20px;padding-top:2px;position:relative;background-position:0 50%;background-repeat:no-repeat}div.b_tree ul li a{color:#555555}div.b_tree ul li a.b_tree_l0{padding-left:16px}div.b_tree ul li .b_tree_oc_l0{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l0,div.b_tree ul li .b_tree_level_close.b_tree_oc_l0{z-index:10}div.b_tree ul li a:focus,div.b_tree ul li a:hover{color:#025d8c;background-color:transparent;text-decoration:underline}div.b_tree ul li a.b_tree_selected,div.b_tree ul li a:active{color:#025d8c;background-color:transparent;text-decoration:none}div.b_tree ul li a.b_tree_selected_parents,div.b_tree ul li strong{color:#025d8c;font-weight:bold}div.b_tree ul li .b_tree_oc_l1{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l1,div.b_tree ul li .b_tree_level_close.b_tree_oc_l1{z-index:10}div.b_tree ul li .b_tree_oc_l2{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l2,div.b_tree ul li .b_tree_level_close.b_tree_oc_l2{z-index:10}div.b_tree ul li .b_tree_oc_l3{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l3,div.b_tree ul li .b_tree_level_close.b_tree_oc_l3{z-index:10}div.b_tree ul li .b_tree_oc_l4{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l4,div.b_tree ul li .b_tree_level_close.b_tree_oc_l4{z-index:10}div.b_tree ul li .b_tree_oc_l5{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l5,div.b_tree ul li .b_tree_level_close.b_tree_oc_l5{z-index:10}div.b_tree ul li .b_tree_oc_l6{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l6,div.b_tree ul li .b_tree_level_close.b_tree_oc_l6{z-index:10}div.b_tree ul li .b_tree_oc_l7{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l7,div.b_tree ul li .b_tree_level_close.b_tree_oc_l7{z-index:10}div.b_tree ul li .b_tree_oc_l8{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l8,div.b_tree ul li .b_tree_level_close.b_tree_oc_l8{z-index:10}div.b_tree ul li .b_tree_oc_l9{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l9,div.b_tree ul li .b_tree_level_close.b_tree_oc_l9{z-index:10}div.b_tree ul li .b_tree_oc_l10{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l10,div.b_tree ul li .b_tree_level_close.b_tree_oc_l10{z-index:10}div.b_tree ul li .b_tree_oc_l11{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l11,div.b_tree ul li .b_tree_level_close.b_tree_oc_l11{z-index:10}div.b_tree ul li a.b_tree_l0{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l1{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l2{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l3{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l4{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l5{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l6{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l7{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l8{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l9{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l10{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l11{padding-left:13px;z-index:9}div.b_tree ul li span.b_tree_icon_decorator{width:12px;height:12px;float:right;display:inline;position:static;z-index:9;background-repeat:no-repeat}div.b_tree ul li.b_deleted{text-decoration:none}div.b_tree ul li.b_deleted a{text-decoration:line-through}div.b_tree ul.b_tree_l0 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l1 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l2 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l3 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l4 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l5 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l6 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l7 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l8 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l9 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l10 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l11 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree.b_tree_root_hidden{margin:0 0 0 1em}div.b_tree.b_tree_root_hidden ul{padding:0}div.b_tree.b_tree_root_hidden ul.b_tree_l0{margin-left:0}div.b_tree.b_tree_root_visible{left:-13px}div.b_tree a.b_tree_level_close,div.b_tree a.b_tree_level_open{background:transparent !important}div.b_tree a.b_tree_level_close span,div.b_tree a.b_tree_level_open span{background-position:0 50%;background-repeat:no-repeat;padding-right:13px}div.b_tree a.b_tree_level_close:hover,div.b_tree a.b_tree_level_open:hover{text-decoration:none}div.b_tree a.b_tree_level_close span{background-image:url("../openolat/images/tree_parent_open.png")}div.b_tree a.b_tree_level_open span{background-image:url("../openolat/images/tree_parent_closed.png")}div.b_master_detail div.b_tree ul li{background:url("../openolat/images/detail/detail_separator.png") repeat-y right}div.b_master_detail div.b_tree ul li a.b_tree_l0{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l1{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l2{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l3{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l4{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l5{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l6{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l7{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l8{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l9{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l10{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l11{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_selected{background-image:url("../openolat/images/detail/detail_arrow.png")}div.b_master_detail div.b_tree ul li a.b_tree_selected.b_tree_l0{background-image:none}#b_footer{color:#9D9D9D;padding:0;margin:0;position:relative;min-height:60px}#b_footer a{color:#777777}#b_footer #b_footer_user{position:absolute;top:1em;left:1em;line-height:16px}#b_footer #b_footer_user #b_username{margin-right:1.5em}#b_footer #b_footer_version{position:absolute;top:1em;right:1em}#b_footer #b_footer_powered{padding-top:1em;text-align:center;width:auto;background:none}#b_footer #b_footer_powered a{display:inline}#b_footer #b_footer_powered img{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#b_footer #b_footer_powered img:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#b_footer #b_share{position:absolute;top:2.5em;left:1em;width:250px}#b_footer #b_share a,#b_footer #b_share span{margin:0 3px 0 0;background-repeat:no-repeat;width:16px;height:16px;float:left;display:inline;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#b_footer #b_share a:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#b_footer #b_share #b_facebook{background-image:url(../openolat/images/social/facebook_16.png)}#b_footer #b_share #b_twitter{background-image:url(../openolat/images/social/twitter_16.png)}#b_footer #b_share #b_google{background-image:url(../openolat/images/social/google_16.png)}#b_footer #b_share #b_delicious{background-image:url(../openolat/images/social/delicious_16.png)}#b_footer #b_share #b_digg{background-image:url(../openolat/images/social/digg_16.png)}#b_footer #b_share #b_mail{background-image:url(../openolat/images/social/email_16.png)}#b_footer #b_share #b_link{background-image:url(../openolat/images/social/link_16.png)}#b_footer .fx_footer #b_footer_version > a{display:block;min-height:45px;background:transparent url("../../images/frentix/frentix_logo_grey.png") no-repeat left bottom}#b_footer .fx_footer #b_footer_version > a:hover{background-image:url("../../images/frentix/frentix_logo.png")}#callout_share_link input{width:480px}#b_main.b_menu_toolbar #b_col1_content{padding-top:0;padding-right:0}#b_main.b_menu_toolbar #b_col3_content{padding:0}div.b_menu_toolbar{background:#f9f9f9;background:-moz-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9), color-stop(100%, #d0d0d0));background:-webkit-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-o-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-ms-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);border-bottom:1px solid #7D7D7D;padding:5px 5px 2px 0}div.b_breadcumb_path{padding:0;margin:0;float:left;display:inline}div.b_breadcumb_path ul{padding:0;margin:0;list-style:none;float:left;display:inline}div.b_breadcumb_path ul li{padding:0 7px 0 14px;margin:0;list-style:none;float:left;display:inline;background:url(../openolat/images/breadcrumb-separator.png) no-repeat left 50%}div.b_breadcumb_path ul li.b_first{background:url(../openolat/images/home.png) no-repeat 5px 50%;padding-left:25px}div.b_breadcumb_path ul li a{color:#464444}div.b_breadcumb_path ul li span.b_disabled{color:#000;padding:0 10px 0 0;margin:0}#b_main_toolbar div.b_breadcumb_path ul a{color:#2d2e2d;font-weight:bold}#b_main_toolbar div.b_breadcumb_path ul a:hover{color:#585a58;text-decoration:none}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back{background:transparent;padding:0 7px 0 7px;margin:0 2px 0 0;border-right:1px solid #dadada}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back a{font-type:Arial;color:#2d2e2d;font-weight:normal}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back a:hover{color:#585a58}#b_main_toolbar div.b_breadcumb_close{position:absolute;right:5px;size:80%}#b_main_toolbar div.b_breadcumb_close .b_close{background-image:url("../openolat/images/close.png");color:#2d2e2d}#b_main_toolbar div.b_breadcumb_close .b_close:hover{color:#585a58;text-decoration:none}div.b_breadcumb_content{clear:both;margin-top:0.5em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_toolbar{background:#f9f9f9;background:-moz-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9), color-stop(100%, #d0d0d0));background:-webkit-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-o-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-ms-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);position:relative;padding:10px;height:19px;min-height:19px;border-bottom:1px solid #7D7D7D}div.b_toolbar ul{margin:0;list-style-image:none;list-style-type:none}div.b_toolbar ul li{margin:0px 16px 0px 0px;list-style-image:none;list-style-type:none}div.b_toolbar div.b_toolbar_left{position:absolute;top:7px;left:7px}div.b_toolbar ul.b_toolbar_left li{float:left}div.b_toolbar div.b_toolbar_right{position:absolute;top:7px;right:7px}div.b_toolbar ul.b_toolbar_right li{float:right;margin:0px 2px 0px 2px}div.b_toolbar div.b_toolbar_center{text-align:center}div.b_noti{border:1px solid #E9EAEF;padding:3px 23px 3px 3px;float:right;display:inline;position:relative;right:0;font-size:95%}div.b_noti a.b_contexthelp{position:absolute;top:2px;right:2px}div.b_noti a.b_noti_unsubscribe_link{background:url(../openolat/images/mail--minus.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_noti a.b_noti_subscribe_link{background:url(../openolat/images/mail--plus.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_noti a.b_noti_markedread_link{background:url(../openolat/images/tick.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_titled_wrapper div.b_noti{position:absolute;right:25px;top:0px}div.b_titled_wrapper fieldset div.b_noti{top:12px}h1.b_titled_wrapper span{padding-right:4em;font-style:italic}h2.b_titled_wrapper span{padding-right:4em;font-style:italic}h3.b_titled_wrapper span{padding-right:4em;font-style:italic}h4.b_titled_wrapper span{padding-right:3em;font-style:italic}h5.b_titled_wrapper span{padding-right:3em;font-style:italic}a.b_togglebox_closed{background:url("../openolat/images/tree_parent_closed.png") no-repeat 0 50%;padding:1px 0 1px 18px;vertical-align:middle}a.b_togglebox_opened{background:url("../openolat/images/tree_parent_open.png") no-repeat 0 50%;padding:1px 0 1px 18px;vertical-align:middle}div.b_togglebox{margin-top:10px;padding:10px;background:#FAFAFA}div.b_togglebox div.b_togglebox_content{background:transparent;border:0px;padding:0px}div.b_titled_wrapper div.b_togglebox{margin-top:0;padding:0;background:transparent}div.b_titled_wrapper div.b_togglebox div.b_togglebox_content{background:transparent;border:0px;padding:0px}div.b_titled_wrapper_desc a.b_togglebox_opened{z-index:10;display:block;width:20px;height:20px;position:absolute;top:2px;left:5px;background:url(../openolat/images/information-white.png) no-repeat 0 50%}div.b_titled_wrapper_desc a.b_togglebox_closed{display:block;width:20px;height:20px;background:url(../openolat/images/information-white.png) no-repeat top left;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}div.b_titled_wrapper_desc div.b_togglebox div.b_togglebox_content{position:relative;margin-bottom:1em}div.b_titled_wrapper_desc a.b_togglebox_hide span{position:absolute;bottom:0;right:0;padding:0 6px 3px 0}div.b_titled_wrapper_desc a.b_togglebox_hide:hover{text-decoration:underline}div.b_titled_wrapper div.b_togglebox div.b_togglebox_content div.o_course_run_objectives{position:relative}div.o_course_run_dropbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_course_run_returnbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_course_run_solutionbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_catalog div.o_catalog_link_title{margin:2em 0 0 0;border-bottom:1px solid #ccc;padding:0.3em}div.o_catalog fieldset{padding:1em 1em 0.5em 1em}div.o_catalog div.o_catalog_title{display:none}div.o_catalog div.o_catalog_nav{padding:1px 0 2px 22px;border-bottom:1px solid #EEE;background:url(../openolat/images/folder_open.png) 2px 50% no-repeat}div.o_catalog .o_catalog_sub_icon{background-image:url(../openolat/images/folder_small.png)}div.o_catalog div.o_catalog_links{margin-top:1em;padding-top:1em;border-top:1px solid #EEE}div.o_catalog div.o_catalog_itemlist ul{list-style-type:none;margin:0;padding:0}div.o_catalog div.o_catalog_itemlist ul li{margin:0;padding:0 0 0 0.5em;overflow:hidden}div.o_catalog div.o_catalog_itemlist ul a{display:block}div.o_catalog div.o_catalog_desc{margin:0.5em 0 0.5em 0;padding-left:20px;font-style:italic}div.b_ext_elem .x-tree-node-collapsed .x-tree-node-icon.o_catalog_cat_icon,div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_cat_icon{background-image:url(../openolat/images/folder_small.png)}div.b_ext_elem .x-tree-node-collapsed .x-tree-node-icon.o_catalog_cat_noaccess_icon,div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_cat_noaccess_icon{background-image:url(../openolat/images/locked.png)}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.o_catalog_cat_icon{background-image:url(../openolat/folder_open.png)}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.o_catalog_cat_noaccess_icon{background-image:url(../openolat/images/locked.png)}div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_entry_icon{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}.b_float_left{float:left;display:inline;margin-right:1em;margin-bottom:0.15em}.b_float_right{float:right;display:inline;margin-left:1em;margin-bottom:0.15em}.b_center{text-align:center;margin:0.5em auto}.b_floatscrollbox{overflow-x:auto;overflow-y:hidden}.b_overflowscrollbox{overflow:auto}}@media all and (min-width : 1324px){#b_footer #b_share{left:0}#b_footer #b_footer_user{left:0}#b_footer #b_footer_version{right:0}}.b_dd_item{cursor:move;z-index:100}.b_dd_proxy{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4}.b_dd_item.b_dd_over{background-color:#ffff60}.b_dd_sibling{height:3px;width:100%}.b_dd_sibling.b_dd_over{background:transparent url(../openolat/images/arrow_dd.png) top left no-repeat}div.b_dd_ct div.b_dd_sibling_l1{margin-left:0 !important}div.b_dd_ct div.b_dd_sibling_l2{margin-left:1em !important}div.b_dd_ct div.b_dd_sibling_l3{margin-left:2em !important}div.b_dd_ct div.b_dd_sibling_l4{margin-left:3em !important}div.b_dd_ct div.b_dd_sibling_l5{margin-left:4em !important}div.b_dd_ct div.b_dd_sibling_l6{margin-left:5em !important}div.b_dd_ct div.b_dd_sibling_l7{margin-left:6em !important}div.b_dd_ct div.b_dd_sibling_l8{margin-left:7em !important}div.b_dd_ct div.b_dd_sibling_l9{margin-left:8em !important}div.b_dd_ct div.b_dd_sibling_l10{margin-left:9em !important}div.b_dd_ct div.b_dd_sibling_l11{margin-left:10em !important}.b_group_accesscontrolled{background-image:url("../openolat/images/ac/umbrella.png")}.b_order_icon{background-image:url("../openolat/images/ac/shopping-basket.png")}div.b_order_details{margin-top:2em}div.b_order_details label{font-weight:bold}div.b_access_create ul{padding:0;margin-left:0}div.b_access_create li{padding:0;list-style:none}table.b_access_method td{padding:0.2em 1em 0.2em 0}table.b_access_method tr.b_access_desc td{padding:0 1em 1em 20px;font-style:italic}table.b_access_method td div.b_form_element{margin-left:0}div.b_access_method_list div.b_access_method legend{background-repeat:no-repeat;padding-left:20px}table span.b_access_method{padding-right:5px;font-size:90%;vertical-align:bottom;line-height:16px}.b_access_member_icon{background-image:url(../openolat/images/ac/lock-unlock.png)}.b_access_membersonly_icon{background-image:url("../openolat/images/ac/lock.png")}.b_access_method_free_icon{background-image:url("../openolat/images/ac/open-share.png")}.b_group_accesscontrolled.b_access_method_free,b_order_icon.b_access_method_free{background-image:url("../openolat/images/ac/open-share.png")}div.b_access_method_list div.b_access_method_free legend{background-image:url("../openolat/images/ac/open-share.png")}.b_access_method_token_icon{background-image:url("../openolat/images/ac/license-key.png")}.b_group_accesscontrolled.b_access_method_token,b_order_icon.b_access_method_token{background-image:url("../openolat/images/ac/license-key.png")}div.b_access_method_list div.b_access_method_token legend{background-image:url("../openolat/images/ac/license-key.png")}div.b_access_method_list div.b_access_method_token div.b_form_element_wrapper:nth-last-of-type(3) label,table.b_access_method tr.b_access_method_token .b_access_infos{background-image:url("../openolat/images/ac/key.png");background-repeat:no-repeat;padding-left:20px}div.b_access_method_list div.b_form_element_wrapper:nth-last-of-type(4) label{background-image:url("../openolat/images/information-white.png");background-repeat:no-repeat;padding-left:20px}.b_access_method_paypal_icon{background-image:url("../openolat/images/ac/credit-cards.png")}#b_main_access_control{margin:0 20% 0 20%;padding:20px 0 0 20px}.b_order_status_new_icon{background-image:url(../openolat/images/new-text.png)}.b_order_status_prepayment_icon{background-image:url(../openolat/images/ac/prepayment.png)}.b_order_status_payed_icon{background-image:url(../openolat/images/tick.png)}.b_order_status_canceled_icon{background-image:url(../openolat/images/ac/canceled.png)}.b_order_status_error_icon{background-image:url(../images/olat/cross.png)}.b_order_status_warning_icon{background-image:url(../openolat/images/exclamation.png)}.b_transaction_status_success_icon{background-image:url(../openolat/images/tick.png)}.b_transaction_status_waiting_icon{background-image:url(../openolat/images/exclamation.png)}.b_transaction_status_error_icon{background-image:url(../openolat/images/cross.png)}.b_transaction_status_canceled_icon{background-image:url(../openolat/images/ac/canceled.png)}.b_transaction_status_new_icon{background-image:url(../openolat/images/new-text.png)}div.b_form div.b_form_element_wrapper table.b_access_method div.b_form_element{margin-left:0}div.b_form table.b_access_method div.b_form_element span.b_form_datechooser{background-position:0 50%}div.b_layer_1 div.b_modal_area{width:82%;margin:9%}div.b_layer_2 div.b_modal_area{width:76%;margin:12%}div.b_layer_3 div.b_modal_area{width:70%;margin:15%}div.b_layer_5 div.b_modal_area{width:64%;margin:18%}div.b_modal_area{position:absolute;top:0px;left:0px;width:80%;margin:10%;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_modal_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1}div.b_modal_overlay,div.ext-el-mask{background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=25);-moz-opacity:0.25;-khtml-opacity:0.25;opacity:0.25}div.b_window{text-align:left;border:1px solid #025d8c;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;background:#fff}div.b_window .b_window_header_wrapper{padding:2px 8px 0px 8px}div.b_window div.b_window_header{position:relative;border-bottom:1px solid #eee}div.b_window div.b_window_header_title{min-height:18px;line-height:18px;vertical-align:middle;padding:2px 5px 2px 5px}div.b_window div.b_window_header_title a.b_link_close{top:4px;right:4px;position:absolute;min-height:16px;min-width:16px;background:transparent url("../openolat/images/close.png") no-repeat center center;display:inline-block}div.b_window div.b_window_header_title a.b_link_close:hover{top:4px;right:4px}div.b_window div.b_window_header_title strong{font-weight:bold}div.b_window div.b_window_content_wrapper{clear:both;width:auto;padding:0 4px 0 4px}div.b_window div.b_window_content{padding:1em}div.b_window div.b_window_content_inner{min-height:200px;position:relative}div.b_window div.b_window_footer_wrapper{height:4px}div.b_callout_area{position:absolute;top:0px;left:0px;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=1);-moz-opacity:0.01;-khtml-opacity:0.01;opacity:0.01}div.b_callout{text-align:left;border:1px solid #025d8c;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;background:#fff}div.b_callout_content{max-width:60em;margin:10px;overflow:hidden}.b_callout_top_right_arrow{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #FFF;position:absolute;right:20px;top:-10px;z-index:1001}.b_callout_top_right_arrow-border{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #025d8c;position:absolute;right:20px;top:-11px;z-index:1000}.b_callout_top_left_arrow{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #FFF;position:absolute;left:20px;top:-10px;z-index:1001}.b_callout_top_left_arrow-border{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #025d8c;position:absolute;left:20px;top:-11px;z-index:1000}div.x-tip-tc,div.x-tip-bc{background-repeat:repeat !important}div.x-tip-body p{margin-bottom:0px}div.x-tip-mc{background:#e9f2ff !important}body.b_ajax_busy{cursor:wait}div.b_ajax_busy{position:absolute;z-index:5001;left:50%;top:10px;height:32px;width:32px;background-repeat:no-repeat;background-image:url(../openolat/images/ajax-loader.svg)}html.no-svg div.b_ajax_busy{background-image:url(../openolat/images/ajax-loader.gif)}div.b_msg_dialog{padding:10px 10px 10px 50px;min-height:32px;background:url(../openolat/images/icon_question_32.png) no-repeat 10px 10px}div.b_msg_dialog .b_msg_title{font-weight:bold}#b_msg_sticky,#b_msg_sticky_preview{clear:both;padding:10px 10px 10px 50px;min-height:32px;background:#ffb651 url(../openolat/images/icon_warning_32.png) no-repeat 10px 10px;border:none}div.b_msg-div{left:35%;position:absolute;top:10px;width:30%;z-index:20000;border:1px solid #025d8c;background:#FAFAFA;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_msg-div .b_msg_info_winicon{background:transparent url(../openolat/images/icon_info_32.png) no-repeat 10px center}div.b_msg_info_content{padding:10px 10px 10px 50px}div.b_msg_warn_winicon{background:url(../openolat/images/icon_warning_32.png) no-repeat}div.b_msg_error_winicon{background:url(../openolat/images/icon_error_32.png) no-repeat}#b_msg_info{padding:10px 10px 10px 50px;min-height:32px;background:url(../openolat/images/icon_info_32.png) no-repeat 10px 10px}#b_msg_info .b_msg_title{font-weight:bold}.o_infomessage_wrapper{margin:20px 0 20px 0}.o_infomessage_wrapper .o_infomessage{text-align:left}div.b_wizard{background:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border:1px solid #025d8c}div.b_wizard div.b_wizard_header_wrapper{background:transparent}div.b_wizard div.b_wizard_header{background:transparent;position:relative}div.b_wizard div.b_wizard_header_title{background:transparent;min-height:18px;line-height:18px;vertical-align:middle;padding:2px 5px 2px 5px}div.b_wizard div.b_wizard_header_title a.b_link_close{top:4px;right:4px;background:url(../openolat/images/close.png);background-repeat:no-repeat}div.b_wizard div.b_wizard_header_title strong{font-weight:bold}div.b_wizard div.b_wizard_steps_wrapper{clear:both;width:auto;padding:0 4px 0 4px;background:transparent}div.b_wizard div.b_wizard_steps_content{background:#fff;border:1px solid #555555;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px}div.b_wizard div.b_wizard_steps_list{width:20em;padding:0;color:#555555}div.b_wizard div.b_wizard_steps_list ol{list-style-type:decimal;z-index:14;font-size:100%;padding:2em 5px 5px}div.b_wizard div.b_wizard_steps_list li{line-height:1.5em;white-space:normal;margin-bottom:1em;list-style:none;padding-left:18px}div.b_wizard div.b_wizard_steps_list li.b_wizard_steps_current{font-weight:bold;background:url(../openolat/images/bullet_go.png) 0% 50% no-repeat;padding-left:18px}div.b_wizard div.b_wizard_steps_list li a{color:#555555}div.b_wizard div.b_wizard_steps_list li a:hover{color:#4F576A;background:transparent;text-decoration:underline}div.b_wizard div.b_wizard_steps_list li .b_disabled{color:#777777;border:0;background:transparent;padding:0;margin:0;white-space:normal;font-style:italic}div.b_wizard div.b_wizard_steps_list li.b_wizard_steps_current .b_disabled{color:#555555;font-style:normal}div.b_wizard div.b_wizard_steps_current{margin-left:20em;padding-top:0.5em;padding-bottom:0.5em}div.b_wizard div.b_wizard_steps_current_inner{padding:1em;border-left:1px solid #ccc}div.b_wizard div.b_wizard_steps_current_content{min-height:300px;position:relative}div.b_wizard div.b_wizard_footer_wrapper{background:transparent}div.b_wizard div.b_wizard_footer div.b_button_group{text-align:left;padding:0.5em 1em 0.5em 21em;margin:0}span.b_wizard_button_prev:before,a.b_wizard_button_prev span:before{content:"\00ab \00a0"}span.b_wizard_button_next:after,a.b_wizard_button_next span:after{content:" \00bb"}a.b_wizard_button_finish,span.b_wizard_button_finish{margin-left:3em}a.b_wizard_button_cancel,span.b_wizard_button_cancel{margin-left:3em}.b_wizard_table_changedcell{font-style:italic;font-weight:bold;background:url(../openolat/images/new-text.png) no-repeat;padding-left:18px}div.b_legacy_wizard_steps{float:right;display:inline}.b_legacy_wizard_step_a1{background-image:url(../openolat/images/wizard/1a.png)}.b_legacy_wizard_step_a2{background-image:url(../openolat/images/wizard/2a.png)}.b_legacy_wizard_step_a3{background-image:url(../openolat/images/wizard/3a.png)}.b_legacy_wizard_step_a4{background-image:url(../openolat/images/wizard/4a.png)}.b_legacy_wizard_step_a5{background-image:url(../openolat/images/wizard/5a.png)}.b_legacy_wizard_step_a6{background-image:url(../openolat/images/wizard/6a.png)}.b_legacy_wizard_step_a7{background-image:url(../openolat/images/wizard/7a.png)}.b_legacy_wizard_step_a8{background-image:url(../openolat/images/wizard/8a.png)}.b_legacy_wizard_step_a9{background-image:url(../openolat/images/wizard/9a.png)}.b_legacy_wizard_step_p1{background-image:url(../openolat/images/wizard/1p.png)}.b_legacy_wizard_step_p2{background-image:url(../openolat/images/wizard/2p.png)}.b_legacy_wizard_step_p3{background-image:url(../openolat/images/wizard/3p.png)}.b_legacy_wizard_step_p4{background-image:url(../openolat/images/wizard/4p.png)}.b_legacy_wizard_step_p5{background-image:url(../openolat/images/wizard/5p.png)}.b_legacy_wizard_step_p6{background-image:url(../openolat/images/wizard/6p.png)}.b_legacy_wizard_step_p7{background-image:url(../openolat/images/wizard/7p.png)}.b_legacy_wizard_step_p8{background-image:url(../openolat/images/wizard/8p.png)}.b_legacy_wizard_step_p9{background-image:url(../openolat/images/wizard/9p.png)}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs{float:left;display:inline-block;margin-bottom:1em}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul{line-height:1em;list-style:none;margin:0;padding:0;white-space:nowrap}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;margin:0;float:left;display:inline;position:relative}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul strong{background:transparent;color:#667;display:block;font-weight:normal;padding:1px 6px 1px 5px;text-decoration:none;text-transform:none}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul > ul a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul > ul strong{width:auto}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:focus,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:hover,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:active{moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:focus,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:hover,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:active{color:#000;text-decoration:none}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active{moz-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-ms-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-o-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-webkit-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);background:#eee;border-color:#ccc}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active strong{color:#000;font-weight:bold}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled{background:white !important}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled strong{color:#8994A9;background:transparent !important;font-weight:normal}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled:hover{moz-box-shadow:0 0 0 white;-ms-box-shadow:0 0 0 white;-o-box-shadow:0 0 0 white;-webkit-box-shadow:0 0 0 white;box-shadow:0 0 0 white}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_first{-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:0px;-webkit-border-bottom-right-radius:0px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-topleft:3px;-moz-border-radius-topright:0px;-moz-border-radius-bottomright:0px;-moz-border-radius-bottomleft:3px;border-top-left-radius:3px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:3px}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_last{-webkit-border-top-left-radius:0px;-webkit-border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:0px;-moz-border-radius-topleft:0px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px;-moz-border-radius-bottomleft:0px;border-top-left-radius:0px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:0px}div.b_tabbedpane_wrapper div.b_tabbedpane_content{clear:both;padding:5px 15px;background:transparent;border:1px solid #d4d4d4}div.b_tabbedpane_wrapper div.b_tabbedpane_content div.b_tabbedpane_content_inner{position:relative;min-height:30em}div.b_segments_container{min-height:25px;padding-top:8px;position:relative;background:url(../openolat/images/divider.png) center top no-repeat}div.b_segments_container div.b_segments{clear:both;position:absolute;left:50%}div.b_segments_container div.b_segments a:hover{text-decoration:none}div.b_segments_container div.b_segments ul{position:relative;left:-50%;list-style-type:none;margin:0}div.b_segments_container div.b_segments ul li{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;margin:0;float:left;display:inline;position:relative}div.b_segments_container div.b_segments ul li a{background:transparent;color:#667;display:block;font-weight:normal;padding:1px 6px 1px 5px;text-decoration:none;text-transform:none}div.b_segments_container div.b_segments ul li a:hover,div.b_segments_container div.b_segments ul li a:active,div.b_segments_container div.b_segments ul li a:focus{text-decoration:none}div.b_segments_container div.b_segments ul li:hover{moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}div.b_segments_container div.b_segments ul li.b_segment_selected{moz-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-ms-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-o-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-webkit-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);background:#eee;border-color:#ccc}div.b_segments_container div.b_segments ul li.b_segment_selected a,div.b_segments_container div.b_segments ul li.b_segment_selected strong{color:#000;font-weight:bold}div.b_segments_container div.b_segments ul li.b_segment_first{-webkit-border-top-left-radius:12px;-webkit-border-top-right-radius:0px;-webkit-border-bottom-right-radius:0px;-webkit-border-bottom-left-radius:12px;-moz-border-radius-topleft:12px;-moz-border-radius-topright:0px;-moz-border-radius-bottomright:0px;-moz-border-radius-bottomleft:12px;border-top-left-radius:12px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:12px}div.b_segments_container div.b_segments ul li.b_segment_last{-webkit-border-top-left-radius:0px;-webkit-border-top-right-radius:12px;-webkit-border-bottom-right-radius:12px;-webkit-border-bottom-left-radius:0px;-moz-border-radius-topleft:0px;-moz-border-radius-topright:12px;-moz-border-radius-bottomright:12px;-moz-border-radius-bottomleft:0px;border-top-left-radius:0px;border-top-right-radius:12px;border-bottom-right-radius:12px;border-bottom-left-radius:0px}div.b_segments_container div.b_segment_content{margin-top:50px;clear:both;padding:5px 15px;background:transparent;border:1px solid #d4d4d4}button{border:none}.b_button{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_button,.b_button span{color:#444;font-size:100%;display:inline-block;padding:0 0.8em;width:auto;line-height:1.9em;text-align:center}.b_button:focus,.b_button:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_button:focus{border:1px solid #025d8c}.b_button:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border:1px solid #025d8c}.b_button.b_button_preferred{background:#dce7ec;background:-moz-linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #dce7ec), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);background:linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);border:1px solid #025d8c}.b_button:focus,.b_button:hover{border:1px solid #aaa}.b_button_dirty{background:white;background:-moz-linear-gradient(top, white 0%, #fff7e0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #fff7e0));background:-webkit-linear-gradient(top, white 0%, #fff7e0 100%);background:-o-linear-gradient(top, white 0%, #fff7e0 100%);background:-ms-linear-gradient(top, white 0%, #fff7e0 100%);background:linear-gradient(top, white 0%, #fff7e0 100%);border-color:#ff9900}.b_button_dirty:focus,.b_button_dirty:hover{text-decoration:none;border:1px solid #ff9f5b;background:white;background:-moz-linear-gradient(top, white 0%, #fff7e0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #fff7e0));background:-webkit-linear-gradient(top, white 0%, #fff7e0 100%);background:-o-linear-gradient(top, white 0%, #fff7e0 100%);background:-ms-linear-gradient(top, white 0%, #fff7e0 100%);background:linear-gradient(top, white 0%, #fff7e0 100%)}.b_disabled.b_button{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border:1px dotted #ccc;background:#fff}.b_disabled.b_button,.b_disabled.b_button span{color:#444;font-size:100%;display:inline-block;padding:0 0.8em;width:auto;line-height:1.9em;text-align:center;cursor:default !important;color:#888}.b_disabled.b_button:focus,.b_disabled.b_button:hover{moz-box-shadow:0 0 0 transparent;-ms-box-shadow:0 0 0 transparent;-o-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent}div.b_button_group{text-align:center;margin:2em 0 1em 0}div.b_button_group div{display:inline}.b_xsmall,sup,sub{font-size:80%}.b_small,small{font-size:90%}a.b_toggle{white-space:nowrap;margin:0 0.5em 0.2em 0;cursor:default;color:#2C2B2B;border:1px solid #aaa;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;display:inline-block;line-height:1.5em;text-align:center;background:url(../openolat/images/toggle_off.png) top left repeat-x}a.b_toggle span{padding:0 0.8em}a.b_toggle:hover{background:#ddd;text-decoration:none}a.b_toggle.b_on:hover{background:#747474}a.b_toggle.b_on,a.b_toggle:active,a.b_toggle.b_on:active{color:white;border:none;padding:1px;moz-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-ms-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-o-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-webkit-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);text-shadow:1px 1px 2px rgba(0, 0, 0, 0.5)}a.b_toggle:focus,a.b_toggle.b_on:focus{text-decoration:none}a.b_toggle:active,a.b_toggle.b_on:active{background:url(../openolat/images/toggle_active.png) top left repeat-x}a.b_toggle.b_on{background:url(../openolat/images/toggle_on.png) top left repeat-x}span.b_toggle.b_disabled{white-space:nowrap;margin:0 0.5em 0.2em 0;padding:0 0.8em;color:#667;border:1px solid #DDD;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;display:inline-block;line-height:1.5em;text-align:center;background:url(../openolat/images/toggle_dis.png) top left repeat-x}a.b_toggle_slide{background:url(../openolat/images/handle.png) -63px 0px no-repeat;height:25px;width:85px;white-space:nowrap;margin:0 0.2em 0.2em 0.2em;color:#2C2B2B;border:1px solid #aaa;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;display:inline-block;text-align:center;vertical-align:middle;position:relative}a.b_toggle_slide span{position:absolute;top:-25px;left:0}a.b_toggle_slide:hover,a.b_toggle_slide:focus,a.b_toggle_slide:active,a.b_toggle_slide.b_on:hover,a.b_toggle_slide.b_on:focus,a.b_toggle_slide.b_on:active{border:1px solid #868686;text-decoration:none}a.b_toggle_slide.b_on{background-position:-16px 0px}a.b_toggle_slide.b_disabled{background:url(../openolat/images/handle_dis.png) -63px 0px no-repeat;height:25px;width:85px;white-space:nowrap;margin:0 0.5em 0.2em 0;color:#2C2B2B;border:1px solid #aaa;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;display:inline-block;text-align:center;vertical-align:middle}a.b_toggle_slide.b_small{background:url(../openolat/images/handle_small.png) -41px 0px no-repeat;height:16px;width:55px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}a.b_toggle_slide span{position:absolute;top:-16px}a.b_toggle_slide.b_small.b_on{background-position:-9px 0px}span.b_toggle_slide.b_disabled{background:url(../openolat/images/handle_small_dis.png) -41px 0px no-repeat;height:16px;width:55px;white-space:nowrap;margin:0 0.5em 0.2em 0;color:#2C2B2B;border:1px solid #aaa;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;display:inline-block;text-align:center;vertical-align:middle}span.b_toggle_slide_legend{font-size:90%}.b_link_back{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_link_back > span{padding:0px 8px 0px 25px;background:transparent url("../openolat/images/arrow_left_big.png") no-repeat 4px center}.b_link_back:focus,.b_link_back:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_link_back:focus{border-color:#025d8c}.b_link_back:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border-color:#025d8c}.b_link_left_icon{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_link_left_icon > span{padding:2px 8px 0px 25px;background-color:transparent;background-repeat:no-repeat;background-position:4px center}.b_link_left_icon:focus,.b_link_left_icon:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_link_left_icon:focus{border-color:#025d8c}.b_link_left_icon:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border-color:#025d8c}.b_link_to_home > span{background-image:url("../openolat/images/card-address.png")}.b_link_course > span{background-image:url("../openolat/images/book-open-next.png")}.b_link_group > span{background-image:url("../openolat/images/document-page-next.png")}.b_link_mail > span{background-image:url("../openolat/images/mail.png")}.b_link_assessment > span{background-image:url("../openolat/images/le_resources/thumb-up.png")}.b_link_ok > span{background-image:url("../openolat/images/tick.png")}.b_link_nok > span{background-image:url("../openolat/images/cross.png")}.b_link_edit > span{background-image:url("../openolat/images/docs/document--pencil.png")}.b_move_left_icon > span{background-image:url("../openolat/images/arrow_left_big.png")}.b_move_right_icon > span{background-image:url("../openolat/images/arrow_right_big.png")}.b_remove_icon > span{background-image:url("../openolat/images/cross_small.png")}.b_deletableentry_wrapper .b_link_left_icon{border:none;background:inherit;margin:0}.b_deletableentry_wrapper .b_link_left_icon:focus,.b_deletableentry_wrapper .b_link_left_icon:hover,.b_deletableentry_wrapper .b_link_left_icon:focus,.b_deletableentry_wrapper .b_link_left_icon:active{text-decoration:none;border:none;moz-box-shadow:0 0 0 transparent;-ms-box-shadow:0 0 0 transparent;-o-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent}div.o_login div.o_login_form{margin-bottom:2em}div.o_login div.o_login_form li{list-style:none}div.o_login div.o_login_form fieldset legend{display:none}div.o_login div.o_login_form input{width:15em;padding:2px 3px 2px 3px}div.b_form div.b_form_desc{padding-bottom:1em;font-style:italic}input,select,textarea{border:1px solid #ACAAAA;background:#F6F6F6;line-height:1.3em;margin:0}textarea{font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{background:#fff;border:1px solid #504D4E}input.b_checkbox,input.b_radio{height:1em;width:1em;border:0;margin:0 2px 0 0}label.b_checkbox_label,label.b_radio_label{padding-left:0.5em}.b_inline_editable{padding:1px 20px 1px 0;vertical-align:middle;min-height:16px}.b_inline_editable:hover{background-position:100% 50%;background-repeat:no-repeat;background-image:url(../openolat/images/pencil-small.png)}span.b_inline_editable:hover{cursor:text !important}fieldset{position:relative;padding:1em;padding-top:1.5em;border:none;border-top:1px solid #94bed3}fieldset legend{font-family:Century Gothic, Apple Gothic, sans-serif;padding:0 5px;font-size:120%;font-weight:bold}div.b_form div.b_form_desc{padding-bottom:1em;font-style:italic}div.b_form div.b_form_general_error{padding:10px 10px 10px 50px;margin-bottom:20px;text-align:left;background:url(../openolat/images/icon_error_32.png) no-repeat 10px 10px;min-height:32px;border:1px solid #990000;color:#990000;font-style:italic}div.b_form div.b_form_spacer{margin:10px 0}div.b_form hr.b_form_spacer{margin:10px 0;border-bottom:1px solid #eee;padding:0}div.b_form hr.b_form_spacer.b_form_horizontal{display:inline-block;width:2em}div.b_form hr.b_form_spacer.b_form_spacer_noline{margin:10px 0;border-bottom:0;padding:0}div.b_form div.b_form_element_wrapper{vertical-align:middle;margin:0.5em 0}div.b_form div.b_form_element_wrapper.b_form_horizontal{vertical-align:middle;margin:0.5em 1em 0.5em 0;float:left;display:inline}div.b_form div.b_form_element_wrapper.b_form_vertical{vertical-align:middle;margin:0.5em 0;float:none;display:block}div.b_form div.b_form_element_wrapper div.b_form_element_label{width:20%;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element_label label{float:left;display:inline;line-height:1.3em}div.b_form div.b_form_element_wrapper div.b_form_element_label span.b_form_mandatory{background:url(../openolat/images/star-small.png) no-repeat;padding-left:16px;height:16px}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_horizontal{width:auto;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_vertical{width:auto;float:none;display:block;margin-top:1em;margin-bottom:0.3em}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_vertical label{float:none}div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:25%;padding:0 2px 0 12px}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_horizontal{margin-left:0;padding-left:0;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_horizontal .b_button{float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_vertical{margin-left:0;margin-top:0.5em;padding-left:0;float:none;display:block;clear:both}div.b_form div.b_form_element_wrapper.b_form_error input,div.b_form div.b_form_element_wrapper.b_form_error select{border:1px solid #990000;background:#ebcccc}div.b_form div.b_form_element_wrapper div.b_form_error_msg{clear:both;color:#990000;font-style:italic;display:block}div.b_form div.b_form_element_wrapper div.b_form_element_wrapper{margin:0}div.b_form div.b_button_group{margin-left:0%;padding-left:0px;text-align:left}div.b_form.b_form_vertical div.b_button_group{text-align:left}div.b_form div.b_form_element div.b_form_example{display:inline;font-size:80%;color:#504D4E}div.b_form div.b_form_element div.b_inline_elements div{display:inline}div.b_form div.b_form_element .b_form_disabled{color:#504D4E}div.b_form div.b_form_element .b_form_element_disabled{color:#9E9C9C;background:#EEEEEE;border:1px solid #CDCBCB}div.b_form div.b_form_element span.b_form_datechooser{background:url(../openolat/images/calendar.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px;padding-top:3px}div.b_form div.b_form_element a.b_form_groupchooser{background:url(../openolat/images/users.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}div.b_form div.b_form_element a.b_form_genericchooser{background:url(../openolat/images/users.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}div.b_form div.b_form_element a.b_form_wikitext{background-repeat:no-repeat;padding-left:12px;line-height:1.5em;font-style:italic}div.b_form div.b_form_element a.b_form_wikitext,div.b_form div.b_form_element .b_wiki_icon{background-image:url(../openolat/images/wiki/wiki_small_9px.png)}div.b_labels_minified div.b_form div.b_form_element_wrapper div.b_form_element_label{width:10%}div.b_labels_minified div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:12%}div.form_shift_left{left:-25%}div.b_button_group div.b_form_element_wrapper{vertical-align:middle;margin:0.5em 0;float:none;display:block}div.b_button_group div.b_form_element_wrapper div.b_form_element_label{width:auto;float:none;display:block}div.b_button_group div.b_form_element_wrapper div.b_form_element{margin-left:0}.b_subcolumns{display:table;width:100%;table-layout:fixed}.b_c25l input,.b_c25r input{max-width:93%}div.calendar{z-index:10000 !important}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element{margin:0;float:left}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element_label{float:none;width:auto;display:block;padding-left:2.5em}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element_label label{float:none}div.b_form_subform{padding-left:2.5em}div.b_form_selection_vertical div.b_form_selection_element{vertical-align:middle;line-height:1.3em;position:relative}div.b_form_selection_vertical div.b_form_selection_element input{vertical-align:middle;line-height:1.3em}div.b_form_selection_horizontal div.b_form_selection_element{float:left;display:inline;padding-right:1em}div.b_form_selection_horizontal div.b_form_selection_element input{vertical-align:middle}div.b_form div.b_form_element div.b_form_togglecheck{font-size:95%;display:block;vertical-align:middle;line-height:16px;margin-top:0.5em}div.b_form div.b_form_element div.b_form_togglecheck input{height:1em;width:1em}div.o_form_wrapper fieldset{min-width:60em}div.form_shift_left{position:inherit;left:-20%}div.mceExternalToolbar{background:#f0f0ee !important;overflow:auto}table.b_choice{padding:0;margin:0}table.b_choice td{padding:0.1em;margin:0}table.b_choice td.b_togglecheck{padding-top:1em}table.b_choice td.b_togglecheck div.b_togglecheck{display:inline;border-top:1px solid #eee}table.b_choice td.b_togglecheck input{margin:0 7px 0 2px}div.b_fileinput{position:relative}div.b_fileinput div.b_fileinput_fakechooser{position:relative;top:0px;left:0px;z-index:1;display:inline;white-space:nowrap}div.b_fileinput div.b_fileinput_fakechooser a{margin-left:5px}div.b_fileinput span.b_fileinput_maxsize{padding:1px 0 1px 1em;font-style:italic;min-height:16px;vertical-align:middle}div.b_fileinput input.b_fileinput_realchooser{position:absolute;top:0;left:0;height:1.8em;z-index:2;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0}div.b_fileinput div.b_button_group{text-align:left;padding-left:0;margin-left:0}.b_fileinput_icon{background-image:url(../openolat/images/drive.png)}div.b_progress div.b_progress_bar{height:12px;border:1px solid #bfbfbf;background:#f3feff}div.b_progress div.b_progress_bar div{height:12px;background:#94bed3;background:-moz-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #94bed3), color-stop(100%, #025d8c));background:-webkit-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-o-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-ms-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:linear-gradient(top, #94bed3 0%, #025d8c 100%)}.b_mark_set{background-image:url("../openolat/images/flag.png") !important}.b_mark_not_set{background-image:url("../openolat/images/flag_off.png") !important}div.b_mark{width:20px;height:20px}div.b_mark div.b_form_element_wrapper{margin:0}div.b_mark div.b_form_element_wrapper div.b_form_element{margin:0;padding:0}div.b_mark a{background-position:center right;background-repeat:no-repeat;display:block;width:20px;height:20px}div.b_mark a span{display:block;width:19px;height:19px}div.b_mark a:hover{text-decoration:none}button::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,input[type="button"]::-moz-focus-inner,input[type="submit"]::-moz-focus-inner,input[type="file"] > input[type="button"]::-moz-focus-inner{padding:0;border:0}table{border-collapse:collapse;margin-bottom:0.5em;border-top:0px solid white;border-bottom:0px solid white}table caption{font-variant:small-caps}table.fixed{table-layout:fixed}table th,table td{padding:0.3em}table thead th{color:inherit;border-bottom:1px solid #ccc}table tbody tr.b_table_odd td{background:#eee}table tbody tr.b_row_selected td{background:#ff9f5b}div.b_table_drag{padding:5px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border:1px solid #025d8c;moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}div.b_table_wrapper table{width:99.5%;margin-left:1px;border:1px solid #eeeeee}div.b_table_wrapper table thead,div.b_table_wrapper table thead a{color:#025d8c}div.b_table_wrapper table tbody tr:hover td{background:#ffdbc1}div.b_table_wrapper table tbody tr.b_row_selected:hover td{background:#ff9f5b}div.b_table_wrapper table tbody a{color:#025d8c}div.b_table_wrapper table tbody a:hover{color:#025d8c}div.b_table_wrapper div.b_table_filter{float:left;display:inline;font-size:95%;margin:7px 10px 2px 0}div.b_table_wrapper div.b_table_filter label{font-style:italic;margin:5px 0 2px 0}div.b_table_wrapper div.b_table_filter select{border:1px solid #ACAAAA}div.b_table_wrapper div.b_clearfix div.b_floatbox{margin:5px 0 0 0}div.b_table_wrapper div.b_table_count{font-size:95%;float:left;line-height:16px;vertical-align:bottom;margin:3px;font-size:95%}div.b_table_wrapper a.b_table_prefs,div.b_table_wrapper a.b_table_download{float:right;display:block;background-repeat:no-repeat;background-position:top left;width:16px;height:16px;margin:3px}div.b_table_wrapper a.b_table_prefs{background-image:url(../openolat/images/table_gear.png)}div.b_table_wrapper a.b_table_download{background-image:url(../openolat/images/table_download.png)}div.b_table_wrapper div.b_table_buttons{text-align:center;margin:1.5em 0 1em 0}div.b_table_wrapper div.b_table_empty{margin:1em 0}div.b_table_wrapper div.b_table_footer{float:left;margin:5px 0 0 10px}div.b_table_wrapper div.dataTables_info{float:left;margin:5px 0 0 0}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_previous{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_previous:hover{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_disabled_previous{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_next{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_next:hover{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .paginate_disabled_next{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .sorting{background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_asc{background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_desc{background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_asc_disabled{background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_desc_disabled{background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper div.dataTables_scrollBody table.dataTable{border-top:none}div.b_table_wrapper .dataTables_wrapper div.dataTables_scrollBody table.dataTable thead th{border:none}div.b_table_wrapper .dataTables_wrapper table.dataTable thead th{border-bottom:1px solid #ccc;color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tbody a{color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tbody a:hover{color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.even td.sorting_1{background:#eee}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.odd{background-color:#fff}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.odd td.sorting_1{background:#fff}div.b_table_page{font-size:95%;text-align:center}div.b_table_page a{margin:0;padding:2px}div.b_table_page a.b_table_page_active{font-weight:bold;color:#000}div.b_table_page a.b_table_backward{background:url(../openolat/images/arrow_left.png) no-repeat center left;padding-left:16px}div.b_table_page a.b_table_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}div.b_table_page a.b_table_first_page{background:url(../openolat/images/home.png) no-repeat center left;padding-left:18px}div.b_table_page_all{font-size:95%;text-align:center}a.b_dev{position:absolute;left:0;top:0;z-index:4000;background:red url("../openolat/images/bug.png") no-repeat;width:16px;height:16px;border:1px solid #000}#b_devcon_main{background-color:#ccddff;position:absolute;z-index:4000;top:10px;left:5%;width:90%;text-align:left;border:1px solid #000}#b_devcon_handle{cursor:move;background:blue url(../openolat/images/bug.png) no-repeat 4px 50%;line-height:2em;padding-left:24px;color:white}a#b_devcon_handle_collapse{cursor:pointer;background:url("../openolat/images/tree_parent_open.png") no-repeat;width:15px;height:15px;float:right;margin:3px}a#b_devcon_handle_expand{cursor:pointer;background:url("../openolat/images/tree_parent_closed.png") no-repeat;width:15px;height:15px;float:right;margin:3px}a.b_devcon_handle_close{cursor:pointer;background:url(../openolat/images/close.png) no-repeat;width:15px;height:15px;float:right;margin:3px}#b_devcon_content{font-size:90%;padding:5px;border-top:0px solid #000;background:transparent}#b_devcon_content ul{float:left;margin:0;padding:0;list-style:none;white-space:nowrap}#b_devcon_content li{margin:0;padding:0 10px 0 0;float:left}#b_devcon_content fieldset{border-top:1px solid #ccc;margin:0;padding:8px}#b_devcon_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}#b_js_log textarea#o_debug_cons{width:99%;height:15em;font-family:monospace;font-size:110%;margin:5px 0 5px 0}iframe.o_debug_json{position:fixed;width:90%;margin-left:5%;bottom:4px;height:300px;background:white;border:2px solid #ccd8e7;z-index:90000}div.b_briefcase div.b_briefcase_foldercomp{margin-top:0.5em}div.b_briefcase_foldercomp div.b_briefcase_createactions{margin:0.5em 0}div.b_briefcase_foldercomp div.b_briefcase_createactions ul{list-style:none;margin:0;padding:0;white-space:nowrap;font-size:95%}div.b_briefcase_foldercomp div.b_briefcase_createactions ul li{float:right;display:inline;margin:0 0 0 1em;padding:0 0 0 3px;position:relative}div.b_briefcase_foldercomp div.b_briefcase_createactions ul li a{background-position:0 50%;background-repeat:no-repeat;padding:2px 0 2px 20px}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_upload{background-image:url(../openolat/images/docs/document_upload.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_newfolder{background-image:url(../openolat/images/folder_new.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_newfile{background-image:url(../openolat/images/docs/document_add.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_deletedfiles{background-image:url(../openolat/images/docs/document_remove.png)}div.b_briefcase_foldercomp div.b_briefcase_breadcrumb{clear:both;padding:1px 0 1px 20px;margin:0.5em 0 0 0;background:url(../openolat/images/folder_open.png) no-repeat 0 50%}div.b_briefcase_foldercomp div.b_briefcase_empty{clear:both;margin-top:0.5em;font-style:italic}div.b_briefcase_foldercomp table.b_briefcase_filetable{clear:both;border-collapse:collapse;margin-bottom:0.5em;background:#fff;width:99.9%;border:1px solid #eee}div.b_briefcase_foldercomp table.b_briefcase_filetable thead{color:#000}div.b_briefcase_foldercomp table.b_briefcase_filetable thead a,div.b_briefcase_foldercomp table.b_briefcase_filetable thead span{color:#4F576A;font-weight:bold}div.b_briefcase_foldercomp table.b_briefcase_filetable thead a:hover,div.b_briefcase_foldercomp table.b_briefcase_filetable thead a:focus{color:#000000;text-decoration:none;background-color:transparent}div.b_briefcase_foldercomp table.b_briefcase_filetable th,div.b_briefcase_foldercomp table.b_briefcase_filetable td{white-space:nowrap;text-align:right;padding-right:1em}div.b_briefcase_foldercomp table.b_briefcase_filetable th.b_last_child,div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_last_child{padding-right:0}div.b_briefcase_foldercomp table.b_briefcase_filetable th.b_first_child,div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_first_child{width:60%;text-align:left}div.b_briefcase_foldercomp table.b_briefcase_filetable td input.b_checkbox{margin:0 4px 0 0}div.b_briefcase_foldercomp table.b_briefcase_filetable td a:hover,div.b_briefcase_foldercomp table.b_briefcase_filetable td a:focus{background-color:transparent}div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_last_child{padding-left:0}div.b_briefcase_foldercomp table.b_briefcase_filetable tr:hover td{background:#ffdbc1}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions{border:0;padding:0;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions td{border:0;padding:0 0 0 3px;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions tr{border:0;padding:0;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_edit_file_icon{background-image:url(../openolat/images/docs/document--pencil.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_edit_meta_icon{background-image:url(../openolat/images/docs/document_metadata_edit.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_edit_meta_dis_icon{background-image:url(../openolat/images/docs/document_metadata_edit.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_versions_icon{background-image:url(../openolat/images/docs/document_versions.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_versions_dis_icon{background-image:url(../openolat/images/docs/document_versions.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_locked_file_icon{background-image:url(../openolat/images/locked.png)}div.b_briefcase_preview{background-color:white;width:200px;height:200px;border:1px solid #8EAACE;margin-top:2px}div.b_briefcase div.b_briefcase_searchcomp{float:left;display:inline;margin:0.5em 0;width:14em}div.b_briefcase div.b_briefcase_searchcomp input{width:10em}div.b_briefcase div.b_briefcase_searchcomp div.b_form_element_wrapper.b_form_horizontal{margin:0}div.b_briefcase div.b_briefcase_commandbuttons{margin:1em 0}div.b_briefcase div.b_briefcase_webdav{margin:0.5em 0}div.b_briefcase div.b_briefcase_quota{clear:both;margin-top:1em;padding-top:1em;border-top:1px solid #000}div.b_briefcase_meta{size:0.8em}div.b_briefcase_meta p{font-style:italic;margin:0;padding-top:2px}div.b_send_documents ol.textbox-outer{margin-left:0;border:1px solid #ACAAAA;background:#F6F6F6;line-height:1.3em}div.b_send_documents ol li{margin-left:0}div.b_send_documents textarea{overflow:auto;resize:none}@media all{div.o_wiki_wrapper{clear:both}div.o_wiki_wrapper div.o_wikimod_btn{position:relative}div.o_wiki_wrapper div.o_wikimod_btn a{margin-bottom:9px;background-repeat:no-repeat;background-position:center center;width:20px;height:19px;float:left;display:inline;padding-left:2px;border:1px solid #ccc;background-color:#eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;margin-right:2px}div.o_wiki_wrapper div.o_wikimod_btn a:hover{border:1px solid #025d8c}div.o_wiki_wrapper div.o_wikimod_btn div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:0;right:0}div.o_wiki_wrapper a.o_wikimod_btn_bold{background-image:url(../openolat/images/wiki/edit-bold.png)}div.o_wiki_wrapper a.o_wikimod_btn_italic{background-image:url(../openolat/images/wiki/edit-italic.png)}div.o_wiki_wrapper a.o_wikimod_btn_link{background:url(../openolat/images/wiki/chain.png)}div.o_wiki_wrapper a.o_wikimod_btn_extlink{background:url(../openolat/images/wiki/chain--arrow.png)}div.o_wiki_wrapper a.o_wikimod_btn_headline{background:url(../openolat/images/wiki/edit-heading.png)}div.o_wiki_wrapper a.o_wikimod_btn_image{background:url(../openolat/images/wiki/image-medium.png)}div.o_wiki_wrapper a.o_wikimod_btn_media{background:url(../openolat/images/music-beam.png)}div.o_wiki_wrapper a.o_wikimod_btn_math{background:url(../openolat/images/wiki/edit-math.png)}div.o_wiki_wrapper a.o_wikimod_btn_nowiki{background:url(../openolat/images/wiki/edit-nowiki.png)}div.o_wiki_wrapper a.o_wikimod_btn_hr{background:url(../openolat/images/wiki/edit-hr.png)}div.o_wiki_wrapper a.o_wikimod_btn_list{background:url(../openolat/images/wiki/edit-list.png)}div.o_wiki_wrapper a.o_wikimod_btn_numlist{background:url(../openolat/images/wiki/edit-list-order.png)}div.o_wiki_wrapper .b_eportfolio_add,div.o_wiki_wrapper .b_eportfolio_add_again{position:absolute;top:28px;right:3px;z-index:99}div.o_wiki_wrapper h1{font-size:1.6em}div.o_wiki_wrapper h2{font-size:1.4em}div.o_wiki_wrapper h3{font-size:1.2em}div.o_wiki_wrapper h4{font-size:1.1em}div.o_wiki_wrapper h5{font-size:1.0em}div.o_wikimod_linkchooser{clear:both;float:left;display:inline}div.o_wikimod_filechooser{margin:0 2em;float:left;display:inline}div.o_wikimod_nav{font-size:90%;padding-top:1.5em}div.o_wikimod_nav legend{font-size:95%}div.o_wikimod_nav fieldset{padding:0.5em}div.o_wikimod_nav input{width:99%}div.o_wikimod_nav ul{margin:0;padding:0}div.o_wikimod_nav div.b_button_group{margin:0.5em 0;text-align:left}div.o_wikimod_nav div.b_form div.b_form_element_wrapper.b_form_horizontal{margin:0}div.o_wikimod_nav .b_form_element_wrapper .b_form_element{padding:0}div.o_wikimod_nav div.b_form_element_wrapper div.b_form_element.b_form_horizontal .b_button{margin:0.5em 0}div.o_wikimod_editform_wrapper{clear:both;padding:0.5em 0 0 0}div.o_wikimod_editform_wrapper div.b_form div.b_form_element_wrapper div.b_form_element_label{display:none}div.o_wikimod_editform_wrapper div.b_form div.b_form_element_wrapper div.b_form_element{clear:both;margin-left:0;padding:0 5px 0 0}div.o_wikimod_editform_wrapper div.b_form div.b_button_group{margin-left:0;text-align:center}div.o_wikimod-article-box table[border="1"]{border-collapse:collapse;border:1px solid #BFBFBF}h1.o_wikimod_heading,h3.o_wikimod_heading{margin:0 0 1em 0;padding:.5em 0 .17em 0;border-bottom:1px solid #BFBFBF}#o_wikimod_uploader{margin:1em 0 0 0}.o_wikimod_version{border:1px solid #BFBFBF;padding:4px;margin-top:5px}.o_wikimod_diff{border:1px solid #BFBFBF;padding:4px;margin:0px}.o_wikimod_warn{color:#DF9719}.o_wiki_error{background-color:#DF9719}.o_wikimod_ins{background-color:#A4DCA4}.o_wikimod_old{background-color:#FFCCCC}.o_wikimod_new{background-color:#A4DCA4}.o_wikimod_del{background-color:#FFCCCC}.wiki-image{float:right;padding:10px;clear:right}.wiki-file-deleted{text-decoration:line-through}img.wikiimg{border:0px}a.wikiimg{text-decoration:none;color:inherit;font-weight:inherit}div.imgcaption{padding:0.3em 0em 0.2em 0.3em}div.imgleft{clear:left;float:left;margin:0.3em 0.3em 0.3em 0em;text-align:left}div.imgright{clear:right;float:right;margin:0.3em 0em 0.3em 0.3em;text-align:right}div.o_wikimod-article-box div{width:auto !important}div.imgcenter{clear:both;overflow:hidden;text-align:center;margin:0.3em 0em 0.3em 0em}div.imgthumb{border:1px solid #bbbbbb;padding:0.3em}table.gallery{border:1px solid #B8B8DB;margin:2px;padding:2px;background-color:white}table.gallery tr{vertical-align:middle}table.gallery td{background-color:#EEEEEE;border:solid 2px #B8B8DB;text-align:center;vertical-align:middle;width:150px}img.gallery{border:1px solid #B8B8DB;padding:0.3em}a.edit{font-style:italic;color:#E98F8F}a.externallink:before{content:url("../openolat/images/external_link.png");padding-right:2px}pre{padding:1em;border:1px dashed #B8B8DB;color:black;background-color:#EEEEEE;line-height:1.1em}}div.o_forum div.o_forum_switch{font-size:90%}div.o_forum div.o_forum_message{margin:1em 0 1em 0;padding:0.5em;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;background:#eeeeee}div.o_forum div.o_forum_message_header_wrapper{min-height:24px}div.o_forum div.o_forum_message_header_wrapper div.o_forum_message_header{min-height:24px}div.o_forum div.o_forum_message_title{vertical-align:middle;padding:2px 5px 2px 5px;min-height:24px}div.o_forum div.o_forum_message_title strong{font-weight:bold}div.o_forum div.o_forum_message_new div.o_forum_message_title strong{background:url(../openolat/images/new-text.png) no-repeat top right;padding-right:20px}div.o_forum div.o_forum_message_creator{width:100px;padding:0.5em 12px 0px 21px;font-size:95%;color:#4F576A;float:right;border-left:1px solid #fff}div.o_forum div.o_forum_message_creator strong{font-weight:normal}div.o_forum div.o_forum_message_creator img{border:1px solid #4F576A}div.o_forum div.o_forum_message_body{padding:0.5em;background:transparent;margin-right:155px}div.o_forum div.o_forum_message_attachments{margin:2em 0 0.5em 0;border-top:1px solid #555555;font-size:95%}div.o_forum div.o_forum_message_attachments strong{display:block;margin:0.5em 0;font-weight:normal;font-style:italic}div.o_forum div.o_forum_message_attachments ul{list-style:none;margin:0;padding:0}div.o_forum div.o_forum_message_attachments li{margin:0;padding:0}div.o_forum div.o_forum_message_attachments a{background-repeat:no-repeat;background-position:0 50%;padding-left:20px;padding-top:2px;padding-bottom:2px}div.o_forum div.o_forum_message_modified{clear:both;border-top:1px solid #506D90;padding:0.5em 0 0 0;font-size:95%;font-style:italic;text-align:center;color:#98221F}div.o_forum div.o_forum_message_actions{text-align:center;padding:0.2em 1em;padding-top:0.8em}span.o_forum_thread_sticky{font-weight:bold}span.o_forum_status_thread_icon{background-image:url(../openolat/images/forum/forum.png)}span.o_forum_status_sticky_closed_icon{background-image:url(../openolat/images/forum/sticky-note-pin_locked.png)}span.o_forum_status_sticky_icon{background-image:url(../openolat/images/forum/sticky-note-pin.png)}span.o_forum_status_closed_icon{background-image:url(../openolat/images/forum/forum_locked.png)}.b_quote_wrapper{position:relative;margin:20px}.b_quote_author{background:url(../openolat/images/forum/quote.gif) no-repeat left bottom;padding:10px 5px 15px 11px;position:relative;top:1px;font-style:italic;color:#A2A2A2}blockquote.b_quote{margin:0;border:1px solid #e5e5e5;padding:8px 10px 6px;color:#646464;background:#fff;font-size:100%}div.o_forum_peekview{margin:1em 0 1em 0}div.o_forum_peekview h5{font-size:1em;position:relative;left:-20px}div.o_forum_peekview div.o_forum_peekview_message{padding-left:20px;padding-bottom:15px}div.o_forum_peekview div.b_quote_wrapper{display:none}.o_forum_message_icon{background-image:url(../openolat/images/forum/balloon-white-left.png)}div.o_forum_toolbar{float:left;display:inline;width:75%}div#o_forum_fulltextsearch{float:right;display:inline}div#o_forum_fulltextsearch input{width:10em}div#o_forum_fulltextsearch div.b_form_element_wrapper.b_form_horizontal{margin:0}div.b_struct_edit_btn{float:right;display:inline}div.o_ep_struct_editor div.b_subcr{min-height:35em;background:white;padding-right:1em;overflow-x:auto}.b_artefact{margin:5px;border:1px solid #ddd;padding:1em;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 2px lightGrey;-ms-box-shadow:0 1px 2px lightGrey;-o-box-shadow:0 1px 2px lightGrey;-webkit-box-shadow:0 1px 2px lightGrey;box-shadow:0 1px 2px lightGrey;background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%)}div.o_ep_toc_editor div.b_subcl{min-height:35em}div.o_ep_struct_editor div.b_subcr{min-height:35em;background:#FFF;padding-right:1em;overflow-x:auto}div.b_struct_edit_btn{float:right;display:inline}div.b_struct_submit_assess_btn{float:right;display:inline}.b_artefact div.b_actions{margin-top:2em}.b_artefact div.b_desc{font-style:italic;margin:1em 0}.b_ep_artAttribLink{background-image:url(../openolat/images/table_gear.png)}div.b_artefact_closed{font-size:25px;float:right;background:url(../openolat/images/locked.png) top right no-repeat}div.b_eportfolio_preview_c100l .b_artefact{margin:3px}div.b_eportfolio_preview_c33l .b_artefact{font-size:85%;margin:3px}.b_ep_nolink{color:#000000}.b_ep_nolink:hover{color:#000000;text-decoration:none}.b_ep_multiartefacts div.b_ep_add_message_with_arrow{position:relative;top:-50px}.b_ep_multiartefacts div.b_artefact_count{margin:1em 0 1em 0}a.b_ep_options{background:url(../openolat/images/gear.png) top left no-repeat;width:16px;height:16px;display:block}.b_ep_liveblog_icon{background-image:url(../openolat/images/portfolio/ep_liveblog_icon.png)}div.b_portfolio_toc ul{margin:0}div.b_portfolio_toc li{list-style-type:none}div.b_portfolio_toc li a{font-size:0.8em;text-decoration:none}div.b_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}div.b_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}div.b_portfolio_toc li.level3{padding-left:40px}div.b_portfolio_toc .link{float:right;margin-right:0px}div.b_portfolio_toc .commentlink{float:right;margin-right:10%}div.b_portfolio_toc .type_artefact{font-style:italic}div.b_portfolio_toc .type_map,div.b_portfolio_toc .type_page,div.b_portfolio_toc .type_struct,div.b_portfolio_toc .type_artefact{background-position:center left;background-repeat:no-repeat;padding-left:20px}a.b_eportfolio_add{background:url(../openolat/images/portfolio/ep_add_icon.png) top left no-repeat;display:block;width:16px;height:16px}td a.b_eportfolio_add{float:right;padding-right:2px}a.b_eportfolio_add_again,span.b_eportfolio_add_again{background:url(../openolat/images/portfolio/ep_add_again_icon.png) top left no-repeat;display:block;width:16px;height:16px}.o_efficiencystatement a.b_eportfolio_add_again{float:right}a.b_eportfolio_link{background:url(../openolat/images/portfolio/ep_link_icon.png) top left no-repeat;display:block;width:16px;height:16px}.b_eportfolio_link{background-image:url(../openolat/images/portfolio/ep_link_icon.png)}ul.b_eportfolio_maps{margin:0;padding:0}ul.b_eportfolio_maps li{display:block;float:left;position:relative;width:195px;height:320px;padding:60px 60px 40px 65px;margin:0.5em;background:url(../openolat/images/portfolio/eportfolio_map_default.png) top left no-repeat;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:14px;-webkit-border-bottom-right-radius:14px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-topright:14px;-moz-border-radius-bottomright:14px;-moz-border-radius-bottomleft:4px;border-top-left-radius:4px;border-top-right-radius:14px;border-bottom-right-radius:14px;border-bottom-left-radius:4px;moz-box-shadow:0 1px 3px lightgray;-ms-box-shadow:0 1px 3px lightgray;-o-box-shadow:0 1px 3px lightgray;-webkit-box-shadow:0 1px 3px lightgray;box-shadow:0 1px 3px lightgray}ul.b_eportfolio_maps li .b_map_info{position:absolute;bottom:40px;width:inherit;font-size:0.9em}ul.b_eportfolio_maps li .b_map_info a.b_open_icon{font-size:1.2em;position:absolute;bottom:170px;right:-10px}.b_eportfolio_changelog .b_form{margin-top:20px;margin-bottom:20px}.b_eportfolio_changelog li{list-style:none}.b_eportfolio_changelog h5{margin-top:16px}.b_eportfolio_mapowner{font-style:italic;margin-bottom:8px}.b_eportfolio_mapowner div{display:inline}div.b_eportfolio_share_with_user{clear:both}div.b_eportfolio_share_with_user p{vertical-align:middle}div.b_eportfolio_share_with_user p span{float:none}@media all{.epmst-green{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green,ul.b_eportfolio_maps li.template.epmst-green{background:#ecf69a;background:#ecf69a -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ecf69a), to(#ecf69a));background:#ecf69a -moz-linear-gradient(43% 71% 101deg, #ecf69a, #ecf69a);background:#ecf69a -o-linear-gradient(#ecf69a, #ecf69a);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ecf69a', EndColorStr='#ecf69a');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-green > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green{margin-top:6px;background:#ecf69a;background:#ecf69a -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ecf69a), to(#ecf69a));background:#ecf69a -moz-linear-gradient(43% 71% 101deg, #ecf69a, #ecf69a);background:#ecf69a -o-linear-gradient(#ecf69a, #ecf69a);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ecf69a', EndColorStr='#ecf69a');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green div.b_map_header h4{color:#444444}.epmst-green div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green div.b_ep_actualpage h1,.epmst-green div.b_ep_actualpage h4{color:#444444}.epmst-green div.b_pagination{float:none;position:static;width:100%}.epmst-green div.b_pagination ul{margin:0}.epmst-green div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green div.b_pagination li span,.epmst-green div.b_pagination li a,.epmst-green div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green div.b_eportfolio_page,.epmst-green div.b_portfolio_toc,.epmst-green div.b_eportfolio_edit{background-image:none}.epmst-green div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green2,ul.b_eportfolio_maps li.template.epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #99e44d, #cbf1a5);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green2{margin-top:6px;background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #99e44d, #cbf1a5);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green2 div.b_map_header h4{color:#555555}.epmst-green2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green2 div.b_ep_actualpage h1,.epmst-green2 div.b_ep_actualpage h4{color:#555555}.epmst-green2 div.b_pagination{float:none;position:static;width:100%}.epmst-green2 div.b_pagination ul{margin:0}.epmst-green2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green2 div.b_pagination li span,.epmst-green2 div.b_pagination li a,.epmst-green2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green2 div.b_eportfolio_page,.epmst-green2 div.b_portfolio_toc,.epmst-green2 div.b_eportfolio_edit{background-image:none}.epmst-green2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green3,ul.b_eportfolio_maps li.template.epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #dff0c1, #a0d346);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green3{margin-top:6px;background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #dff0c1, #a0d346);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green3 div.b_map_header h4{color:#555555}.epmst-green3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green3 div.b_ep_actualpage h1,.epmst-green3 div.b_ep_actualpage h4{color:#555555}.epmst-green3 div.b_pagination{float:none;position:static;width:100%}.epmst-green3 div.b_pagination ul{margin:0}.epmst-green3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green3 div.b_pagination li span,.epmst-green3 div.b_pagination li a,.epmst-green3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green3 div.b_eportfolio_page,.epmst-green3 div.b_portfolio_toc,.epmst-green3 div.b_eportfolio_edit{background-image:none}.epmst-green3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green4,ul.b_eportfolio_maps li.template.epmst-green4{background:#d7dbb5;background:#d7dbb5 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#d7dbb5), to(#d7dbb5));background:#d7dbb5 -moz-linear-gradient(43% 71% 101deg, #d7dbb5, #d7dbb5);background:#d7dbb5 -o-linear-gradient(#d7dbb5, #d7dbb5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#d7dbb5', EndColorStr='#d7dbb5');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green4{margin-top:6px;background:#d7dbb5;background:#d7dbb5 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#d7dbb5), to(#d7dbb5));background:#d7dbb5 -moz-linear-gradient(43% 71% 101deg, #d7dbb5, #d7dbb5);background:#d7dbb5 -o-linear-gradient(#d7dbb5, #d7dbb5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#d7dbb5', EndColorStr='#d7dbb5');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green4 div.b_map_header h4{color:#555555}.epmst-green4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green4 div.b_ep_actualpage h1,.epmst-green4 div.b_ep_actualpage h4{color:#555555}.epmst-green4 div.b_pagination{float:none;position:static;width:100%}.epmst-green4 div.b_pagination ul{margin:0}.epmst-green4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green4 div.b_pagination li span,.epmst-green4 div.b_pagination li a,.epmst-green4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green4 div.b_eportfolio_page,.epmst-green4 div.b_portfolio_toc,.epmst-green4 div.b_eportfolio_edit{background-image:none}.epmst-green4 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red,ul.b_eportfolio_maps li.template.epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba71, #ffba99);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red{margin-top:6px;background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba71, #ffba99);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red div.b_map_header h4{color:#444444}.epmst-red div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red div.b_ep_actualpage h1,.epmst-red div.b_ep_actualpage h4{color:#444444}.epmst-red div.b_pagination{float:none;position:static;width:100%}.epmst-red div.b_pagination ul{margin:0}.epmst-red div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red div.b_pagination li span,.epmst-red div.b_pagination li a,.epmst-red div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red div.b_eportfolio_page,.epmst-red div.b_portfolio_toc,.epmst-red div.b_eportfolio_edit{background-image:none}.epmst-red div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red2,ul.b_eportfolio_maps li.template.epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9772, #ff9780);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red2{margin-top:6px;background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9772, #ff9780);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red2 div.b_map_header h4{color:#444444}.epmst-red2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red2 div.b_ep_actualpage h1,.epmst-red2 div.b_ep_actualpage h4{color:#444444}.epmst-red2 div.b_pagination{float:none;position:static;width:100%}.epmst-red2 div.b_pagination ul{margin:0}.epmst-red2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red2 div.b_pagination li span,.epmst-red2 div.b_pagination li a,.epmst-red2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red2 div.b_eportfolio_page,.epmst-red2 div.b_portfolio_toc,.epmst-red2 div.b_eportfolio_edit{background-image:none}.epmst-red2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red3,ul.b_eportfolio_maps li.template.epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afbb, #e8afa0);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red3{margin-top:6px;background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afbb, #e8afa0);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red3 div.b_map_header h4{color:#444444}.epmst-red3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red3 div.b_ep_actualpage h1,.epmst-red3 div.b_ep_actualpage h4{color:#444444}.epmst-red3 div.b_pagination{float:none;position:static;width:100%}.epmst-red3 div.b_pagination ul{margin:0}.epmst-red3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red3 div.b_pagination li span,.epmst-red3 div.b_pagination li a,.epmst-red3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red3 div.b_eportfolio_page,.epmst-red3 div.b_portfolio_toc,.epmst-red3 div.b_eportfolio_edit{background-image:none}.epmst-red3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red4,ul.b_eportfolio_maps li.template.epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffa800, #ffaf00);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red4{margin-top:6px;background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffa800, #ffaf00);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red4 div.b_map_header h4{color:#444444}.epmst-red4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red4 div.b_ep_actualpage h1,.epmst-red4 div.b_ep_actualpage h4{color:#444444}.epmst-red4 div.b_pagination{float:none;position:static;width:100%}.epmst-red4 div.b_pagination ul{margin:0}.epmst-red4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red4 div.b_pagination li span,.epmst-red4 div.b_pagination li a,.epmst-red4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red4 div.b_eportfolio_page,.epmst-red4 div.b_portfolio_toc,.epmst-red4 div.b_eportfolio_edit{background-image:none}.epmst-red4 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue,ul.b_eportfolio_maps li.template.epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #00d2f8, #4a9ead);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue{margin-top:6px;background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #00d2f8, #4a9ead);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue div.b_map_header h4{color:#444444}.epmst-blue div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue div.b_ep_actualpage h1,.epmst-blue div.b_ep_actualpage h4{color:#444444}.epmst-blue div.b_pagination{float:none;position:static;width:100%}.epmst-blue div.b_pagination ul{margin:0}.epmst-blue div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue div.b_pagination li span,.epmst-blue div.b_pagination li a,.epmst-blue div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue div.b_eportfolio_page,.epmst-blue div.b_portfolio_toc,.epmst-blue div.b_eportfolio_edit{background-image:none}.epmst-blue div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue2,ul.b_eportfolio_maps li.template.epmst-blue2{background:#c4f6ff;background:#c4f6ff -webkit-gradient(linear, 37% 20%, 53% 100%, from(#c4f6ff), to(#c4f6ff));background:#c4f6ff -moz-linear-gradient(43% 71% 101deg, #c4f6ff, #c4f6ff);background:#c4f6ff -o-linear-gradient(#c4f6ff, #c4f6ff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#c4f6ff', EndColorStr='#c4f6ff');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue2{margin-top:6px;background:#c4f6ff;background:#c4f6ff -webkit-gradient(linear, 37% 20%, 53% 100%, from(#c4f6ff), to(#c4f6ff));background:#c4f6ff -moz-linear-gradient(43% 71% 101deg, #c4f6ff, #c4f6ff);background:#c4f6ff -o-linear-gradient(#c4f6ff, #c4f6ff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#c4f6ff', EndColorStr='#c4f6ff');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue2 div.b_map_header h4{color:#444444}.epmst-blue2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue2 div.b_ep_actualpage h1,.epmst-blue2 div.b_ep_actualpage h4{color:#444444}.epmst-blue2 div.b_pagination{float:none;position:static;width:100%}.epmst-blue2 div.b_pagination ul{margin:0}.epmst-blue2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue2 div.b_pagination li span,.epmst-blue2 div.b_pagination li a,.epmst-blue2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue2 div.b_eportfolio_page,.epmst-blue2 div.b_portfolio_toc,.epmst-blue2 div.b_eportfolio_edit{background-image:none}.epmst-blue2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue3,ul.b_eportfolio_maps li.template.epmst-blue3{background:#b3e2f7;background:#b3e2f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#b3e2f7), to(#b3e2f7));background:#b3e2f7 -moz-linear-gradient(43% 71% 101deg, #b3e2f7, #b3e2f7);background:#b3e2f7 -o-linear-gradient(#b3e2f7, #b3e2f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#b3e2f7', EndColorStr='#b3e2f7');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue3{margin-top:6px;background:#b3e2f7;background:#b3e2f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#b3e2f7), to(#b3e2f7));background:#b3e2f7 -moz-linear-gradient(43% 71% 101deg, #b3e2f7, #b3e2f7);background:#b3e2f7 -o-linear-gradient(#b3e2f7, #b3e2f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#b3e2f7', EndColorStr='#b3e2f7');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue3 div.b_map_header h4{color:#444444}.epmst-blue3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue3 div.b_ep_actualpage h1,.epmst-blue3 div.b_ep_actualpage h4{color:#444444}.epmst-blue3 div.b_pagination{float:none;position:static;width:100%}.epmst-blue3 div.b_pagination ul{margin:0}.epmst-blue3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue3 div.b_pagination li span,.epmst-blue3 div.b_pagination li a,.epmst-blue3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue3 div.b_eportfolio_page,.epmst-blue3 div.b_portfolio_toc,.epmst-blue3 div.b_eportfolio_edit{background-image:none}.epmst-blue3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue4,ul.b_eportfolio_maps li.template.epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #dee7f7, #c1e9fd);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue4{margin-top:6px;background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #dee7f7, #c1e9fd);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue4 div.b_map_header h4{color:#444444}.epmst-blue4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue4 div.b_ep_actualpage h1,.epmst-blue4 div.b_ep_actualpage h4{color:#444444}.epmst-blue4 div.b_pagination{float:none;position:static;width:100%}.epmst-blue4 div.b_pagination ul{margin:0}.epmst-blue4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue4 div.b_pagination li span,.epmst-blue4 div.b_pagination li a,.epmst-blue4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue4 div.b_eportfolio_page,.epmst-blue4 div.b_portfolio_toc,.epmst-blue4 div.b_eportfolio_edit{background-image:none}.epmst-blue4 div.b_pagination li.b_changelog{float:right}}li.default .b_map_info p{color:#bbb}li.comic .b_map_info p{color:#88a5c4}li.leather .b_map_info p{color:#C2A074}.b_map_page{text-align:center;clear:left}.b_map_page_all{text-align:center}.b_map_page > span{padding-right:3px}.b_map_page a.b_map_page_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}ul.b_eportfolio_maps li.leather{background:url(../openolat/images/portfolio/eportfolio_map_leather.png) top left no-repeat;border:none}ul.b_eportfolio_maps li.leather a{color:#fad9a4}ul.b_eportfolio_maps li.comic{background:url(../openolat/images/portfolio/eportfolio_map_comic.png) top left no-repeat;border:none}ul.b_eportfolio_maps li.template.default{background-image:url(../openolat/images/portfolio/eportfolio_map_default_template.png)}ul.b_eportfolio_maps li.template.comic{background-image:url(../openolat/images/portfolio/eportfolio_map_comic_template.png)}ul.b_eportfolio_maps li.template.leather{background-image:url(../openolat/images/portfolio/eportfolio_map_leather_template.png)}.b_map_page{text-align:center;clear:left}.b_map_page_all{text-align:center}.b_map_page > span{padding-right:3px}.b_map_page a.b_map_page_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}.b_eportfolio_map{background:white;padding:1.5em;min-height:30em}.b_eportfolio_map .b_ep_relative{position:relative}.b_eportfolio_toolbar div{display:inline}.b_eportfolio_toolbar{text-align:right;width:100%;border-bottom:1px solid #acaaaa;padding:1px 2px 4px 2px;margin-bottom:6px}.b_eportfolio_map a.b_eportfolio_add_link,.b_eportfolio_map a.b_eportfolio_del_link{float:right;display:inline;background-repeat:no-repeat;margin-left:0.5em;width:16px;height:16px;text-decoration:none}.b_eportfolio_toolbar a.b_eportfolio_add_link,.b_eportfolio_map a.b_eportfolio_del_link{float:none;display:inline-block;background-repeat:no-repeat;margin-left:0;margin-right:0.5em;width:16px;height:16px;text-decoration:none}.b_eportfolio_map div.b_eportfolio_add_link{float:left;display:inline;margin-top:2px}.o_ep_toc_editor .b_eportfolio_add_link{float:left}.b_eportfolio_map .b_eportfolio_add_link:hover{text-decoration:none}.b_eportfolio_map .b_eportfolio_comment_link{float:right;display:inline;margin-right:5px}.b_ep_tag_cloud{padding:1em 0 1em 0;border-bottom:1px solid #ccc}.b_eportfolio_page,.b_portfolio_toc,.b_eportfolio_edit,.b_eportfolio_changelog{min-height:40em;background:#f4f4f4 url(../openolat/images/portfolio/eportfolio_page_corner.png) top right no-repeat;padding:1em;-webkit-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);-moz-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);-o-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2)}.b_eportfolio_page .b_eportfolio_structure > h5{border-bottom:1px solid #ddd;margin-top:1.2em}.b_eportfolio_edit{margin-top:1.5em}.b_eportfolio.b_artefacts hr.b_ep_filter_spacer{height:10px;background:url(../openolat/images/portfolio/divider-arrow-down.png) 25px -12px no-repeat;border:none;border-top:1px solid #ccc;margin:2em 0 1em}.b_eportfolio.b_artefacts .b_ep_content{background:white;padding:0 1em 1em 1em;margin-top:1.5em}.b_eportfolio.b_artefacts .b_ep_content .b_ep_filter{padding:0;width:80%}.b_ep_filter{float:left}.b_ep_viewmode{float:right;width:15%}.b_ep_add_artefact{float:right}.b_ep_content div.b_ep_viewmode div.b_form_element_label{width:auto}.b_eportfolio.b_artefacts div.b_segments_container{top:-20px;margin-bottom:-20px}.b_ep_tagbrowser{width:30%;margin-right:0px}.b_ep_tagbrowser_view{width:68%;margin-left:0px}.b_ep_collection_icon{background-image:url(../openolat/images/portfolio/ep_collection.png) !important}.b_ep_map_icon,.b_portfolio_toc .type_map{background-image:url(../openolat/images/portfolio/briefcase.png) !important}.b_ep_page_icon,.b_portfolio_toc .type_page{background-image:url(../openolat/images/portfolio/ep_page.png) !important}.b_ep_page_icon.b_eportfolio_add_link{background-image:url(../openolat/images/portfolio/ep_page_add.png) !important}.b_ep_struct_icon,.b_portfolio_toc .type_struct{background-image:url(../openolat/images/portfolio/ep_struct.png) !important}.b_ep_struct_icon.b_eportfolio_add_link{background-image:url(../openolat/images/portfolio/ep_struct_add.png) !important}.type_artefact{background-image:url(../openolat/images/le_resources/portfolio.png) !important}div.b_eportfolio_collect_restriction{margin-top:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_el{float:left;margin-right:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link{float:left;margin-right:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link a{padding-left:0px;text-decoration:none}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link a:hover{text-decoration:none}div.b_form.b_eportfolio_tag_selector{min-width:40em}div.b_eportfolio_restriction_wrapper a.b_togglebox_opened{z-index:10;display:block;width:20px;height:20px;padding:0;margin-left:12px}div.b_eportfolio_restriction_wrapper a.b_togglebox_closed{display:block;width:20px;height:20px;padding:0;margin-left:12px}div.b_eportfolio_restriction_wrapper p{padding:0 0 0 15px;margin:0}div.b_eportfolio_restriction_wrapper div.b_togglebox div.b_togglebox_content{padding:3px 3px 3px 3px;margin:0;border:1px solid red;background-image:none;background-color:transparent;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px}div.b_eportfolio_restriction_error div.b_tooglebox_opened div.b_togglebox_content{border:1px solid #FF9900 !important;background:#fff5cc url(../openolat/images/decorator/deco_warn.png) no-repeat 3px 7px !important}div.b_eportfolio_restriction_passed div.b_tooglebox_opened div.b_togglebox_content{border:1px solid #F0F0F0 !important;background:#fcfcfc url(../openolat/images/decorator/deco_ok.png) no-repeat 3px 7px !important}div.b_eportfolio_restriction_error div.b_togglebox_closed{background:transparent url(../openolat/images/decorator/deco_warn.png) no-repeat 3px 5px !important}div.b_eportfolio_restriction_passed div.b_togglebox_closed{background:transparent url(../openolat/images/decorator/deco_ok.png) no-repeat 3px 5px !important}div.b_eportfolio_restriction_wrapper div.b_togglebox div.b_togglebox_content .b_togglebox_hide{display:none}.b_eportfolio_deadline_callout{width:300px}.b_ep_multiartefacts .b_c50l{clear:both}.b_eportfolio_fulltextsearch{float:left}.b_eportfolio_share_policy_wrapper{margin:5px;border:1px solid #ddd;padding:1em;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-ms-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-o-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%)}.b_eportfolio_share_policy_wrapper .b_float_right{text-align:right}.b_eportfolio_share_policy_wrapper a.bit-input{text-decoration:none}.b_eportfolio_share_policy div input,.b_eportfolio_share_policy div span,.b_eportfolio_share_policy div select{float:left;margin-right:5px;padding-right:5px}.b_eportfolio_share_policy div span.b_form_datechooser{background:url(../openolat/images/calendar.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}.b_eportfolio_share_policy .b_ep_share_date span{float:left}.b_eportfolio_share_policy_wrapper .b_eportfolio_share_policy{padding-left:20px;background:url(../openolat/images/user.png) top left no-repeat}.b_eportfolio_share_policy_wrapper.policytype_group .b_eportfolio_share_policy{background-image:url(../openolat/images/users.png)}.b_eportfolio_share_policy_wrapper.policytype_invitation .b_eportfolio_share_policy{background-image:url(../openolat/images/share.png)}.b_eportfolio_share_policy_wrapper.policytype_allusers .b_eportfolio_share_policy{background-image:url(../openolat/images/users.png)}div.b_ep_inline div input,div.b_ep_inline div span,div.b_ep_inline div select{float:left;margin-right:5px;padding-right:5px}.default div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.default div.b_pagination{float:none;position:static;width:100%}.default div.b_pagination ul{margin:0}.default div.b_pagination li{float:left;display:inline;width:auto;margin:2px 2px 2px 0;padding:0;background:#FAFAFA;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:7px;border-top-right-radius:7px;border-bottom-right-radius:0;border-bottom-left-radius:0}.default div.b_pagination li a{padding:1em;padding:5px 8px}.default div.b_pagination li,.default div.b_pagination li span,.default div.b_pagination li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.default div.b_pagination li.b_disabled{padding-bottom:2px;margin-bottom:0;background:#f4f4f4}.default div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.default div.b_pagination li.b_changelog{float:right}.default div.b_eportfolio_page,.default div.b_portfolio_toc,.default div.b_eportfolio_edit,.default div.b_eportfolio_changelog{background-image:none}.b_eportfolio_map.comic{background:#a2c3e8 none;padding:30px;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:10px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-topright:10px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:0;border-top-right-radius:10px;border-bottom-right-radius:0;border-bottom-left-radius:0}.comic{font-family:'Comic Sans MS', 'Comic Sans', fantasy}.comic div.b_pagination{position:absolute;right:0;width:16%;max-height:100%;overflow-x:hidden;overflow-y:auto;z-index:100}.comic .b_ep_relative > div:last-child{position:relative}.comic div.b_ep_actualpage{width:85%;margin-top:1em}.comic div.b_pagination ul{margin-top:30px;margin-left:0px;z-index:1}.comic div.b_pagination li{width:87%;background:url(../openolat/images/portfolio/postit.png) center right;padding:0;margin-bottom:1em;margin-left:8%;list-style-type:none}.comic div.b_pagination li span.b_disabled,.comic div.b_pagination li a span{display:block;padding:20px 15px 20px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.comic div.b_pagination li,.comic div.b_pagination li span,.comic div.b_pagination li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.comic div.b_pagination li.b_disabled{z-index:101;margin-left:0;width:100%}.comic div.b_pagination li .b_disabled{color:black;font-weight:bold}.comic div.b_pagination li.b_toc,.comic div.b_pagination li.b_changelog{background-image:url(../openolat/images/portfolio/postit_pink.png)}.b_eportfolio_map.leather{background:url(../openolat/images/portfolio/light-leather-tile.jpg)}.leather{font-family:Palatino, Georgia, serif}.leather div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.leather .b_map_header h4,.leather .b_map_header p,.leather .b_map_header a.b_eportfolio_add_link,.leather .b_map_header a.b_eportfolio_comment_link{color:white}.leather .b_eportfolio_mapowner{color:#fff}.leather div.b_pagination{float:none;position:static;width:100%}.leather div.b_pagination ul{margin:0}.leather div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:7px;border-top-right-radius:7px;border-bottom-right-radius:0;border-bottom-left-radius:0}.leather div.b_pagination li a{padding:1em;padding:5px 8px}.leather div.b_pagination li,.leather div.b_pagination li span,.leather div.b_pagination li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.leather div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.leather div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.leather div.b_pagination li.b_changelog{float:right}.leather div.b_eportfolio_page,.leather div.b_portfolio_toc,.leather div.b_eportfolio_edit,.leather div.b_eportfolio_changelog{background-image:none}div.o_module_cp_wrapper a.b_content_download{background:url("../openolat/images/drive-download.png") no-repeat top left;padding-left:20px;margin:3px;display:block;min-height:16px}div.o_module_cp_wrapper div#o_local_fulltextsearch{position:absolute;top:0;right:0;z-index:10}div.o_module_cp_wrapper div#o_local_fulltextsearch div.b_form_element_wrapper.b_form_horizontal{margin:0}div.o_module_cp_wrapper div.o_cp_navigation{float:right;display:inline;padding:3px 0 3px 3px;background:#ebebeb;border:1px solid #ddd;white-space:nowrap;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;moz-box-shadow:0 1px 2px lightGrey;-ms-box-shadow:0 1px 2px lightGrey;-o-box-shadow:0 1px 2px lightGrey;-webkit-box-shadow:0 1px 2px lightGrey;box-shadow:0 1px 2px lightGrey}div.o_module_cp_wrapper div span a{margin:0 2px}div.o_module_cp_wrapper div span.b_disabled{display:none}div.o_module_cp_wrapper div span a.o_cp_previous_icon{background-image:url("../openolat/images/arrow_left_big.png");text-decoration:none}div.o_module_cp_wrapper div span a.o_cp_previous_icon span{display:none}div.o_module_cp_wrapper div span a.o_cp_next_icon{background-image:url("../openolat/images/arrow_right_big.png")}div.o_module_cp_wrapper div span a.o_cp_next_icon span{display:none}div.o_module_cp_wrapper div span a.o_cp_print_icon{background-image:url("../openolat/images/printer.png")}div.o_module_cp_wrapper div span a.o_cp_print_icon span{display:none}div.o_module_cp_wrapper div.o_cp_navigation div,div.o_module_cp_wrapper div.o_cp_navigation form{display:inline}div.o_module_cp_wrapper div.o_cp_navigation div.b_clearfix{display:inline;clear:none}div.o_module_cp_wrapper div.o_cp_navigation div.b_clearfix:after{display:inline;height:0;clear:none;visibility:hidden}#o_cpeditor_menu div.o_cpeditor_menu_tree{padding:10px 0 0 0}#b_col1 div.b_menu_toolbar a,#b_col3 div.b_menu_toolbar a{width:16px;height:16px;margin:3px;float:right;display:inline;background-repeat:no-repeat}a.o_cpeditor_import{background-image:url("../openolat/images/docs/document_upload.png")}a.o_cpeditor_new{background-image:url("../openolat/images/docs/document_add.png")}a.o_cpeditor_copy{background-image:url("../openolat/images/docs/document_copy.png")}a.o_cpeditor_delete{background-image:url("../openolat/images/docs/document_remove.png")}a.o_cpeditor_edit{background-image:url(../openolat/images/docs/document_metadata_edit.png)}a.o_cpeditor_preview{background-image:url(../openolat/images/docs/document_preview.png)}#o_cpeditor_content div.o_cpeditor_message{padding:20px}div.o_qpool_button_bar{padding:15px 0 0 0;text-align:center}div.o_qpool_toolbar{padding:3px;text-align:right}.o_sel_qpool_pool{background-image:url("../openolat/images/qti/pool-share.png") !important}.o_sel_qpool_my_items{background-image:url("../openolat/images/user.png") !important}.o_sel_qpool_favorits{background-image:url("../openolat/images/flag.png") !important}.o_sel_qpool_share{background-image:url("../openolat/images/users.png") !important}.o_sel_qpool_collection{background-image:url("../openolat/images/document-list.png") !important}.o_readwrite{background-image:url("../openolat/images/pencil.png")}.o_readonly{background-image:url("../openolat/images/pencil-prohibition.png")}.o_public,.o_exportable{background-image:url("../openolat/images/tick.png")}.o_private,.o_unexportable{background-image:url("../openolat/images/cross.png")}.o_qpool_edit_learning_time div{float:left}.o_qpool_edit_learning_time div input,.o_qpool_edit_learning_time div select,.o_qpool_edit_learning_time div span.o_qpool_edit_learning_time_label{margin-right:5px;padding-right:5px}div.o_sel_qpool_edit_content{float:right}div.o_sel_qpool_edit_content .b_link_edit{margin-right:20px}div.o_sel_qpool_presentation div.b_c33l li{padding-right:15px}div.o_sel_qpool_presentation h5{margin:0.5em 0 0.5em 0}#qpoolcontainer div.b_table_wrapper a.b_table_prefs{position:relative;top:1.5em;left:19px}#qpoolcontainer div.b_table_wrapper div.dataTables_wrapper{margin-top:1em}div.o_qpool_metadata_sharing h5{margin-top:1em}div.o_qpool_metadata_sharing table td.b_first_child{width:15%}a.o_print_icon{background-image:url("../openolat/images/printer.png")}a.o_print_icon span{display:none}.d3chart .bar_green{fill:#9dd53a}.d3chart .bar_green:hover{fill:#7cbc0a}.d3chart .bar_red{fill:#f85032}.d3chart .bar_red:hover{fill:#e73827}.d3chart .bar_grey{fill:lightgrey}.d3chart .bar_grey:hover{fill:grey}div.o_qti_statistics{padding-top:20px;padding-left:40px;padding-right:5%}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0}div.o_qti_statistics li{padding-left:22px}div.o_qti_statistics li.o_qti_statistics-survey-item{padding-left:0px}div.o_qti_statistics li.o_qti_statistics-ncorrect{background:url(../img/decorator_error.png) no-repeat 5px 4px}div.o_qti_statistics li.o_qti_statistics-correct{background:url(../img/decorator_ok.png) no-repeat 5px 2px}div.o_qti_statistics h4{padding-left:20px}div.o_qti_statistics h4.qti-qtype1{background:url(../img/scItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype2{background:url(../img/mcItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype3{background:url(../img/fibItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype4{background:url(../img/essayItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype5{background:url(../img/kprimItem.png) no-repeat}#o_qti_run div.b_button_group{text-align:left}#o_qti_run_title{text-align:right}#o_qti_run_title strong{float:left;display:inline}#o_qti_run.o_qti_survey #o_qti_run_title strong{background:url(../openolat/images/le_resources/survey.png) no-repeat left 50%;padding-left:20px}#o_qti_run.o_qti_test #o_qti_run_title strong{background:url(../openolat/images/le_resources/test.png) no-repeat left 50%;padding-left:20px;padding-top:2px;padding-bottom:2px}#o_qti_scoreinfo{float:left;display:inline;padding:.3em;border:1px solid silver;margin-right:1em}#o_qti_run_score{clear:both;margin:1em 0;padding:0 0 1.5em 0;font-size:90%}#o_qti_run_scoreinfo{float:left;display:inline}#o_qti_run_scoreprogress{float:left;display:inline;margin-left:1em}#o_qti_questioninfo{float:left;display:inline;padding:.3em;border:1px solid silver}#o_qti_run_questioninfo{float:left;display:inline;margin-left:1em}#o_qti_run_questionprogress{float:left;display:inline;margin-left:1em}#o_qti_run_status{clear:both}#o_qti_run_main{clear:both;border-top:1px solid #504D4E;margin:0.5em 0;padding:1em 0}#o_qti_run_menu_inner h4{font-size:100%}#o_qti_run_menu_inner ul{padding:0;margin:0;list-style:none}#o_qti_run_menu_inner li{clear:both;padding:0;margin:0;white-space:normal}#o_qti_run_menu_inner li.o_qti_menu_section{padding:1em 0}#o_qti_run_menu_inner li div.o_qti_menu_item,#o_qti_run_menu li div.o_qti_menu_section{float:left;display:inline;margin-right:10px}#o_qti_results td{padding:0}#b_main.o_editor_qti_correct{background-image:url(../openolat/images/qti/correct_bg.png);background-position:top left}#b_main.o_editor_qti{background-image:url(../openolat/images/edit_bg.png);background-position:top left}#o_qti_hints,#o_qti_solutions{margin:1em 0}#o_qti_hints a{background:url(../openolat/images/light-bulb.png) no-repeat left 50%;cursor:help;padding-left:20px}#o_qti_solutions a{background:url(../openolat/images/magnifier-zoom.png) no-repeat left 50%;cursor:help;padding-left:20px}.qti_response_level_feedback_label{margin-top:1em;font-style:italic}.qti_edit_layout{position:relative;padding-right:30px;margin-bottom:0.6em}.qti_edit_layout .edit_link{position:absolute;top:10px;right:0px}div.o_qti_item{margin-bottom:2em;margin-top:2em;line-height:2em}div.o_qti_item input.b_radio,div.o_qti_item input.b_checkbox{margin-left:1em}div.o_qti_item textarea{width:99%}img.o_qti_item_matimage{vertical-align:middle}div.o_qti_item_choice{display:table;margin:1em 0}div.o_qti_item_choice_option{display:table;padding:.5em;border:1px solid transparent}div.o_qti_item_choice_option_flow{display:table-cell;padding:.5em;border:1px solid transparent}div.o_qti_item_choice_option:hover{border:1px solid silver}div.o_qti_item_choice_option_flow:hover{border:1px solid silver}div.o_qti_item_choice_option_input{display:table-cell;vertical-align:middle;padding-right:.5em}div.o_qti_item_choice_option_input input{vertical-align:middle}div.o_qti_item_choice_option_value{display:table-cell}div.o_qti_item_choice_option_autoenum{display:table-cell;line-height:1.5em;width:1em;overflow:hidden;vertical-align:middle;color:silver;border:0;padding:0;margin:0}#o_qti_menu a{text-decoration:none}.o_qti_menu_section{padding:.3em;border-top:1px solid #94bed3}.o_qti_menu_section_clickable{padding:.3em;border:1px solid transparent;display:inline-block}.o_qti_menu_section_clickable:hover{padding:.3em;border:1px solid silver;display:inline-block}.o_qti_menu_section_active{padding:.3em;border:1px dashed silver;display:inline-block}.o_qti_menu_item{padding:.3em;border:1px solid transparent;display:inline-block}.o_qti_menu_item_active{padding:.3em;border:1px dashed silver;display:inline-block}.o_qti_menu_item_active:hover{border:1px solid silver}.o_qti_menu_item_inactive{padding:.3em;border:1px solid transparent}.o_qti_menu_item:hover{border:1px solid silver}.o_qti_menu_item_closed{padding:.3em;border:1px solid transparent}.o_qti_menu_item_attempts,.o_qti_menu_item_attempts_marked{color:#666;padding:.2em .4em;border:1px solid transparent;background-position:center right;background-repeat:no-repeat;display:block;width:20px;height:12px}.o_qti_menu_item_attempts{background-image:url(../openolat/images/flag_off.png)}.o_qti_menu_item_attempts:hover,.o_qti_menu_item_attempts_marked:hover{border:1px solid silver;cursor:pointer}.o_qti_menu_item_attempts_marked{background-image:url(../openolat/images/flag.png)}#o_qti_item_note{padding:0;margin:0;border:0;color:#666;font-family:inherit;font-size:1em;background:inherit;overflow:hidden}.o_qti_item_note_box{border:1px dashed silver;padding:.1em;margin:0;padding-left:.5em}div.o_qti_item_note_box_title{color:#666}div.o_qti_item_itemfeedback,div.o_qti_item_assessfeedback,div.o_qti_item_o_qti_item_sectionfeedback{margin:1em 0;background:url(../openolat/images/lightning.png) no-repeat left 50%;padding-left:20px}div.o_qti_item_objectives{margin:1em 0;background:url(../openolat/images/information-white.png) no-repeat left 50%;padding-left:20px;line-height:2em}.o_qti_timelimit_icon{background-image:url(../openolat/images/qti/time.png)}.o_qti_attemptslimit_icon{background-image:url(../openolat/images/qti/tries.png)}.o_qti_closed_icon{background-image:url(../openolat/images/qti/closed.png)}.o_mi_qtialientitem{background-image:url(../openolat/images/docs/document_plain.png)}.o_mi_qtisc{background-image:url(../openolat/images/qti/scItem.png)}.o_mi_qtimc{background-image:url(../openolat/images/qti/mcItem.png)}.o_mi_qtikprim{background-image:url(../openolat/images/qti/kprimItem.png)}.o_mi_qtifib{background-image:url(../openolat/images/qti/fibItem.png)}.o_mi_qtiessay{background-image:url(../openolat/images/qti/essayItem.png)}.o_mi_qtisection{background-image:url(../openolat/images/qti/section.png)}.o_mi_qpool_import{background-image:url(../openolat/images/qti/pool.png)}.o_mi_qpool_export{background-image:url(../openolat/images/qti/pool.png)}.o_mi_docx_export{background-image:url(../openolat/images/docs/document-word.png)}.o_mi_iqtest{background-image:url(../openolat/images/le_resources/test.png)}.o_mi_iqsurv{background-image:url(../openolat/images/le_resources/survey.png)}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}div.b_translation_start div.b_translation_start_body,div.b_translation_edit div.b_translation_edit_body{margin-top:0.5em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_list div.b_translation_list_package{margin-bottom:0.5em;padding:1em 0 0.5em 0;border-bottom:1px solid #ACAAAA}div.b_translation_list div.b_translation_list_package div.b_translation_package_icon{margin-bottom:0.5em;border-bottom:1px solid #ACAAAA}div.b_translation_edit div.b_button_group{text-align:center;margin:1em 0 0 0}div.b_translation_edit div.b_translation_edit_head div.b_progress div.b_progress_bar{float:left;display:inline}div.b_translation_edit div.b_translation_edit_head div.b_progress div.b_progress_label{float:left;display:inline;padding:0 0 0 1em;font-size:90%;font-style:italic}div.b_translation_edit div.b_translation_edit_body textarea{width:99%}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_annotation{margin-top:1em}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_compare{margin-top:1em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_target{margin-top:1em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_edit div.b_form_element textarea.b_form_element_disabled{color:#000;background:#EEEEEE;border:1px solid #CDCBCB}div.b_translation_edit div.b_translation_edit_annotation h5{font-weight:normal;font-size:100%;font-style:italic}div.b_translation_edit div.b_translation_edit_annotation textarea{font-style:italic}div.b_translation_edit div.b_translation_refKey{background-image:url(../openolat/images/magnifier-zoom.png);vertical-align:middle;background-color:#eee;border:1px solid #ACAAAA;margin-right:1%}div.b_translation_edit div.b_translation_refKey code{line-height:1em;vertical-align:middle}div.b_translation_edit div.b_translation_refKey span{line-height:1em;font-style:italic}div.b_translation_config span.b_translation_status,ul.b_translation_status span.b_translation_status{position:absolute;right:1em}ul.b_translation_status{column-count:2;-moz-column-count:2;list-style:none}ul.b_translation_status li{position:relative}.b_translation_package_icon{background-image:url(../openolat/images/folder_open.png) !important}.b_translation_item_icon{background-image:url(../openolat/images/docs/document-node.png) !important}.b_translation_search_icon{background-image:url(../openolat/images/magnifier-zoom.png) !important}span.b_translation_i18nitem{position:relative !important}span.b_translation_i18nitem a.b_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:16px !important;height:16px !important;top:0 !important;left:5px !important;background:#eeeeee url(../openolat/images/docs/document_metadata_edit.png) no-repeat !important;border:1px solid #6e6e6e !important;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;padding:0 !important}div.b_selectiontree{font-size:95%}div.b_selectiontree div.b_selectiontree_item{clear:both;position:relative;top:0;left:0;vertical-align:middle;height:16px;width:auto}div.b_selectiontree div.b_selectiontree_item div{width:16px;height:16px;float:left;display:inline;background-repeat:no-repeat}div.b_selectiontree div.b_selectiontree_item div.b_selectiontree_content{float:left;display:inline;margin-left:0.5em;width:auto;white-space:nowrap}div.b_selectiontree div.b_selectiontree_content{width:auto}div.b_selectiontree div.b_selectiontree_content div{width:auto}div.b_selectiontree div.b_selectiontree_content input{width:1em;height:1em;padding:0;margin:0 0.5em;vertical-align:middle}div.b_selectiontree div.b_selectiontree_content input.b_radio{margin:0}div.b_selectiontree .b_selectiontree_line{background-image:url(../openolat/images/tree/dots.gif)}div.b_selectiontree .b_selectiontree_space{background-image:url(../openolat/images/tree/dots_spacer.gif)}div.b_selectiontree .b_selectiontree_junction{background-image:url(../openolat/images/tree/dots_nt.gif)}div.b_selectiontree .b_selectiontree_end{background-image:url(../openolat/images/tree/dots_nl.gif)}#b_main.o_editor #b_col3{background-image:url(../openolat/images/edit_bg.png);background-position:top left;background-repeat:repeat}#b_main.o_editor div.b_tabbedpane_wrapper div.b_tabbedpane_content{background:#fff}#b_main_toolbar.o_course_breadcumbs div.b_breadcumb_path ul li.b_first{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}a.b_preview{background-image:url(../openolat/images/docs/document_preview.png);background-repeat:no-repeat;background-position:left;padding:2px 0 2px 20px}fieldset a.b_preview,div.b_tabbedpane_wrapper a.b_preview{position:absolute}div.b_module_singlepage_wrapper a.b_content_edit{position:absolute;top:0;right:20px;display:inline;background:url(../openolat/images/docs/document--pencil.png) no-repeat top left;width:16px;height:16px;margin:3px}div.b_module_singlepage_wrapper a.b_content_download{position:absolute;top:0;z-index:10;background:url(../openolat/images/docs/document_download.png) no-repeat top left;padding-left:20px;margin-top:3px;min-height:19px;height:19px}div.b_titled_wrapper div.b_module_singlepage_wrapper a.b_content_download{position:relative;padding-bottom:3px}div.b_titled_wrapper div.b_module_singlepage_wrapper div.b_iframe_wrapper{margin-top:3px}div.b_lti_edit_wrapper div.o_buttons_box_right{z-index:10;top:13px;right:20px}#b_content_popup{float:right;background:url(../openolat/images/applications.png) no-repeat top left;width:16px;height:16px;margin:3px}#o_course_editor_errorbox{font-size:90%;padding:3px 2px 2px 25px;margin:0 0 1em 0}div.o_courseeditor_legend{margin-top:3em}div.o_courseeditor_legend strong{font-weight:bold}div.o_courseeditor_legend div{top:0;left:0;padding-left:12px;background-repeat:no-repeat;background-position:0 50%}div.o_buttons_box_right{position:absolute;top:0;right:0}fieldset div.o_buttons_box_right{top:1em}div.b_box_with_chelp div.o_buttons_box_right{right:20px}div.o_course_run div.o_course_run_displaytitle{font-style:italic}div.o_course_run div.o_course_run_objectives{background-color:#E9EAEF;padding:5px 5px 5px 25px;margin:0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_scoreinfo{background:#e9eaef url(../openolat/images/seal.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_disclaimer{background:#e9eaef url(../openolat/images/information-white.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_groupinfo{background:#e9eaef url(../openolat/images/users.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_statusinfo{background:url(../openolat/images/bullet_go.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_returnbox{background:#e9eaef url(../openolat/images/box_return.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_dropbox{background:#e9eaef url(../openolat/images/box_drop.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_solutionbox{background:#e9eaef url(../openolat/images/box_solution.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_task{background:#e9eaef url(../openolat/images/assign.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_disclaimer h4,div.o_course_run div.o_course_run_objectives h4,div.o_course_run div.o_course_run_scoreinfo h4,div.o_course_run div.o_course_run_returnbox h4,div.o_course_run div.o_course_run_dropbox h4,div.o_course_run div.o_course_run_solutionbox h4,div.o_course_run div.o_course_run_task h4,div.o_course_run div.o_course_run_log h4{font-size:100%;margin:0 0 1em 0}div.o_course_run div.o_course_run_scoreinfo_noinfo{font-style:italic;font-weight:bold}div.o_course_run div.o_course_run_toc{margin:1em 0 0 0}div.o_course_run div.o_course_run_toc div.o_course_run_toc_entry{margin:0 0 1em 0;padding:1em 20px 0 0}div.o_course_run div.o_course_run_toc div.o_course_run_shorttitle{border-bottom:1px solid #ACAAAA}div.o_course_run div.o_course_run_toc div.o_course_run_displaytitle{margin-top:0.5em;color:#aaaaaa}div.o_course_run div.o_course_run_toc div.o_course_run_objectives{margin:1em 0 1em 0;border:0;background:none}div.o_course_run div.o_course_run_toc div.o_course_run_toc_entry{background:#FBFBFB;padding:5px;border:1px solid #eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run #b_content_popup{position:absolute;top:0;right:0}div.o_sp_peekview{margin:1em 0 1em 0}div.o_sp_peekview ul{list-style:none}div.o_sp_peekview li{margin-top:0.5em}div.o_peekview_author{padding:3px 0 5px 0;font-style:italic;color:#aaaaaa;font-size:90%}#b_preview_wrapper{clear:both;padding:10px;background:#fff;border-bottom:1px solid #94bed3}#b_main.b_preview{moz-box-shadow:0 0 0 white;-ms-box-shadow:0 0 0 white;-o-box-shadow:0 0 0 white;-webkit-box-shadow:0 0 0 white;box-shadow:0 0 0 white;background:white url(../openolat/images/prevbg.png) repeat}body.b_full_screen{background-color:white;background-image:none}body.b_full_screen #b_page_margins{display:none}body.b_full_screen div.b_modal_area{margin:2%;width:96%}body.b_full_screen div#b_preview_wrapper{margin:0;border:0;padding:0;background:#5e5e5e;background:-moz-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5e5e5e), color-stop(50%, #444444), color-stop(51%, #222222), color-stop(100%, #3c3c3c));background:-webkit-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-o-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-ms-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%)}body.b_full_screen div#b_preview_wrapper div.b_preview_link{border:none}body.b_full_screen div#b_preview_wrapper div.b_preview_link a.b_link_back{margin:0.5em}body.b_full_screen div#b_preview_wrapper div.b_preview_link div.b_preview_wrapper_loading{background:transparent url(../openolat/images/ajax-loader.gif) no-repeat top left}div#b_preview_wrapper div#b_preview_wrapper_message{float:right;padding-left:16px;width:100px}div.o_scorm a.b_link_close{padding-right:20px}div.o_scorm div.o_scorm_navigation{float:right;display:inline;padding:3px;background:#fefefe;background:-moz-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fefefe), color-stop(50%, #e3e3e3), color-stop(51%, #cfcfcf), color-stop(100%, #f3f3f3));background:-webkit-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-o-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-ms-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);border:1px solid #504D4E;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;margin:0.2em}div.o_scorm div.o_scorm_navigation a{margin:0 2px}div.o_scorm div.o_scorm_navigation a.o_scorm_previous_icon{background-image:url(../openolat/images/arrow_left_big.png)}div.o_scorm div.o_scorm_navigation a.o_scorm_next_icon{background-image:url(../openolat/images/arrow_right_big.png)}div.o_scorm div.o_scorm_navigation a.hover{background-color:none}.o_scorm_completed,.o_scorm_passed{top:6px;left:6px;background-image:url("../openolat/images/decorator/deco_ok.png")}.o_scorm_failed{top:6px;left:6px !important;background-image:url("../openolat/images/decorator/deco_error.png")}.o_scorm_incomplete{top:6px;left:6px;background-image:url("../openolat/images/decorator/deco_warn.png")}.o_scorm_not_attempted{top:6px;left:6px;background-image:none}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#f3feff}.d3chart .bar_default_light:hover{fill:#94bed3}.d3chart .bar_default{fill:#94bed3}.d3chart .bar_default:hover{fill:#025d8c}.d3chart .bar_default_dark{fill:#025d8c}.d3chart .bar_default_dark:hover{fill:black}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.d3chart .x.axis path{display:none}div.o_members_search{padding-top:10px;padding-left:10px}div.filters{text-align:center;padding-top:1.5em}div.o_members_search div.searchitem{margin-bottom:0.5em}div.searchitem select,div.searchitem input{width:250px}.o_members_register{margin-bottom:5px}.o_members_register_active{font-weight:bold;font-size:120%}div.o_members_paging{width:100%;padding-bottom:1em;padding-top:0.5em;text-align:center}div.o_members_paging div{padding-left:1em;padding-right:1em;display:inline}div.o_bcard{background-color:#eee;margin-top:10px;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-o-border-radius:6px}div.o_bcard_header,div.o_members_header{padding:6px;border-bottom:1px solid #fff}div.o_bcard_portrait{float:left;display:inline;width:100px;height:100px;margin:10px}div.o_bcard_portrait img{border:1px #d3d3d3 solid}div.o_bcard_portrait_group{background-image:url(../openolat/images/group_100x100.png);border:1px #d3d3d3 solid}div.o_bcard_text{margin-left:120px;margin-top:10px;line-height:150%}div.o_bcard_footer{text-align:right;clear:both;font-size:95%;color:#1f49b3;padding:5px}div.o_visitingcard h4{background:url("../openolat/images/card-address.png") 0 50% no-repeat;padding-left:20px;margin-bottom:1em}div.o_visitingcard table th{width:20%}.popup_iframe{width:100%;height:100%;border:none;min-height:60em}div.o_reservation{position:relative;margin-top:2em;padding:1em;background:#F7F7F7;border:1px solid #eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_reservation span.o_reservation_name{font-weight:bold;line-height:2em}div.o_reservation span.o_reservation_role_coach{margin-left:1em}div.o_reservation span.o_reservation_accepted{margin-left:2em;background:transparent url(../openolat/images/tick.png) 0 50% no-repeat;color:#009900;padding-left:20px;font-style:italic;line-height:2em}div.o_reservation span.o_reservation_refused{margin-left:2em;background:transparent url(../openolat/images/cross.png) 0 50% no-repeat;color:#990000;padding-left:20px;font-style:italic;line-height:2em}div.o_reservation a.o_reservation_details_link{padding:0 1em}div.o_reservation div.o_reservation_details{padding:1em 0 0 0}div.o_reservation ul{list-style:none;padding:0;margin:0}div.o_reservation ul li{background-repeat:no-repeat;padding:0;margin:0}div.o_infomsgs{padding-top:5px}div.o_infomsgs div.b_datecomp{top:2px;float:left;display:inline}div.o_infomsgs div.o_infomsg{margin-bottom:1em;padding:10px 0 0 0}div.o_infomsgs .b_year{display:none}div.o_infomsgs .o_item_info{color:#7D7D7D;font-size:90%}div.o_infomsgs .o_item_info .o_item_info_mod{color:#98221F}div.b_table_wrapper td a.o_peekview_infomsg_link{display:inline}div.o_infomsgs_config{padding-bottom:5px}div.o_infomsgs_config div{display:inline}.o_infomsg_icon{background-image:url(../openolat/images/information-button.png)}.o_infomsg_create_button{position:absolute;top:0;right:250px}.b_mail_icon{background-image:url(../openolat/images/mail.png)}div.b_mail_message div.b_form_element_wrapper:first-child div.b_form_element{font-weight:bold}.b_mail_new{width:20px !important;background-image:url(../openolat/images/new-text.png)}.b_table_wrapper span.b_mail_unread{display:block;display:inline-block;width:16px;height:16px;background:transparent url(../openolat/images/bullet_black.png) top left no-repeat}.b_table_wrapper span.b_mail_read{display:block;display:inline-block;width:16px;height:16px}.b_table_wrapper span.b_mail_marked{display:block;display:inline-block;width:16px;height:16px;background:transparent url(../openolat/images/flag.png) top left no-repeat}.b_table_wrapper span.b_mail_unmarked{display:block;display:inline-block;width:16px;height:16px}.b_table_wrapper .b_marked{font-weight:bold}ul.b_mail_attachments{list-style:none;margin:0;padding:0}ul.b_mail_attachments li{margin:0}div.o_cmembers div.b_clearfix{margin-bottom:1.5em}div.o_cmembers div.o_cmember{float:left;position:relative;width:30%;height:30px;overflow:hidden;margin:5px 5px 5px 0;padding:8px;border:1px solid #ddd;background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 2px #d3d3d3;-ms-box-shadow:0 1px 2px #d3d3d3;-o-box-shadow:0 1px 2px #d3d3d3;-webkit-box-shadow:0 1px 2px #d3d3d3;box-shadow:0 1px 2px #d3d3d3}div.o_cmembers div.o_cmember div.o_cmember_portrait_wrapper{position:absolute}div.o_cmembers div.o_cmember div.o_cmember_portrait_wrapper div.o_cmember_portrait{top:3px;left:3px;border:1px solid #bbb;width:30px;height:30px;background-color:#fff;background-repeat:no-repeat;background-position:50% 50%}div.o_cmembers div.o_cmember div.o_cmember_info_wrapper{padding-left:35px;line-height:30px;vertical-align:middle}div.o_cmembers a.o_cmembers_mail{float:none;margin-left:5px;padding-left:20px;background-image:url(../openolat/images/mail.png)}div.o_cmembers a.o_cmembers_mail span{display:none}div.o_cmembers h4{padding:7px 0 0 0;clear:both}div.o_ll_container ul li{list-style:circle;margin:1em}div.o_ll_container ul li div{font-style:italic}a.o_ll_browse span{display:block;width:20px;height:18px;background:url(../openolat/images/library.png) top left no-repeat;margin-left:1px}div.b_contexthelp_wrapper{position:relative}a.b_contexthelp{display:block;width:16px;height:16px;background:url(../openolat/images/help.png) no-repeat;line-height:0;cursor:help}div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:0;right:0}fieldset a.b_contexthelp,fieldset div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:-1.5em;right:-0.8em}#b_contexthelp_content{padding:0}#b_ch_topnav_search div.b_form_element_wrapper.b_form_horizontal{margin:2px 0 0 0}#b_contexthelp_rating{text-align:center;margin-top:20px;padding:10px;border-top:1px #ACAAAA solid}#b_contexthelp_rating h4{font-size:90%;margin:0;font-style:italic}#b_contexthelp_rating table{display:inline-block}#b_contexthelp_rating table td{width:50%}.b_contexthelp_icon{background-image:url(../openolat/images/help.png)}div.b_ratings_and_comments{margin:4em 0 1.5em 0;padding-bottom:0.5em;border-bottom:1px solid #eee;font-size:0.9em;position:relative}div.b_ratings_and_comments div.b_rating_wrapper{position:absolute;right:0;bottom:0;width:150px;height:4em}div.b_ratings_and_comments div.b_rating{background:none;border:none;padding:0;margin:0;position:absolute;left:0;bottom:2px;width:100%}div.b_ratings_and_comments div.b_rating_personal{background:#fff;z-index:5}div.b_ratings_and_comments a.b_comments,div.b_eportfolio_map a.b_comments{background:url(../openolat/images/comment.png) 3px 50% no-repeat;padding:3px 0 1px 23px;vertical-align:middle;min-height:18px}div.b_comments{font-size:0.9em}div.b_comments div.b_comment_wrapper{border:1px solid #eee;padding:10px 10px 5px 10px;margin-bottom:2em;background:#fbfbfb;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_comments div.b_comment_wrapper div.b_avatar img{border:1px solid #aaa}div.b_comments div.b_comment_wrapper h5{font-size:1em;background:url(../openolat/images/user.png) 0 50% no-repeat;padding:1px 0 1px 20px;vertical-align:middle;min-height:16px}div.b_comments div.b_comment_wrapper span.b_date{color:#aaaaaa;font-weight:normal;display:block;margin-top:5px}div.b_comments div.b_comment_wrapper div.b_comment_wrapper{margin-left:7px;background:#fff}div.b_comments div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper{background:#fbfbfb}div.b_comments div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper{background:#fff}div.b_comments blockquote.b_comment{padding:3px 0 0 0px;margin:0}div.b_comments div.b_form{padding:10px;border:1px solid #eee;margin:2em 0 2em 0;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_comments div.b_form h5{font-size:1em;margin-bottom:0.5em}div.b_comments div.b_form div.b_button_group{text-align:center}.b_comment_icon{background-image:url(../openolat/images/comment.png)}#b_comment_form_link{font-size:0.9em;position:relative;top:-15px;left:23px}div.b_rating{margin:10px;padding:5px;font-size:80%;white-space:nowrap;text-align:left;background:#EEE;border:1px solid #ACAAAA;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_rating div.b_rating_title{font-weight:bold}div.b_rating div.b_rating_items{vertical-align:middle;line-height:18px}div.b_rating div.b_rating_items a{float:left;display:inline;width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;margin:1px 4px 1px 0}div.b_rating div.b_rating_items a.b_rating_item_on{background-image:url(../openolat/images/star.png)}div.b_rating div.b_rating_items a.b_rating_item_off{background-image:url(../openolat/images/star_grey.png)}div.b_rating div.b_rating_items a:hover{cursor:default}div.b_rating div.b_rating_items.b_enabled a:hover{cursor:pointer}div.b_rating div.b_rating_items.b_enabled a.b_rating_item_off:hover{background-image:url(../openolat/images/star.png)}div.b_rating div.b_rating_explanation{clear:both;font-size:90%}div.b_datecomp{width:2.5em;height:3em;position:relative;margin-right:5px;font-weight:normal;color:white;text-align:center;vertical-align:middle;border:1px solid #000;font-size:85%}div.b_datecomp div{width:100%;position:absolute;left:0}div.b_datecomp div.b_year{height:1em;top:-1.5em;font-size:80%;font-weight:normal;color:#000}div.b_datecomp div.b_month{background:#BE5B5D;height:40%;top:0;font-size:80%;font-weight:normal;color:white}div.b_datecomp div.b_day{background:#fff;height:60%;bottom:0;font-size:120%;font-weight:bold;color:#000;border-top:1px solid #000;border-bottom:1px solid #aaaaaa}.b_content_download{background:url("../openolat/images/drive-download.png") no-repeat top left;padding-left:20px;margin:3px;display:block;min-height:16px}ul.o_sel_repository_owners{list-style:none;margin:0;padding:0;white-space:nowrap}ul.o_sel_repository_owners li{margin:0}div.fx_portal_admin{margin-top:10px}div.fx_portlets_column{width:30%;float:left;margin-right:10px}div.fx_portlets_column div.b_portlet{min-height:1em}div.fx_portlets_column_name{padding:5px 5px 0px 5px}div.fx_portlets_column_name span{color:#4F576A;font-weight:bold;text-deocration:underline}ul.fx_portlets_column_portlets{border:1px solid #eee;padding:0;margin:0;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%)}ul.fx_portlets_column_portlets li{margin-left:0}div.fx_available_portlets{width:28%;float:right}div.fx_available_portlets div.b_portlet{min-height:1em}div.fx_portlets_admin_column{min-height:12em}div.fx_site_admin_column{float:left}div.fx_site_admin_column div.fx_site_definition{min-height:1em}div.o_notifications_news_datechooser{border-bottom:1px solid #bbb;padding:1em 0 1em 0}div.o_notifications_news_datechooser label{padding-right:1em}div.o_notifications_news_subscription{margin:1.5em 0 2em 0}div.o_notifications_news_subscription h4{font-size:110%}div.o_notifications_news_subscription h4.o_returnbox_icon{background-image:url(../openolat/images/box_return.png) !important}div.o_notifications_news_context{color:#7D7D7D;font-size:90%}div.o_notifications_news_content{margin:0.5em 0 0.5em 0}div.o_notifications_news_content ul{list-style-type:none;margin:0}#o_search_form{margin:5px;position:relative}#o_search_form_toggler{background-image:url(../openolat/images/magnifier-zoom.png);cursor:pointer}#o_search_form_content div.b_form div.b_form_element_wrapper div.b_form_element_wrapper{margin:0.5em 0}#o_search_form div.b_contexthelp_wrapper a.b_contexthelp{right:0}#o_search_results{border-top:1px solid #eee;margin:5px}#o_search_results_header{line-height:16px;vertical-align:middle;background:url(../openolat/images/magnifier-zoom.png) no-repeat center left #f8f8f8;padding:2px 2px 2px 20px;margin-bottom:5px}#o_search_results_header div.o_search_results_stats{float:right;display:inline;font-size:90%}#o_search_results_header span.o_search_highlight{padding-left:2em}#o_search_results_header.o_search_did_you_mean,#o_search_results_header.o_search_no_results{background-image:url(../openolat/images/exclamation.png);color:#990000}#o_search_results_header.o_search_did_you_mean span.o_search_did_you_mean_words{color:#000;font-weight:bold}#o_search_results_header #o_search_pageing{padding-left:2em;display:inline}#o_search_pageing_bottom{text-align:center;background:#F8F8F8;border-bottom:1px solid #eee;padding:3px}#o_search_results_toomany{background:url(../openolat/images/exclamation.png) no-repeat center left #f8f8f8;color:#990000;padding:5px 0 3px 20px;position:relative;top:-5px;margin-bottom:5px}div.o_search_result{margin:0 0 1em 0;padding:1em 0 0 0}div.o_search_result_title a{font-weight:bold}div.o_search_result_title a.o_search_result_details_link{margin-left:1em;font-weight:normal;font-size:90%;vertical-align:bottom}div.o_search_result_excerpt{padding:2px 0 1px 0;font-size:95%;max-width:60em}div.o_search_result_excerpt span.o_search_result_highlight{font-weight:bold;background-color:#FFFF80}div.o_search_result_context,div.o_search_result_author,div.o_search_result_lastmod,div.o_search_result_type,div.o_search_result_desc{padding:1px 0;font-size:90%;color:#667}a.o_fulltext_search_button{background:url(../openolat/images/magnifier-zoom.png) top left no-repeat}div.error-box{width:400px;margin:30px auto;padding:20px;border:2px solid #025d8c;border-radius:6px;background:white;moz-box-shadow:0 2px 4px #cccccc;-ms-box-shadow:0 2px 4px #cccccc;-o-box-shadow:0 2px 4px #cccccc;-webkit-box-shadow:0 2px 4px #cccccc;box-shadow:0 2px 4px #cccccc;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-o-border-radius:6px}div.error-box h1{background-image:url(../openolat/images/icon_warning_32.png);background-repeat:no-repeat;padding-left:30px;font-size:14pt;font-weight:bold}.b_tag_list{background:url(../openolat/images/tag-label-yellow.png) 0px 3px no-repeat !important}.b_tag_icon{background-image:url(../openolat/images/tag-label-yellow.png)}div.b_tags{margin:2em 0}div.b_tags div{padding:0.5em 0 0 20px}div.b_tags span.b_tag{font-size:80%;padding:5px 2px 5px 2px;line-height:3em;white-space:nowrap}*:first-child + html div.holder{padding-bottom:2px}* html div.holder{padding-bottom:2px}.textbox-outer{list-style-type:none;margin-left:0em}a.bit-box,span.b_tag{-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border:1px solid #CAD8F3;background:#DEE7F8;padding:1px 5px 2px;padding-right:15px;position:relative}div.holder{font-size:80%;min-width:200px;width:auto;margin:0;overflow:hidden;height:auto !important;height:1%;padding:0px 0px 0;cursor:text}div.holder a{float:left;margin:0 5px 4px 0}div.holder a.bit{text-decoration:none;color:black}div.holder a.bit:active,div.holder a.bit:focus{outline:none}div.holder a.bit-box-focus{border-color:#598BEC;background:#598BEC;color:#fff}div.holder a.bit-input .maininput{border:1px solid #eeeeee}div.holder a.bit-input input{width:100px;margin:0;border:none;background:white;outline:0;padding:3px 0 2px}div.holder a.bit-input input.smallinput{width:20px}div.holder a.bit-hover{background:#BBCEF1;border:1px solid #6D95E0}div.holder a.bit-box-focus{background:#598BEC;color:#fff}div.holder a.bit-box a.closebutton{position:absolute;right:0;top:5px;display:block;width:7px;height:7px;font-size:1px;background:url("../openolat/images/tag_x.gif")}div.holder a.bit-box a.closebutton:hover{background-position:7px}div.holder a.bit-box a.closebutton:active{outline:none}div.holder a.bit-box-focus a.closebutton,div.holder a.bit-box-focus a.closebutton:hover{background-position:bottom}ol.textbox-outer{margin:0;padding:0}.textboxlist-auto{position:absolute;width:300px;overflow:visible;display:none;background:#eee;z-index:2}.textboxlist-auto .default{padding:5px 7px;border:1px solid #ccc;border-width:0 1px 1px}.textboxlist-auto ul{display:none;margin:0;padding:0;overflow:auto}.textboxlist-auto ul li{padding:5px 12px;z-index:1000;cursor:pointer;margin:0;list-style-type:none;border:1px solid #ccc;border-width:0 1px 1px}.textboxlist-auto ul li.loading-indicator{padding-left:30px;background-position:5px center;cursor:defat;font-size:100.01% !important;line-height:1.5em}.textboxlist-auto ul li.more-indicator{cursor:defat;font-style:italic}.textboxlist-auto ul li em{font-weight:bold;font-style:normal;background:#ccc}.textboxlist-auto ul li.auto-focus{background:#4173CC;color:#fff}.textboxlist-auto ul li.auto-focus em{background:none}input.inputMessage{color:#AAA;font-size:11px}.b_wizard .textbox-outer{background:url(../openolat/images/tag-label-yellow.png) top left no-repeat}.b_wizard .textbox-outer li{margin-left:18px}.b_wizard .textboxlist-auto ul li{margin-left:0}.b_wizard div.holder a.bit-input input{background:#f8f8f8;padding:0.4em}.clgen_font_arial{font-family:arial,helvetica}.clgen_font_arial_black{font-family:arial black,avant garde}.clgen_font_comic{font-family:comic sans ms,sans-serif}.clgen_font_courier{font-family:courier new,courier}.clgen_font_georgia{font-family:georgia,serif}.clgen_font_impact{font-family:impact,chicago}.clgen_font_lucida{font-family:lucida console,monaco,monospace}.clgen_font_palatino{font-family:palatino linotype,book antiqua,palatino,serif}.clgen_font_times{font-family:times new roman,times}.clgen_font_verdana{font-family:verdana,geneva,sans-serif}.clgen_font_xxlarge{font-size:130%}.clgen_font_xxsmall{font-size:70%}option.Black{background-color:Black}option.Navy{background-color:Navy}option.DarkBlue{background-color:DarkBlue}option.MediumBlue{background-color:MediumBlue}option.Blue{background-color:Blue}option.DarkGreen{background-color:DarkGreen}option.Green{background-color:Green}option.Teal{background-color:Teal}option.DarkCyan{background-color:DarkCyan}option.DeepSkyBlue{background-color:DeepSkyBlue}option.DarkTurquoise{background-color:DarkTurquoise}option.MediumSpringGreen{background-color:MediumSpringGreen}option.Lime{background-color:Lime}option.SpringGreen{background-color:SpringGreen}option.Aqua{background-color:Aqua}option.Cyan{background-color:Cyan}option.MidnightBlue{background-color:MidnightBlue}option.DodgerBlue{background-color:DodgerBlue}option.LightSeaGreen{background-color:LightSeaGreen}option.ForestGreen{background-color:ForestGreen}option.SeaGreen{background-color:SeaGreen}option.DarkSlateGray{background-color:DarkSlateGray}option.DarkSlateGrey{background-color:DarkSlateGrey}option.LimeGreen{background-color:LimeGreen}option.MediumSeaGreen{background-color:MediumSeaGreen}option.Turquoise{background-color:Turquoise}option.RoyalBlue{background-color:RoyalBlue}option.SteelBlue{background-color:SteelBlue}option.DarkSlateBlue{background-color:DarkSlateBlue}option.MediumTurquoise{background-color:MediumTurquoise}option.Indigo{background-color:Indigo}option.DarkOliveGreen{background-color:DarkOliveGreen}option.CadetBlue{background-color:CadetBlue}option.CornflowerBlue{background-color:CornflowerBlue}option.MediumAquaMarine{background-color:MediumAquaMarine}option.DimGray{background-color:DimGray}option.DimGrey{background-color:DimGrey}option.SlateBlue{background-color:SlateBlue}option.OliveDrab{background-color:OliveDrab}option.SlateGray{background-color:SlateGray}option.SlateGrey{background-color:SlateGrey}option.LightSlateGray{background-color:LightSlateGray}option.LightSlateGrey{background-color:LightSlateGrey}option.MediumSlateBlue{background-color:MediumSlateBlue}option.LawnGreen{background-color:LawnGreen}option.Chartreuse{background-color:Chartreuse}option.Aquamarine{background-color:Aquamarine}option.Maroon{background-color:Maroon}option.Purple{background-color:Purple}option.Olive{background-color:Olive}option.Gray{background-color:Gray}option.Grey{background-color:Grey}option.SkyBlue{background-color:SkyBlue}option.LightSkyBlue{background-color:LightSkyBlue}option.BlueViolet{background-color:BlueViolet}option.DarkRed{background-color:DarkRed}option.DarkMagenta{background-color:DarkMagenta}option.SaddleBrown{background-color:SaddleBrown}option.DarkSeaGreen{background-color:DarkSeaGreen}option.LightGreen{background-color:LightGreen}option.MediumPurple{background-color:MediumPurple}option.DarkViolet{background-color:DarkViolet}option.PaleGreen{background-color:PaleGreen}option.DarkOrchid{background-color:DarkOrchid}option.YellowGreen{background-color:YellowGreen}option.Sienna{background-color:Sienna}option.Brown{background-color:Brown}option.DarkGray{background-color:DarkGray}option.DarkGrey{background-color:DarkGrey}option.LightBlue{background-color:LightBlue}option.GreenYellow{background-color:GreenYellow}option.PaleTurquoise{background-color:PaleTurquoise}option.LightSteelBlue{background-color:LightSteelBlue}option.PowderBlue{background-color:PowderBlue}option.FireBrick{background-color:FireBrick}option.DarkGoldenRod{background-color:DarkGoldenRod}option.MediumOrchid{background-color:MediumOrchid}option.RosyBrown{background-color:RosyBrown}option.DarkKhaki{background-color:DarkKhaki}option.Silver{background-color:Silver}option.MediumVioletRed{background-color:MediumVioletRed}option.IndianRed{background-color:IndianRed}option.Peru{background-color:Peru}option.Chocolate{background-color:Chocolate}option.Tan{background-color:Tan}option.LightGray{background-color:LightGray}option.LightGrey{background-color:LightGrey}option.PaleVioletRed{background-color:PaleVioletRed}option.Thistle{background-color:Thistle}option.Orchid{background-color:Orchid}option.GoldenRod{background-color:GoldenRod}option.Crimson{background-color:Crimson}option.Gainsboro{background-color:Gainsboro}option.Plum{background-color:Plum}option.BurlyWood{background-color:BurlyWood}option.LightCyan{background-color:LightCyan}option.Lavender{background-color:Lavender}option.DarkSalmon{background-color:DarkSalmon}option.Violet{background-color:Violet}option.PaleGoldenRod{background-color:PaleGoldenRod}option.LightCoral{background-color:LightCoral}option.Khaki{background-color:Khaki}option.AliceBlue{background-color:AliceBlue}option.HoneyDew{background-color:HoneyDew}option.Azure{background-color:Azure}option.SandyBrown{background-color:SandyBrown}option.Wheat{background-color:Wheat}option.Beige{background-color:Beige}option.WhiteSmoke{background-color:WhiteSmoke}option.MintCream{background-color:MintCream}option.GhostWhite{background-color:GhostWhite}option.Salmon{background-color:Salmon}option.AntiqueWhite{background-color:AntiqueWhite}option.Linen{background-color:Linen}option.LightGoldenRodYellow{background-color:LightGoldenRodYellow}option.OldLace{background-color:OldLace}option.Red{background-color:Red}option.Fuchsia{background-color:Fuchsia}option.Magenta{background-color:Magenta}option.DeepPink{background-color:DeepPink}option.OrangeRed{background-color:OrangeRed}option.Tomato{background-color:Tomato}option.HotPink{background-color:HotPink}option.Coral{background-color:Coral}option.Darkorange{background-color:Darkorange}option.LightSalmon{background-color:LightSalmon}option.Orange{background-color:Orange}option.LightPink{background-color:LightPink}option.Pink{background-color:Pink}option.Gold{background-color:Gold}option.PeachPuff{background-color:PeachPuff}option.NavajoWhite{background-color:NavajoWhite}option.Moccasin{background-color:Moccasin}option.Bisque{background-color:Bisque}option.MistyRose{background-color:MistyRose}option.BlanchedAlmond{background-color:BlanchedAlmond}option.PapayaWhip{background-color:PapayaWhip}option.LavenderBlush{background-color:LavenderBlush}option.SeaShell{background-color:SeaShell}option.Cornsilk{background-color:Cornsilk}option.LemonChiffon{background-color:LemonChiffon}option.FloralWhite{background-color:FloralWhite}option.Snow{background-color:Snow}option.Yellow{background-color:Yellow}option.LightYellow{background-color:LightYellow}option.Ivory{background-color:Ivory}option.White{background-color:White}@media all{.fc-button-print span{background:url(../openolat/images/printer.png) no-repeat right 50%;padding:0 20px 0 0}#o_cal_manage_calendars{float:right;margin-right:10px;margin-top:5px}#o_cal_config_below_cal_container{padding:6px;position:relative;overflow:hidden}#o_cal_config_below_cal_container div.b_contexthelp_wrapper a.b_contexthelp{top:0;right:0}.o_cal_embedded_course_container{padding-top:6px}.o_cal_embedded_course_container #b_content_popup{position:absolute;top:0;right:0}.o_course_run_peekview .o_cal_peekview ul li{list-style:none}#o_cal_wv_actions{vertical-align:middle;line-height:16px;padding-right:30px;float:right;display:inline;position:relative}#o_cal_wv_nav{text-align:left;vertical-align:middle;line-height:16px;float:left;display:inline;position:absolute;top:5px;left:5px}.o_cal_wv_prev,.o_cal_wv_next{margin-left:0 !important;margin-right:0 !important}.o_cal_wv_prev span{width:20px;height:20px;float:left;background:transparent url(arrow_left_big.png) no-repeat center center}.o_cal_wv_next span{width:20px;height:20px;float:left;background:transparent url(arrow_right_big.png) no-repeat center center}#o_cal_wv{padding:0 0px 5px 0px;position:relative;width:auto}#o_cal_wv_header_wrapper{padding-top:10px;position:relative;clear:both}#o_cal_wv_header{border:1px solid #888;position:relative;height:20px;margin-bottom:2px;background:#FFF}.o_cal_wv_grid_wrapper{position:relative;border:1px solid #888;background:#FFF;padding-bottom:1px}.o_cal_wv_grid{position:relative;width:auto;height:600px;overflow:scroll !important;overflow-x:hidden !important}#o_cal_wv_daylong{border:1px solid #888;position:relative;width:auto;overflow:visible;margin-bottom:2px;background:#FFF}.o_cal_wv_dlday{border-left:1px solid #888;position:absolute;width:13%;background:#FFF}.o_cal_wv_time{position:absolute;width:9%}.o_cal_wv_legend_hours{margin:0;padding:0;height:20px;text-align:center;color:#888}.o_cal_wv_legend_hour{border-bottom:1px solid #DDD;margin:0;padding:0;height:39px}.o_cal_wv_legend_hour div{padding:3px 3px 0 3px;text-align:center;color:#444;overflow:hidden;height:16px}.o_cal_wv_day{border-left:1px solid #888;position:absolute;width:13%;border-collapse:collapse;background:#FFF}.o_cal_wv_legend_day{margin:0;padding:0;height:20px}.o_cal_wv_legend_day div{padding:3px 3px 0px 3px;height:15px;overflow:hidden;text-align:center;color:#888}.o_cal_wv_hour{border-bottom:1px dotted #DDD;margin:0;padding:0;height:19px}.o_cal_wv_half_hour{border-bottom:1px solid #DDD;margin:0;padding:0;height:19px}.o_cal_wv_half_hour:hover{background:#DCDDE0}.o_cal_wv_hour:hover{background:#DCDDE0}.o_cal_wv_row0{left:0}.o_cal_wv_row1{left:9%}.o_cal_wv_row2{left:22%}.o_cal_wv_row3{left:35%}.o_cal_wv_row4{left:48%}.o_cal_wv_row5{left:61%}.o_cal_wv_row6{left:74%}.o_cal_wv_row7{left:87%}.o_cal_wv_holiday{background:#eee}.o_cal_wv_today{background:#fff5cc}.o_cal_wv_lastday{border-right:1px solid #888}.o_cal_wv_lasthour{border-bottom:0}.o_cal_wv_event_wrapper{padding:0;margin:0;padding-bottom:2px;position:absolute;overflow:hidden;z-index:10}.o_cal_wv_event{border:1px solid;padding:0;margin:0;position:relative;overflow:hidden;z-index:10}.o_cal_wv_event_overflow{position:absolute;right:2px;z-index:20}.o_cal_wv_event:hover{border-color:#000;z-index:11}.o_cal_wv_event_header{height:1em;overflow:hidden;padding:0px 2px 3px 2px;font-weight:bold;vertical-align:bottom}.o_cal_wv_event_content{padding:1px 2px 1px 2px}.o_cal_toptoolbar{margin-bottom:0.8em;min-width:707px;padding-bottom:8px;border-bottom:1px solid #eee}.o_cal_toptoolbar .o_cal_pagination{float:left;height:2em;width:235px}.o_cal_toptoolbar .o_cal_gotodate{float:left;height:2em;width:350px}.o_cal_gotodate div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:0}.o_cal_toptoolbar .o_cal_search{float:left;height:2em}.o_cal_wv_devent_wrapper{padding:0;margin:0;position:relative;top:-1px;left:-1px;width:auto;height:20px}.o_cal_wv_devent{border:1px solid;padding:0;margin:0;width:100%;height:19px;overflow:hidden;z-index:11}.o_cal_wv_devent:hover{border-color:#000;z-index:12}.o_cal_wv_devent_content{padding:1px 2px 1px 2px}.o_cal_config{margin:2em 0;position:relative;padding:5px}.o_cal_manage_config{position:relative;padding:5px}.o_cal_manage_config fieldset{position:relative;display:inline}.o_cal_config fieldset{position:relative;display:inline}.o_cal_config_scrollwrapper{width:400px;height:100px;overflow:scroll;overflow-x:hidden;border:1px solid #BFBFBF;position:relative}.o_cal_config_row{clear:both;padding:2px 15px 0 0}.o_cal_config_enabled{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/check_on.png) no-repeat;float:left;display:inline}a.o_cal_config_enabled:hover{background:url(../openolat/images/cal/check_on_over.png) no-repeat}.o_cal_config_disabled{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/check_off.png) no-repeat;float:left;display:inline}.o_cal_config_calendar{border:1px solid;padding:0;margin:0;padding:1px 6px 1px 4px;position:relative;height:14px;width:200px;overflow:hidden;float:left;display:inline}.o_cal_config_chosecolor{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/color.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_subscribeical{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_remove_subscribeical{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export_remove.png) no-repeat 0 0;float:left;display:inline}a.o_cal_config_unsubscribe{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_remove.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_regenerate_link{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export_regen.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_remove_cal{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/delete.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_addevent{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--plus.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_importevent{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--arrow.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_readonly{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--plus.png) no-repeat 0 0;opacity:0.6;float:left;display:inline}#o_cal_colorchooser{background:#DCDDE0;border:1px solid #999999;float:left;display:inline;padding:3px;position:relative}#o_cal_colorchooser div{position:relative;border:1px solid #FFF;margin:5px;float:left;display:inline}#o_cal_colorchooser div:hover{border:1px solid #000}#o_cal_colorchooser a{position:relative;width:20px;height:20px;float:left;display:inline}.o_cal_colorchooser_selected{background:url(../openolat/images/cal/selectedcolor.gif) no-repeat 2px 2px}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5d5d5d !important}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:white !important}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:white !important}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5d5d5d !important}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:white !important}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:white !important}div.o_cal_gotodate div.b_form_element{margin-left:0%;margin-top:-4px}div.o_cal_search_subscribe{float:right;margin-right:20px}div.o_cal_week_year_label{font-weight:bold;margin-top:8px}.o_cal_config_regenerate_link{position:relative;float:left;display:inline}.o_cal_wv_event_tooltip{display:none}.o_cal_tooltip_buttons{text-align:right}.o_cal_wv .x-tip-body div{padding:0.2em 0}div.o_cal_wv_event_tooltip_content{padding-top:1em}div.o_cal_tooltip_buttons{padding-top:1em}body.o_cal_print{background:white}body.o_cal_print .o_cal_toptoolbar.b_clearfix{display:none}body.o_cal_print .o_cal_wv{display:none}body.o_cal_print .o_cal_wv_print{display:block}body.o_cal_print #o_cal_config .b_float_right{display:none}body.o_cal_print #o_cal_config_below_cal_container .b_subcolumns{display:none}body.o_cal_print .o_cal_wv_print ul{list-style-type:none;margin:0 0 0 0;padding:0 0 0 0}body.o_cal_print .o_cal_event{clear:left;margin:0.2em 0}body.o_cal_print .o_cal_wv_list *{float:left;width:100%}body.o_cal_print .o_cal_event span{padding:0 0.4em;display:block}body.o_cal_print .o_cal_date{font-weight:bold}body.o_cal_print .o_cal_time{width:25%}body.o_cal_print .o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick;background:white}body.o_cal_print .o_cal_subject p{padding:0 0.4em;margin:0;color:black}body.o_cal_print .o_cal_location{float:right;width:34%}body.o_cal_print .o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}body.o_cal_print .o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block;color:black;background:white}}.o_glossary{margin:0 100px 0 100px}.o_glossary_entry{margin:0px 0 0px 0;padding:10px;border-top:1px solid #DCDDE0;border-left:1px solid #DCDDE0;border-right:1px solid #DCDDE0}.o_glossary_commands{float:right}.o_glossary_addcommand{float:right}.o_glossary dt{font-weight:bold}dt span.o_glossary_author{font-weight:normal}dt span.o_glossary_modifier{font-weight:normal;color:#98221F}dt span.o_glossary_modifier a,dt span.o_glossary_modifier a:hover{color:#98221F}dt o_glossary_synonym{font-size:80%;font-variant:small-caps;font-style:italic}dd{padding-left:20px;clear:both}.o_glossary_register{margin-bottom:10px}.o_glossary_register_active{font-weight:bold;background-color:lightgrey;font-size:120%}.o_tm_glossary{border-bottom:1px dotted #666699}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}@media print{.o_cal_toptoolbar.b_clearfix{display:none}.o_cal_wv{display:none}.o_cal_wv_print{display:block}#o_cal_config .b_float_right{display:none}#o_cal_config_below_cal_container .b_subcolumns{display:none}.o_cal_wv_print ul{list-style-type:none;margin-left:0}.o_cal_event{clear:left;margin:0.2em 0}.o_cal_wv_list *{float:left;width:100%}.o_cal_event span{padding:0 0.4em;display:block}.o_cal_date{font-weight:bold}.o_cal_time{width:25%}.o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick}.o_cal_subject p{padding:0 0.4em;margin:0}.o_cal_location{float:right;width:34%}.o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}.o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block}#o_cal_config_below_cal_container{border:none;background:none;overflow:visible}#o_cal_config_below_cal_container *{background:none;color:black}#o_cal_config_below_cal_container fieldset{border:none}#o_cal_config_below_cal_container fieldset legend{font-weight:bold}}#o_feed .o_box{border:1px solid #eee;padding:0.8em;margin-bottom:2em;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}#o_feed div.o_feed_edit{float:right;position:relative;top:0.2em;margin-right:0}#o_feed #o_link_container{margin-bottom:0.8em}#o_feed #o_link_container div.o_home{text-align:center}#o_feed #o_link_container div.o_older_items{float:left;display:inline}#o_feed #o_link_container div.o_newer_items{float:right;display:inline}#o_feed .b_year_navigation{text-align:center}#o_feed .b_year_navigation .b_months{border-top:1px solid #eee;padding-top:1em;margin-top:0.5em;clear:both;list-style:none}#o_feed .b_year_navigation span.b_disabled{background-image:none}div.o_feed_peekview{margin:1em 0 1em 0}div.o_feed_peekview h5{font-size:1em;position:relative;left:-20px}div.o_feed_peekview div.o_feed_peekview_item{padding-left:20px}#o_feed div.b_datecomp{top:2px;float:left;display:inline}#o_feed p.o_podcast_date{font-size:80%;color:#aaaaaa}#o_feed div.o_podcast_info img.icon{float:left;margin:0 1.5em 1.5em 0;max-width:120px;max-height:120px}#o_feed div.o_podcast_no_image{float:left;margin:0 1em 1em 0;width:100px;height:100px;color:#dfdfdf;background:white;text-align:center;padding:20px;border:2px dashed #dfdfdf;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}#o_feed div.o_podcast_no_image span{vertical-align:middle}#o_feed div.o_podcast_subscription{clear:both}#o_feed div.o_podcast_subscription a.o_podcast_rss_link{display:block;float:right;width:16px;height:16px;background:url(../openolat/images/feed.png) no-repeat}#o_feed div.o_podcast_episode{padding:10px;margin-top:20px;border:1px solid #dfdfdf;background-color:#fdfdfd;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}#o_feed div.o_podcast_episode div.b_ratings_and_comments{margin:2em 0 0 0;padding-bottom:0;border-bottom:0}#o_feed div.o_podcast_episode div.o_podcast_audio{margin-bottom:3px}#o_feed div.o_podcast_episode div.o_podcast_audio embed{width:200px;height:24px}#o_feed div.o_podcast_episode div.o_podcast_video{margin-bottom:3px}#o_feed div.o_podcast_episode div.o_podcast_video embed{width:200px;height:157px}#o_feed .back_link.o_podcast{margin-bottom:1.5em}div.o_podcast_peekview div.o_feed_peekview_item a.o_feed_item_icon{background-image:url(../openolat/images/control/speaker-volume.png)}#o_feed .o_blog_posts .o_post,#o_feed .o_blog_post .o_post{margin-bottom:1em;padding:10px;border:1px solid #dfdfdf;background-color:#fdfdfd;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}.o_post-readmorelinks{margin-top:1em;list-style:none}.o_post-readmorelinks,.o_post-readmorelinks li{margin-left:0;padding-left:0}#o_feed .o_blog_posts .o_draft{padding:0.8em;background-color:#fcf7ac;border:1px solid #fddc55}#o_feed .o_blog_posts .o_scheduled{padding:0.8em;background-color:#d9ffd0;border:1px solid #beffae}#o_feed div.o_blog_info div.o_blog_subscription{min-height:16px;padding-left:20px;background:url(../openolat/images/feed.png) no-repeat}#o_feed .o_blog_info .o_author,#o_feed .o_blog_posts .o_item_info{color:#7D7D7D;font-size:90%;margin:0}#o_feed .o_blog_posts p.o_item_info span.o_item_info_mod{color:#98221F}#o_feed .o_blog_post .back_link{margin-bottom:1.5em}div.o_blog_peekview div.o_feed_peekview_item a.o_feed_item_icon{background-image:url(../openolat/images/comment.png)}#o_instantmessaging_status_changer{padding:1em 0 0 0;margin:0}#o_instantmessaging_status_changer a.b_contexthelp{margin-top:5px;padding-right:5px}#o_instantmessaging_status_changer ul{list-style-type:none;padding:0;margin:0}#o_instantmessaging_status_changer li{padding:0;margin:0}#o_instantmessaging_status_changer li a{padding:0.1em 0 0.1em 20px;background-repeat:no-repeat;background-position:0 50%}.o_instantmessaging_chat_history{border:1px solid #ACAAAA;height:170px;font-size:90%;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_instantmessaging_chat_history div.o_instantmessaging_message_group{border-top:1px solid #eee;padding:3px 3px 3px 40px;min-height:40px;position:relative;background:#fff}.o_instantmessaging_chat_history div.o_instantmessaging_message_group.o_odd{background:#F4F4F4}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_avatar{position:absolute;top:3px;left:3px;border:1px solid #bbb;width:30px;height:30px;background-color:#fff;background-repeat:no-repeat;background-position:50% 50%}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_from{text-align:left;color:#999;text-decoration:none;font-weight:500}.o_instantmessaging_chat_history div.o_instantmessaging_message_group a:hover{color:#000;text-decoration:none}.o_instantmessaging_chat_history div.o_instantmessaging_message_group a:hover div.o_instantmessaging_from{color:#000}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_body{padding:3px 0 3px 0}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_body span.o_instantmessaging_date{text-align:right;color:#999;font-size:90%;font-weight:200}.o_instantmessaging_chat_form input{width:99%}.o_instantmessaging_chat_form div.b_button_group{margin-top:1em}#o_instantmessages_buddieslist{font-size:90%;padding:1em 0 0 0;margin:0}#o_instantmessages_buddieslist a.b_contexthelp{margin-top:5px;padding-right:5px}#o_instantmessages_buddieslist ul{list-style-type:none;padding:0;margin:0}#o_instantmessages_buddieslist li{margin:0;padding:0}#o_instantmessages_buddieslist li.o_instantmessaging_group{padding-bottom:0.5em}#o_instantmessages_buddieslist li.o_instantmessaging_group div.o_instantmessaging_groupname{padding:0 0 0 20px;background:url(../openolat/images/users.png) no-repeat 0 50%}#o_instantmessages_buddieslist a.o_instantmessaging_vip span{font-weight:bold}#o_instantmessages_buddieslist li a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler{border-bottom:1px #eee solid;margin:0 0 0.5em 0;padding:0 0 0.5em 0}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler span{white-space:nowrap}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%;margin-right:1em}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_showgroupswitch{background-image:url(../openolat/images/users_conf.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_hidegroupswitch{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6;background-image:url(../openolat/images/users_conf.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_showofflineswitch{background-image:url(../openolat/images/im/status-offline.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_hideofflineswitch{background-image:url(../openolat/images/im/status.png)}#o_instantmessages_buddy{margin:1em 0 2em 0}#o_instantmessages_buddy a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%}div.o_groupchat_roster{margin:0}div.o_groupchat_roster ul{list-style-type:none;margin:0;padding:0}div.o_groupchat_roster ul li{font-size:90%;margin:0;padding:0 0 0 20px;background:url(../openolat/images/user.png) no-repeat 0 50%}div.o_groupchat_roster ul li.o_instantmessaging_anonymous{background-image:url(../openolat/images/user_silhouette.png)}div.o_groupchat_roster ul li.o_instantmessaging_vip{font-weight:bold}div.o_groupchat_roster ul li.o_instantmessaging_vip.o_instantmessaging_anonymous{font-weight:normal}.o_instantmessaging_available_icon{background-image:url(../openolat/images/im/status.png)}.o_instantmessaging_dnd_icon{background-image:url(../openolat/images/im/status-away.png)}.o_instantmessaging_unavailable_icon{background-image:url(../openolat/images/im/status-offline.png)}.o_instantmessaging_new_msg_icon{background-image:url(../openolat/images/im/new_message.png)}.o_instantmessaging_chat_icon{background-image:url(../openolat/images/im/balloon-white-left.png)}.o_instantmessaging_refresh_icon{background-image:url(../openolat/images/qti/tries.png)}div.o_home_portaleditlink{position:absolute;top:1em;right:0.6em}.o_home_main{text-align:center}div.o_home_rsslink{clear:both;float:right;display:inline;margin:10px 0}div.o_home_rsslink a{float:right;display:inline}div.o_home_rsslink a.o_home_rsslink{background:url(../openolat/images/feed.png) no-repeat;width:16px;display:block;height:16px;line-height:0}.b_portlet{position:relative;margin:10px;min-height:13em}.b_portlet .b_portlet_showall{font-size:95%;position:absolute;right:0;top:0}.b_portlet .b_portlet_header{border-bottom:1px solid #94bed3;white-space:nowrap;overflow-y:hidden !important;overflow-x:hidden !important}.b_portlet .b_portlet_content{position:relative;padding:1em 0 0 0}.b_portlet div.b_portlet_table table{background:none;border:none}.b_portlet div.b_portlet_table table th,.b_portlet div.b_portlet_table table td{padding:0}.b_portlet div.b_portlet_table table tbody tr{background:transparent}.b_portlet div.b_portlet_table table tbody tr.b_table_odd td{background:transparent}.b_portlet div.b_portlet_table table tbody tr td{border:0 !important}.b_portlet div.b_portlet_table table tbody tr:hover,.b_portlet div.b_portlet_table table tbody tr:hover td,.b_portlet div.b_portlet_table table tbody tr:focus,.b_portlet div.b_portlet_table table tbody tr:focus td{background:transparent}.b_portlet div.b_portlet_table div.b_table_empty{background:none;padding:0;margin:0}div.o_portlet_repository_student td.b_first_child{width:24px}div.o_portlet_repository_teacher td.b_first_child{width:24px}.b_portlet .b_portlet_header{background-repeat:no-repeat;background-position:0% 50%;padding-left:27px;padding-top:5px;padding-bottom:5px}div.o_portlet_calendar div.b_portlet_header{background-image:url(../openolat/images/calendar_empty.png);padding-left:2px;padding-top:8px}div.o_portlet_calendar.o_day_1 div.b_portlet_header strong:before{content:"1";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_2 div.b_portlet_header strong:before{content:"2";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_3 div.b_portlet_header strong:before{content:"3";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_4 div.b_portlet_header strong:before{content:"4";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_5 div.b_portlet_header strong:before{content:"5";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_6 div.b_portlet_header strong:before{content:"6";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_7 div.b_portlet_header strong:before{content:"7";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_8 div.b_portlet_header strong:before{content:"8";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_9 div.b_portlet_header strong:before{content:"9";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_10 div.b_portlet_header strong:before{content:"10";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_11 div.b_portlet_header strong:before{content:"11";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_12 div.b_portlet_header strong:before{content:"12";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_13 div.b_portlet_header strong:before{content:"13";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_14 div.b_portlet_header strong:before{content:"14";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_15 div.b_portlet_header strong:before{content:"15";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_16 div.b_portlet_header strong:before{content:"16";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_17 div.b_portlet_header strong:before{content:"17";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_18 div.b_portlet_header strong:before{content:"18";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_19 div.b_portlet_header strong:before{content:"19";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_20 div.b_portlet_header strong:before{content:"20";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_21 div.b_portlet_header strong:before{content:"21";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_22 div.b_portlet_header strong:before{content:"22";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_23 div.b_portlet_header strong:before{content:"23";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_24 div.b_portlet_header strong:before{content:"24";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_25 div.b_portlet_header strong:before{content:"25";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_26 div.b_portlet_header strong:before{content:"26";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_27 div.b_portlet_header strong:before{content:"27";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_28 div.b_portlet_header strong:before{content:"28";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_29 div.b_portlet_header strong:before{content:"29";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_30 div.b_portlet_header strong:before{content:"30";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_31 div.b_portlet_header strong:before{content:"31";font-size:smaller;padding-right:16px}div.o_portlet_infomsg div.b_portlet_header{background-image:url(../openolat/images/comment.png)}div.o_portlet_quickstart div.b_portlet_header{background-image:url(../openolat/images/mouse.png)}div.o_portlet_bookmark div.b_portlet_header{background-image:url(../openolat/images/book-open-bookmark.png)}div.o_portlet_groups div.b_portlet_header{background-image:url(../openolat/images/users.png)}div.o_portlet_notes div.b_portlet_header{background-image:url(../openolat/images/sticky-note--pencil.png)}div.o_portlet_noti div.b_portlet_header{background-image:url(../openolat/images/mail.png)}div.o_portlet_eff div.b_portlet_header{background-image:url(../openolat/images/script-stamp.png)}div.o_portlet_repository_student div.b_portlet_header{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}div.o_portlet_repository_teacher div.b_portlet_header{background-image:url(../openolat/images/le_resources/book-open-text-image-red.png)}div.b_portlet_iframe div.b_portlet_header{background-image:url(../openolat/images/layer.png)}div.b_portlet_sysinfo div.b_portlet_header{background-image:url(../openolat/images/exclamation.png)}div.b_portlet_dyk div.b_portlet_header{background-image:url(../openolat/images/light-bulb.png)}div.o_portlet_infomessages div.b_portlet_header{background-image:url(../openolat/images/information-button.png)}div.b_portlet.o_pt_w_if div.b_portlet_header{background-image:url(../openolat/images/globe.png)}div.b_portlet.b_portlet_edit{background:#FFE793;border:1px solid #FF9E3E;padding:2px}div.b_portlet.b_portlet_edit .b_portlet_header{height:23px}div.b_portlet_toolbox{position:absolute;top:0;right:0;padding:2px;height:20px;overflow-y:hidden !important;overflow-x:hidden !important}div.b_portlet_toolbox a,div.b_portlet_toolbox span.b_disabled{background-repeat:no-repeat;background-position:1px 1px;float:right;width:18px;height:18px;overflow:hidden}div.b_portlet_toolbox div{display:inline}div.b_portlet_toolbox > a,div.b_portlet_toolbox > span{border:1px solid #888;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;background:#eee;background-repeat:no-repeat;background-position:center}div.b_portlet_toolbox a.b_portlet_edit_left{background-image:url(../openolat/images/arrow_left_big.png)}div.b_portlet_toolbox a.b_portlet_edit_right{background-image:url(../openolat/images/arrow_right_big.png)}div.b_portlet_toolbox a.b_portlet_edit_down{background-image:url(../openolat/images/arrow_down_big.png)}div.b_portlet_toolbox a.b_portlet_edit_up{background-image:url(../openolat/images/arrow_up_big.png)}div.b_portlet_toolbox a.b_portlet_edit_delete{background-image:url(../openolat/images/bin-metal-full.png)}div.b_portlet_toolbox a.b_portlet_edit_sort_auto{background-image:url(../openolat/images/table_sort.png)}div.b_portlet_toolbox a.b_portlet_edit_sort_manual{background-image:url(../openolat/images/table_gear.png)}div.b_portlet_toolbox span.b_portlet_edit_left_disabled{background-image:url(../openolat/images/arrow_left_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_right_disabled{background-image:url(../openolat/images/arrow_right_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_down_disabled{background-image:url(../openolat/images/arrow_down_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_up_disabled{background-image:url(../openolat/images/arrow_up_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_sort_auto_disabled{background-image:url(../openolat/images/table_sort.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_sort_manual_disabled{background-image:url(../openolat/images/table_gear.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}.b_toolboxes{padding:6px}.b_toolboxes .b_toolbox{margin-bottom:20px}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper{border-bottom:1px solid #94bed3;background:inherit}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head{vertical-align:top}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head strong{font-weight:bold}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head_icon{background:transparent no-repeat 3px 50%;padding-left:19px;line-height:1.2em;color:black}.b_toolboxes .b_toolbox .b_toolbox_content ul{padding:0 0 0 6px;margin:0;list-style:none}.b_toolboxes .b_toolbox .b_toolbox_content li{padding:0;margin:0;line-height:1.7em;white-space:nowrap}.b_toolboxes .b_toolbox .b_toolbox_content li a{color:#667;background-repeat:no-repeat;background-position:0 50%;padding-left:20px;display:block}.b_toolboxes .b_toolbox .b_toolbox_content li a:focus,.b_toolboxes .b_toolbox .b_toolbox_content li a:hover,.b_toolboxes .b_toolbox .b_toolbox_content li a:active{color:#504D4E;text-decoration:underline}.b_toolboxes .b_toolbox .b_toolbox_content li div.b_note,.b_toolboxes .b_toolbox .b_toolbox_content li div.b_important,.b_toolboxes .b_toolbox .b_toolbox_content li div.b_warning{padding:0 0 0 20px;margin:0;border-bottom:0}.b_toolboxes .b_toolbox .b_toolbox_content li a.b_toolbox_toggle{padding-left:0;display:inline}.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_toggle_wrapper{float:right;font-size:90%}.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_link.b_disabled,.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_disabled{color:#999;background:no-repeat 0 50% url(../openolat/images/bullet_white.png);padding-left:18px;display:block}div.b_portlet.o_pt_w_if div.b_portlet_header{background-image:url(../openolat/images/globe.png)}div.b_portlet p{margin-bottom:0}div.b_portlet_dyk_q{font-weight:bold}div.b_portlet_dyk_a{padding-top:5px}div.b_portlet_dyk_next{text-align:right}div.f_library_catalog div.b_tree ul{white-space:normal}div.f_library_catalog div.b_tree ul.b_tree_l1 li a.b_tree_icon{background-image:none !important}div.f_library_catalog div.f_metadata{background-color:#fcfcfc;margin-left:20px;padding:4px}div.f_library_catalog h4{padding-left:25px;background-repeat:no-repeat;background-position:center left}div.f_library_catalog div.f_folder_info div.f_metadata{margin-bottom:1.5em}div.f_library_catalog div.b_noti{right:90px}div.f_library_catalog div.f_thumbnails_switch{border:1px solid #E9EAEF;display:inline;position:absolute;top:0px;right:0px;float:right;padding:3px 3px 3px 23px}div.f_library_catalog div.f_thumbnails_on{background:url(../openolat/images/docs/document_preview.png) no-repeat 3px 50%}div.f_library_catalog div.f_thumbnails_off{background:url(../openolat/images/docs/document_preview.png) no-repeat 3px 50%;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=70);-moz-opacity:0.7;-khtml-opacity:0.7;opacity:0.7}div.f_library_catalog th,div.f_library_catalog td{text-align:left;font-size:0.9em;color:#999;margin:0;padding:0;border:0}div.f_library_catalog th{font-weight:bold;width:14em;vertical-align:top}div.f_library_catalog h3.b_filetype_folder{margin-top:20px}div.f_library_catalog div.f_item{margin-bottom:1em;padding:0.5em}div.f_library_catalog div.f_item div.f_item_thumbnail{width:200px;height:200px;float:left;margin-right:20px}div.f_library_catalog div.f_item div.f_item_links a{background-repeat:no-repeat}div.f_library_catalog div.f_item div.f_item_links a.b_filetype_file{display:block;width:70%;float:left;padding:2px 10px 2px 20px;background-repeat:no-repeat;margin:0}div.f_library_catalog div.f_item div.f_item_links a.f_permalink{text-decoration:none;display:block;width:9px;height:9px;float:right;padding:4px 2px 2px 2px;margin:0;background-position:center center}div.f_library_catalog div.f_item div.f_item_links span a.f_sendmail{text-decoration:none;background:url(../openolat/images/mail.png) no-repeat top left;display:block;width:16px;height:16px;float:right;padding:0 0 0 2px;margin:0}div.f_library_catalog div.f_item div.f_metadata{position:relative;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;moz-box-shadow:0 1px 2px #d3d3d3;-ms-box-shadow:0 1px 2px #d3d3d3;-o-box-shadow:0 1px 2px #d3d3d3;-webkit-box-shadow:0 1px 2px #d3d3d3;box-shadow:0 1px 2px #d3d3d3}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail{float:left;border-right:1px solid #eeeeee;margin-right:1em}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail_inner{width:200px;height:200px}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail_unavailable{width:200px;height:200px;background-repeat:no-repeat;background-position:50% 50%}div.f_library_catalog div.f_item div.f_metadata div.f_metadata_text{padding-bottom:35px}div.f_library_catalog div.f_item div.f_metadata div.f_metadata_text_inner{width:100%}div.f_library_catalog div.f_item div.f_metadata div.f_item_ratings{position:absolute;bottom:3px;right:3px;width:300px}div.f_library_catalog div.f_item div.f_metadata div.f_item_ratings div.b_ratings_and_comments{margin:0;border:none}div.f_library_catalog div.f_item_selected div.f_metadata{background-color:#F0F0F0 !important;moz-box-shadow:1 1px 4px #d3d3d3;-ms-box-shadow:1 1px 4px #d3d3d3;-o-box-shadow:1 1px 4px #d3d3d3;-webkit-box-shadow:1 1px 4px #d3d3d3;box-shadow:1 1px 4px #d3d3d3}div.f_library_catalog h3.f_search_results{background-image:url(../openolat/images/magnifier-zoom.png) !important}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox input{line-height:1.3em;margin:0;width:10em}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox input:focus{border:1px solid #504D4E}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox button{width:16px;height:16px;background:url(../openolat/images/magnifier-zoom.png) no-repeat;border:0;vertical-align:top}div.f_library_catalog_wide div.f_metadata{background-color:#fcfcfc}div.f_library_catalog_wide th,div.f_library_catalog_wide td{text-align:left;font-size:0.9em;color:#999;margin:0;padding:0;border:0}div.f_library_catalog_wide th{font-weight:bold;width:14em;vertical-align:top}div.f_library_catalog_wide h3.b_filetype_folder{margin-top:20px}div.f_library_catalog_wide div.f_item{margin-bottom:30px}div.f_library_catalog_wide div.f_item div.f_thumbnail{width:280px;height:158px;float:left;border-right:1px solid #999}div.f_library_catalog_wide div.f_item div.f_item_links a{background-repeat:no-repeat}div.f_library_catalog_wide div.f_item div.f_item_links a.b_filetype_file{display:block;width:70%;float:left;padding:2px 10px 2px 20px;background-repeat:no-repeat;margin:0}div.f_library_catalog_wide div.f_item div.f_item_links a.f_permalink{text-decoration:none;display:block;width:9px;height:9px;float:right;padding:4px 2px 2px 2px;margin:0;background-position:center center}div.f_library_catalog_wide div.f_item div.f_item_links span a.f_sendmail{text-decoration:none;background:url(../openolat/images/mail.png) no-repeat top left;display:block;width:16px;height:16px;float:right;padding:0 0 0 2px;margin:0}div.f_library_catalog_wide div.f_item div.f_metadata{position:relative;border:1px solid #999;moz-box-shadow:0 1px 2px #999999;-ms-box-shadow:0 1px 2px #999999;-o-box-shadow:0 1px 2px #999999;-webkit-box-shadow:0 1px 2px #999999;box-shadow:0 1px 2px #999999}div.f_library_catalog_wide div.f_item div.f_metadata div.f_thumbnail_inner{width:280px;height:158px}div.f_library_catalog_wide div.f_item div.f_metadata div.f_thumbnail_unavailable{width:280px;height:158px;background-image:url(../openolat/images/no_preview.png);background-repeat:no-repeat;background-position:50% 50%}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_text{margin:10px 220px 10px 300px}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_text_inner{width:100%}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_additional_infos{position:absolute;top:0;right:0;height:158px;width:210px;border-left:1px solid #999}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_additional_infos_inner{margin:10px 10px 10px 10px}div.f_library_catalog_wide div.f_item_selected div.f_metadata{background-color:#F0F0F0 !important;moz-box-shadow:1 1px 4px #d3d3d3;-ms-box-shadow:1 1px 4px #d3d3d3;-o-box-shadow:1 1px 4px #d3d3d3;-webkit-box-shadow:1 1px 4px #d3d3d3;box-shadow:1 1px 4px #d3d3d3}div.f_library_catalog_wide h3.f_search_results{background-image:url(../openolat/images/magnifier-zoom.png) !important}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox input{line-height:1.3em;margin:0;width:10em}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox input:focus{border:1px solid #504D4E}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox button{width:16px;height:16px;background:url(../openolat/images/magnifier-zoom.png) no-repeat;border:0;vertical-align:top}div.f_library_catalog_condensed div.f_item_condensed{width:280px;height:280px;margin-right:30px;margin-bottom:30px;float:left;-webkit-box-shadow:0 1px 2px 0 #999;box-shadow:0 1px 2px 0 #999;border:1px solid #999;background-color:#fcfcfc}div.f_library_catalog_condensed div.f_item_condensed div.f_thumbnail{height:158px;width:280px}div.f_library_catalog_condensed div.f_item_condensed div.f_metadata_text{padding:12px 8px 12px 12px}div.f_library_catalog_condensed div.f_item_condensed div.o_eff_statement_progress{width:200px;margin:20px 0px 0px 20px}div.f_library_overview img{float:right;max-width:50%}div.f_library_overview p{padding-left:20px}div.f_library_overview div.f_library_big_icon{float:right;background-repeat:no-repeat;background-size:100%;width:45%;height:300px;margin:0 20px 0 20px}div.f_library_overview div.f_library_newest_files ul li{white-space:normal;padding-bottom:0.3em}div.f_library_overview div.f_library_newest_files ul li a{background-position:top left;min-height:16px}.f_library_big_icon{background-image:url(../openolat/images/library_image.png)}.f_library_icon{background-image:url(../openolat/images/library.png)}.f_thumbnail_unavailable{background-image:url(../openolat/images/no_preview.png)}#b_main.o_coaching div.o_eff_statement_progress{width:100%;height:15px;background-color:#eeeeee;border:1px solid #777777}#b_main.o_coaching div.o_eff_statement_progress div.o_eff_statement_solved{height:15px;background:#94bed3;background:-moz-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #94bed3), color-stop(100%, #025d8c));background:-webkit-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-o-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-ms-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:linear-gradient(top, #94bed3 0%, #025d8c 100%)}#b_main.o_coaching .o_eff_statement_rg div.o_eff_statement_progress{background:#f85032;background:-moz-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f85032), color-stop(50%, #f16f5c), color-stop(51%, #f6290c), color-stop(100%, #e73827));background:-webkit-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-ms-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%)}#b_main.o_coaching .o_eff_statement_rg div.o_eff_statement_progress div.o_eff_statement_solved{background:#9dd53a;background:-moz-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #9dd53a), color-stop(50%, #a1d54f), color-stop(51%, #80c217), color-stop(100%, #7cbc0a));background:-webkit-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-o-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-ms-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%)}#b_main.o_coaching div.o_eff_statement_details{margin:10px 0 10px 0}#b_main.o_coaching .b_toolbar_center span.b_disabled{display:none}div.o_eff_statement_progress{width:100%;height:15px;background-color:#eeeeee;border:1px solid #777777}div.o_eff_statement_progress div.o_eff_statement_solved{height:15px;background-color:#81afca}.o_eff_statement_rg div.o_eff_statement_progress{background-color:red}.o_eff_statement_rg div.o_eff_statement_progress div.o_eff_statement_solved{background-color:green}div.o_eff_statement_details{margin:10px 0 10px 0}div.o_eff_statement_recalculating{padding-left:30px;background:transparent url(../openolat/images/ajax-loader.gif) no-repeat top left}.ui-widget{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-dialog{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-dialog .ui-widget-header .ui-icon-closethick{background:white url("../openolat/images/close.png") no-repeat center center}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:2px 30px 2px 5px}.ui-dialog.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-dialog.ui-widget-content{border-color:#025d8c}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-autocomplete-input{line-height:1.5em;font-size:98%}.ui-autocomplete{z-index:10000}.ui-autocomplete.ui-menu{padding:1px}.ui-autocomplete.ui-corner-all{border:1px solid #025d8c;border-top:none;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:2px;-webkit-border-bottom-left-radius:2px;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:2px;-moz-border-radius-bottomleft:2px;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px;moz-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3)}.ui-autocomplete a.ui-corner-all{border:none;margin:-1px;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0}.ui-autocomplete a.ui-corner-all.ui-state-focus{background:#ffdbc1}.ui-autocomplete .b_error_icon{color:#990000;font-style:italic}.ui-datepicker{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-datepicker .ui-widget-header .ui-datepicker-prev.ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:white url("../openolat/images/arrow_right_big.png") no-repeat center center}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:white url("../openolat/images/arrow_left_big.png") no-repeat center center}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #94bed3;background:#f3feff}.ui-datepicker.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-datepicker.ui-widget-content{border-color:#025d8c}.ui-tooltip{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-tooltip.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-tooltip.ui-widget-content{border:1px solid #025d8c}ul.tagit li.tagit-choice.ui-widget-content.ui-state-default{background:#DEE7F8;border:1px solid #CAD8F3}ul.tagit.ui-corner-all{border:none;background:none}.ui-layout-pane{border:none}.ui-layout-resizer{background:none;border-width:1px;border-style:dotted}.ui-layout-toggler-hover,.ui-layout-resizer-hover .ui-layout-toggler-hover{background-color:#025d8c}.ui-layout-resizer-open-hover,.ui-layout-resizer-dragging{background:#f3feff}.fc-state-highlight{background:#ffdbc1}@media print{.o_noprint{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}#b_toplink{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}body{font-size:10pt}.b_noti{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}#b_main.o_loginscreen{background-image:none}#b_main.o_home{background-image:none}#b_main.o_editor{background-image:none}#b_main{moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;border:none}body,#b_page_margins,#b_page,#b_main,#b_page_wrapper{margin:0;padding:0;border:0}body *{font-family:"Times New Roman", Times, serif}code,pre{font-family:"Courier New", Courier, mono}#b_page_margins,#b_page{width:100% !important;min-width:0;max-width:none}#b_footer,#b_topnav,#b_nav,#search{display:none}#b_col1,#b_col2{display:none}#b_col3{margin:0 !important;border:none !important}.b_c25l,.b_c33l,.b_c38l,.b_c50l,.b_c62l,.b_c66l,.b_c75l,.b_c25r,.b_c33r,.b_c38r,.b_c50r,.b_c62r,.b_c66r,.b_c75r{width:100%;margin:0;float:none;overflow:visible;display:table}.b_subc,.b_subcl,.b_subcr{margin:0;padding:0}h1,h2,h3,h4,h5,h6{page-break-after:avoid}#b_page a[href^="http:"],#b_page a[href^="https:"]{padding-left:0;background-image:none}#b_col1_content:before,#b_col2_content:before,#b_col3_content:before{content:"";color:#888;background:inherit;display:block;font-weight:700;font-size:1.5em}.b_floatbox,.b_subcolumns,.b_subcolums_oldgecko{overflow:visible;display:table}#jsMath_PrintWarning{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}.o_wiki_wrapper .b_c20l,.o_wiki_wrapper .o_wikimod_nav{display:none}.o_wiki_wrapper .b_c80r{width:100%}.o_wiki_wrapper .b_c80r div.b_tabbedpane_tabs{display:none}.o_cal_toptoolbar.b_clearfix{display:none}.o_cal_wv{display:none}.o_cal_wv_print{display:block}#o_cal_config .b_float_right{display:none}#o_cal_config_below_cal_container .b_subcolumns{display:none}.o_cal_wv_print ul{list-style-type:none;margin-left:0}.o_cal_event{clear:left;margin:0.2em 0}.o_cal_wv_list *{float:left;width:100%}.o_cal_event span{padding:0 0.4em;display:block}.o_cal_date{font-weight:bold}.o_cal_time{width:25%}.o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick}.o_cal_subject p{padding:0 0.4em;margin:0}.o_cal_location{float:right;width:34%}.o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}.o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block}#o_cal_config_below_cal_container{border:none;background:none;overflow:visible}#o_cal_config_below_cal_container *{background:none;color:black}#o_cal_config_below_cal_container fieldset{border:none}#o_cal_config_below_cal_container fieldset legend{font-weight:bold}} +**/@import url(all/content.css);.b_with_small_icon_left,div.b_table_wrapper div.b_table_empty{padding:2px 0 2px 20px;min-height:16px;background-position:0 50%;background-repeat:no-repeat}option.b_with_small_icon_left{padding:0 0 0 20px;vertical-align:middle;min-height:11px;background-position:0 50%;background-repeat:no-repeat}.b_with_small_icon_right,#b_main_toolbar div.b_breadcumb_close .b_close{padding:1px 20px 1px 0px;min-height:16px;background-position:100% 50%;background-repeat:no-repeat}.b_with_small_icon_only span{display:none}.b_small_icon{float:left;display:inline;width:16px;height:16px;background-position:0 50%;background-repeat:no-repeat}td a span.b_small_table_icon,td a.b_small_table_icon{padding-left:20px;width:16px;height:16px;background-position:2px 50%;background-repeat:no-repeat}a.b_small_icon:hover{text-decoration:none}.b_info_icon{background-image:url("../openolat/images/comment.png")}.b_warn_icon,div.b_table_wrapper div.b_table_empty{background-image:url("../openolat/images/exclamation.png")}.b_error_icon{background-image:url("../openolat/images/cross-circle.png")}.b_new_icon{background-image:url("../openolat/images/new-text.png")}.b_institution_icon{background-image:url("../openolat/images/home.png")}.b_group_icon{background-image:url("../openolat/images/users.png")}.b_group_icon.b_managed_icon{background-image:url("../openolat/images/managed_users.png")}.b_qpool_icon{background-image:url("../openolat/images/qti/pool.png")}.b_user_icon{background-image:url("../openolat/images/user.png")}.b_move_left_icon{background-image:url("../openolat/images/arrow_left_big.png")}.b_move_right_icon{background-image:url("../openolat/images/arrow_right_big.png")}.b_move_down_icon{background-image:url("../openolat/images/arrow_down_big.png")}.b_move_up_icon{background-image:url("../openolat/images/arrow_up_big.png")}.b_delete_icon{background-image:url("../openolat/images/bin-metal-full.png")}.b_share_icon{background-image:url("../openolat/images/share.png")}.b_status_enabled_icon{background-image:url("../openolat/images/tick.png")}.b_status_disabled_icon{background-image:url("../openolat/images/cross.png")}.b_edit_icon{background-image:url("../openolat/images/docs/document--pencil.png")}.b_add_icon{background-image:url("../openolat/images/plus-circle.png")}.b_open_icon{background-image:url("../openolat/images/control/control.png")}.b_star_icon{background-image:url(../openolat/images/star.png)}.b_star_small_icon{background-image:url(../openolat/images/star-small.png)}.o_fulltext_search_button{background-image:url("../openolat/images/magnifier-zoom.png")}.o_help_icon{background-image:url("../openolat/images/help.png")}.o_rss_icon{background-image:url("../openolat/images/feed.png")}.o_login_guests{background-image:url("../openolat/images/user_silhouette.png")}.o_login_pwd{background-image:url("../openolat/images/user_excl.png")}.o_login_register{background-image:url("../openolat/images/user_register.png")}.o_news_icon{background-image:url("../openolat/images/information-white.png")}.o_course_icon{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}.o_chat_icon{background-image:url("../openolat/images/balloons-box.png")}.o_admin_icon{background-image:url("../openolat/images/wrench-screwdriver.png")}.o_calendar_icon{background-image:url("../openolat/images/calendar.png")}.o_locked_icon{background-image:url("../openolat/images/locked.png")}.b_backward_icon{background-image:url("../openolat/images/arrow_left.png")}.b_forward_icon{background-image:url("../openolat/images/arrow_right.png")}.b_flag_en{background-image:url("../openolat/images/flags/gb.png")}.b_flag_de{background-image:url("../openolat/images/flags/de.png")}.b_flag_fr{background-image:url("../openolat/images/flags/fr.png")}.b_flag_it{background-image:url("../openolat/images/flags/it.png")}.b_flag_es{background-image:url("../openolat/images/flags/es.png")}.b_flag_da{background-image:url("../openolat/images/flags/dk.png")}.b_flag_cs{background-image:url("../openolat/images/flags/cz.png")}.b_flag_el{background-image:url("../openolat/images/flags/gr.png")}.b_flag_ee{background-image:url("../openolat/images/flags/ee.png")}.b_flag_ru{background-image:url("../openolat/images/flags/ru.png")}.b_flag_pl{background-image:url("../openolat/images/flags/pl.png")}.b_flag_zh_CN{background-image:url("../openolat/images/flags/cn.png")}.b_flag_zh_TW{background-image:url("../openolat/images/flags/tw.png")}.b_flag_lt{background-image:url("../openolat/images/flags/lt.png")}.b_flag_fa{background-image:url("../openolat/images/flags/ir.png")}.b_flag_pt_PT{background-image:url("../openolat/images/flags/pt.png")}.b_flag_pt_BR{background-image:url("../openolat/images/flags/br.png")}.b_flag_tr{background-image:url("../openolat/images/flags/tr.png")}.b_flag_hu{background-image:url("../openolat/images/flags/hu.png")}.b_flag_sq{background-image:url("../openolat/images/flags/al.png")}.b_flag_in{background-image:url("../openolat/images/flags/id.png")}.b_flag_ar{background-image:url("../openolat/images/flags/eg.png")}.b_flag_rm{background-image:url("../openolat/images/flags/rm.png")}.b_flag_af{background-image:url("../openolat/images/flags/za.png")}.b_flag_vi{background-image:url("../openolat/images/flags/vn.png")}.b_flag_mn{background-image:url("../openolat/images/flags/mn.png")}.b_flag_iw{background-image:url("../openolat/images/flags/il.png")}.b_flag_ko{background-image:url("../openolat/images/flags/kr.png")}.b_flag_nl_NL{background-image:url("../openolat/images/flags/nl.png")}.b_flag_jp{background-image:url("../openolat/images/flags/jp.png")}.b_flag_nb_NO{background-image:url("../openolat/images/flags/no.png")}.b_flag_et_EE{background-image:url("../openolat/images/flags/ee.png")}.b_flag_bg{background-image:url("../openolat/images/flags/bg.png")}.b_flag_hi_IN_ASIA{background-image:url("../openolat/images/flags/in.png")}.b_flag_ar_LB{background-image:url("../openolat/images/flags/lb.png")}.b_flag_gl_ES{background-image:url("../openolat/images/flags/galicia.png")}.b_filetype_file,.b_filetype_ico{background-image:url("../openolat/images/docs/document_plain.png") !important}.b_filetype_folder{background-image:url("../openolat/images/folder.png") !important}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.b_filetype_folder,.b_filetype_folder_open{background-image:url("../openolat/images/folder_open.png") !important}.b_filetype_zip,.b_filetype_gz,.b_filetype_tar,.b_filetype_tgz{background-image:url("../openolat/images/docs/document-zipper.png") !important}.b_filetype_css,.b_filetype_js,.b_filetype_java,.b_filetype_numbers,.b_filetype_ods,.b_filetype_xml,.b_filetype_xsl{background-image:url("../openolat/images/docs/document_tags.png") !important}.b_filetype_bat_icon,.b_filetype_bat,.b_filetype_exe,.b_filetype_app,.b_filetype_sh{background-image:url("../openolat/images/docs/document-binary.png") !important}.b_filetype_xls,.b_filetype_xlsx{background-image:url("../openolat/images/docs/document-excel.png") !important}.b_filetype_swf,.b_filetype_flv{background-image:url("../openolat/images/docs/document-flash-movie.png") !important}.b_filetype_htm,.b_filetype_html{background-image:url("../openolat/images/docs/document-globe.png") !important}.b_filetype_ai{background-image:url("../openolat/images/docs/document-illustrator.png") !important}.b_filetype_png,.b_filetype_tiff,.b_filetype_webp,.b_filetype_gif,.b_filetype_ico,.b_filetype_jpeg,.b_filetype_bmp,.b_filetype_odg,.b_filetype_eps,.b_filetype_jpg{background-image:url("../openolat/images/docs/document-image.png") !important}.b_filetype_avi_icon,.b_filetype_avi,.b_filetype_dvi,.b_filetype_mp4,.b_filetype_m4v,.b_filetype_webm,.b_filetype_ogg,.b_filetype_video,.b_filetype_mov,.b_filetype_mpeg,.b_filetype_mpg,.b_filetype_qt,.b_filetype_ra,.b_filetype_ram{background-image:url("../openolat/images/docs/document-film.png") !important}.b_filetype_midi,.b_filetype_audio,.b_filetype_mp3,.b_filetype_m3u,.b_filetype_wav{background-image:url("../openolat/images/docs/document-music.png") !important}.b_filetype_ps,.b_filetype_pdf{background-image:url("../openolat/images/docs/document-pdf.png") !important}.b_filetype_psd{background-image:url("../openolat/images/docs/document-photoshop.png") !important}.b_filetype_key,.b_filetype_odp,.b_filetype_ppt,.b_filetype_pptx{background-image:url("../openolat/images/docs/document-powerpoint.png") !important}.b_filetype_odf,.b_filetype_rtf,.b_filetype_readme,.b_filetype_README,.b_filetype_log,.b_filetype_txt{background-image:url("../openolat/images/docs/document-text.png") !important}.b_filetype_pages,.b_filetype_doc,.b_filetype_docx{background-image:url("../openolat/images/docs/document-word.png") !important}.b_large_icon.b_filetype_file{background-image:url("../openolat/images/docs_large/file.png") !important}.b_large_icon.b_filetype_folder{background-image:url("../openolat/images/docs_large/folder.png") !important}.b_large_icon.b_filetype_zip,.b_large_icon.b_filetype_gz,.b_large_icon.b_filetype_tar,.b_large_icon.b_filetype_tgz{background-image:url("../openolat/images/docs_large/compressed.png") !important}.b_large_icon.b_filetype_css{background-image:url("../openolat/images/docs_large/css.png") !important}.b_large_icon.b_filetype_js,.b_large_icon.b_filetype_java,.b_large_icon.b_filetype_xml,.b_large_icon.b_filetype_xsl,.b_large_icon.b_filetype_bat,.b_large_icon.b_filetype_exe,.b_large_icon.b_filetype_app,.b_large_icon.b_filetype_sh{background-image:url("../openolat/images/docs_large/developer.png") !important}.b_large_icon.b_filetype_numbers{background-image:url("../openolat/images/docs_large/numbers.png") !important}.b_large_icon.b_filetype_ods,.b_large_icon.b_filetype_xls,.b_large_icon.b_filetype_xlsx{background-image:url("../openolat/images/docs_large/excel.png") !important}.b_large_icon.b_filetype_swf,.b_large_icon.b_filetype_flv{background-image:url("../openolat/images/docs_large/flash.png") !important}.b_large_icon.b_filetype_htm,.b_large_icon.b_filetype_html{background-image:url("../openolat/images/docs_large/html.png") !important}.b_large_icon.b_filetype_ai{background-image:url("../openolat/images/docs_large/illustrator.png") !important}.b_large_icon.b_filetype_png,.b_large_icon.b_filetype_tiff,.b_large_icon.b_filetype_webp,.b_large_icon.b_filetype_gif,.b_large_icon.b_filetype_ico,.b_large_icon.b_filetype_jpeg,.b_large_icon.b_filetype_bmp,.b_large_icon.b_filetype_odg,.b_large_icon.b_filetype_eps,.b_large_icon.b_filetype_jpg{background-image:url("../openolat/images/docs_large/image.png") !important}.b_large_icon.b_filetype_avi,.b_large_icon.b_filetype_dvi,.b_large_icon.b_filetype_mp4,.b_large_icon.b_filetype_m4v,.b_large_icon.b_filetype_webm,.b_large_icon.b_filetype_ogg,.b_large_icon.b_filetype_video,.b_large_icon.b_filetype_mov,.b_large_icon.b_filetype_mpeg,.b_large_icon.b_filetype_mpg,.b_large_icon.b_filetype_qt,.b_large_icon.b_filetype_ra,.b_large_icon.b_filetype_ram{background-image:url("../openolat/images/docs_large/movie.png") !important}.b_large_icon.b_filetype_midi,.b_large_icon.b_filetype_audio,.b_large_icon.b_filetype_mp3,.b_large_icon.b_filetype_m3u,.b_large_icon.b_filetype_wav{background-image:url("../openolat/images/docs_large/music.png") !important}.b_large_icon.b_filetype_ps,.b_large_icon.b_filetype_pdf{background-image:url("../openolat/images/docs_large/pdf.png") !important}.b_large_icon.b_filetype_psd{background-image:url("../openolat/images/docs_large/photoshop.png") !important}.b_large_icon.b_filetype_key{background-image:url("../openolat/images/docs_large/keynote.png") !important}.b_large_icon.b_filetype_odp,.b_large_icon.b_filetype_ppt,.b_large_icon.b_filetype_pptx{background-image:url("../openolat/images/docs_large/powerpoint.png") !important}.b_large_icon.b_filetype_odf,.b_large_icon.b_filetype_rtf,.b_large_icon.b_filetype_readme,.b_large_icon.b_filetype_README,.b_large_icon.b_filetype_log,.b_large_icon.b_filetype_txt{background-image:url("../openolat/images/docs_large/text.png") !important}.b_large_icon.b_filetype_pages{background-image:url("../openolat/images/docs_large/pages.png") !important}.b_large_icon.b_filetype_doc,.b_large_icon.b_filetype_docx{background-image:url("../openolat/images/docs_large/word.png") !important}li.b_nav_site div,li.b_nav_tab div{background:url("../openolat/images/application.png") no-repeat left 50%;padding-left:18px}li.b_resource_BusinessGroup div,.o_BusinessGroup_icon{background-image:url("../openolat/images/users.png")}li.b_resource_GroupCard div,.o_GroupCard_icon{background-image:url("../openolat/images/users.png")}li.b_resource_CourseModule div,.o_CourseModule_icon{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}.o_CourseModule_icon.b_managed_icon{background-image:url("../openolat/images/le_resources/book-open-text-image_locked.png")}li.b_resource_HOMEPAGECONFIG div,.o_HOMEPAGECONFIG_icon,li.b_resource_Identity div{background-image:url("../openolat/images/card-address.png")}li.b_resource_FileResource-SHAREDFOLDER div,.o_FileResource-SHAREDFOLDER_icon{background-image:url("../openolat/images/folder_shared.png")}li.b_resource_FileResource-WIKI div,.o_FileResource-WIKI_icon{background-image:url("../openolat/images/le_resources/wiki.png")}li.b_resource_FileResource-PODCAST div,.o_FileResource-PODCAST_icon{background-image:url("../openolat/images/le_resources/media-player-cast.png")}li.b_resource_FileResource-BLOG div,.o_FileResource-BLOG_icon{background-image:url("../openolat/images/le_resources/blog.png")}li.b_resource_FileResource-MOVIE div,.o_FileResource-MOVIE_icon{background-image:url("../openolat/images/docs/document-film.png")}li.b_resource_FileResource-PDF div,.o_FileResource-PDF_icon{background-image:url("../openolat/images/docs/document-pdf.png")}li.b_resource_FileResource-PPT div,.o_FileResource-PPT_icon{background-image:url("../openolat/images/docs/document-powerpoint.png")}li.b_resource_FileResource-DOC div,.o_FileResource-DOC_icon{background-image:url("../openolat/images/docs/document-word.png")}li.b_resource_FileResource-IMSCP div,.o_FileResource-IMSCP_icon{background-image:url("../openolat/images/le_resources/box.png")}li.b_resource_FileResource-SCORMCP div,.o_FileResource-SCORMCP_icon{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png")}li.b_resource_FileResource-FILE div,.o_FileResource-FILE_icon{background-image:url("../openolat/images/docs/document_plain.png")}li.b_resource_FileResource-IMAGE div,.o_FileResource-IMAGE_icon{background-image:url("../openolat/images/docs/document-image.png")}li.b_resource_FileResource-SOUND div,.o_FileResource-SOUND_icon{background-image:url("../openolat/images/docs/document-music.png")}li.b_resource_FileResource-XLS div,.o_FileResource-XLS_icon{background-image:url("../openolat/images/docs/document-excel.png")}li.b_resource_FileResource-ANIM div,.o_FileResource-ANIM_icon{background-image:url("../openolat/images/docs/document-image.png")}li.b_resource_FileResource-SURVEY div,.o_FileResource-SURVEY_icon{background-image:url("../openolat/images/le_resources/survey.png")}li.b_resource_FileResource-TEST div,.o_FileResource-TEST_icon{background-image:url("../openolat/images/le_resources/test.png")}li.b_resource_FileResource-GLOSSARY div,.o_FileResource-GLOSSARY_icon{background-image:url("../openolat/images/le_resources/glossary.png")}li.b_resource_org-olat-search-ui-SearchController div,.o_org-olat-search-ui-SearchController_icon{background-image:url("../openolat/images/magnifier-zoom.png")}li.b_resource_EPStructuredMapTemplate div{background-image:url("../openolat/images/le_resources/portfolio.png")}li a.o_toolbox_course{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}li a.o_toolbox_content{background-image:url("../openolat/images/le_resources/box.png")}li a.o_toolbox_scorm{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png")}li a.o_toolbox_test{background-image:url("../openolat/images/le_resources/test.png")}li a.o_toolbox_questionnaire{background-image:url("../openolat/images/le_resources/survey.png")}li a.o_toolbox_wiki{background-image:url("../openolat/images/le_resources/wiki.png")}li a.o_toolbox_podcast{background-image:url("../openolat/images/le_resources/media-player-cast.png")}li a.o_toolbox_blog{background-image:url("../openolat/images/le_resources/blog.png")}li a.o_toolbox_glossary{background-image:url("../openolat/images/le_resources/glossary.png")}li a.o_toolbox_sharedfolder{background-image:url("../openolat/images/folder_shared.png")}li a.o_toolbox_coursefolder{background-image:url("../openolat/images/le_resources/blue-folder.png")}li a.o_toolbox_courseareas{background-image:url("../openolat/images/users.png")}li a.o_toolbox_portfolio{background-image:url("../openolat/images/le_resources/portfolio.png")}li a.b_toolbox_link{background-image:url("../openolat/images/bullet_black.png")}li a.b_toolbox_doc{background-image:url("../openolat/images/docs/document_plain.png")}li a.b_toolbox_preview{background-image:url("../openolat/images/docs/document_preview.png")}li a.b_toolbox_publish{background-image:url("../openolat/images/docs/document_share.png")}li a.b_toolbox_move{background-image:url("../openolat/images/docs/document_move.png")}li a.b_toolbox_close{background-image:url("../openolat/images/close.png")}li a.b_toolbox_delete{background-image:url("../openolat/images/bin-metal-full.png")}li a.b_toolbox_copy,.b_copy_icon{background-image:url("../openolat/images/docs/document-copy.png")}.o_midlock{top:9px;left:9px;background-image:url("../openolat/images/decorator/deco_condition.png")}.o_miderr{top:8px;left:-2px;background-image:url("../openolat/images/decorator/deco_error.png")}.o_midwarn{top:8px;left:-2px;background-image:url("../openolat/images/decorator/deco_warn.png")}.o_midpub{top:-2px;left:9px;background-image:url("../openolat/images/decorator/deco_ok.png")}span.o_passed{background:url(../openolat/images/tick.png) no-repeat right 50%;padding:0 25px 0 0;color:#009900}span.o_notpassed{background:url(../openolat/images/cross.png) no-repeat right 50%;padding:0 25px 0 0;color:#990000}.o_efficiencystatement_icon{background-image:url(../openolat/images/seal.png)}span.o_green_led{background:url(../openolat/images/green_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_yellow_led{background:url(../openolat/images/yellow_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_red_led{background:url(../openolat/images/red_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_black_led{background:url(../openolat/images/black_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_grey_led{background:url(../openolat/images/grey_led.png) no-repeat left 50%;padding:0 0 0 25px}.o_bc_icon{background-image:url("../openolat/images/folder.png") !important}.o_co_icon{background-image:url("../openolat/images/mail.png") !important}.o_cp_icon{background-image:url("../openolat/images/le_resources/box.png") !important}.o_cp_org{background-image:url("../openolat/images/le_resources/box.png") !important}.o_cp_item{background-image:url("../openolat/images/docs/document-text.png") !important}.o_dialog_icon{background-image:url("../openolat/images/docs/document_discuss.png") !important}.o_en_icon{background-image:url("../openolat/images/enrol.png") !important}.o_fo_icon{background-image:url("../openolat/images/forum/forum.png") !important}.o_iqself_icon{background-image:url("../openolat/images/le_resources/selftest.png") !important}.o_iqsurv_icon{background-image:url("../openolat/images/le_resources/survey.png") !important}.o_iqtest_icon{background-image:url("../openolat/images/le_resources/test.png") !important}.o_qitem_icon{background-image:url("../openolat/images//question-octagon-frame.png") !important}.o_ms_icon{background-image:url("../openolat/images/le_resources/thumb-up.png") !important}.o_scorm_icon,.o_scorm_org{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png") !important}.o_scorm_item{background-image:url("../openolat/images/docs/document-text.png") !important}.o_scorm_asset{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png") !important}.o_sp_icon{background-image:url("../openolat/images/docs/document-text.png") !important}.o_st_icon{background-image:url("../openolat/images/node-select-all.png") !important}.o_ta_icon{background-image:url("../openolat/images/docs/document-task.png") !important}.o_tu_icon{background-image:url("../openolat/images/docs/document-import.png") !important}.o_wiki_icon{background-image:url("../openolat/images/le_resources/wiki.png") !important}.o_ll_icon{background-image:url("../openolat/images/docs/document_linklist.png") !important}.o_cl_icon{background-image:url("../openolat/images/clipboard-task.png") !important}.o_den_icon{background-image:url("../openolat/images/clock.png") !important}.o_projectbroker_icon{background-image:url("../openolat/images/projectbroker.png") !important}.o_podcast_icon{background-image:url("../openolat/images/le_resources/media-player-cast.png") !important}.o_blog_icon{background-image:url("../openolat/images/le_resources/blog.png") !important}.o_cal_icon{background-image:url("../openolat/images/calendar.png") !important}.o_lti_icon{background-image:url("../openolat/images/docs/document-node.png") !important}.o_vc_icon{background-image:url("../openolat/images/projection-screen.png") !important}.o_vitero_icon{background-image:url("../openolat/images/vitero.png") !important}.o_openmeetings_icon{background-image:url("../openolat/images/projection-screen-presentation.png") !important}.o_ep_icon{background-image:url("../openolat/images/le_resources/portfolio.png") !important}.o_EPStructuredMapTemplate_icon{background-image:url("../openolat/images/portfolio/briefcase.png") !important}.o_infomsg_icon{background-image:url("../openolat/images/information-button.png") !important}.o_cmembers_icon{background-image:url("../openolat/images/users.png") !important}.fx_members_icon{background-image:url("../openolat/images/users_members.png") !important}body#b_body .o_CourseModule_icon_closed{background-image:url("../openolat/images/le_resources/book-open-text-image_locked.png")}.o_portrait_dummy{background-image:url(../openolat/images/dummy.png);width:100px;height:100px}.o_portrait_dummy_small{background-image:url(../openolat/images/dummy_small.png);width:30px;height:30px}.o_portrait_dummy_female_big{background-image:url(../openolat/images/dummy_female_big.png);width:100px;height:100px}.o_portrait_dummy_female_small{background-image:url(../openolat/images/dummy_female_small.png);width:30px;height:30px}.o_portrait_dummy_male_big{background-image:url(../openolat/images/dummy_male_big.png);width:100px;height:100px}.o_portrait_dummy_male_small{background-image:url(../openolat/images/dummy_male_small.png);width:30px;height:30px}.o_portrait_anonymous{background-image:url(../openolat/images/dummy.png);width:100px;height:100px}.o_portrait_anonymous_small{background-image:url(../openolat/images/dummy_small.png);width:30px;height:30px}@media all{html{min-height:100%}body{min-height:100%;overflow-y:scroll;background:#ececec url("../openolat/images/sky.png") repeat-x left 83px}#b_page_margins{min-width:740px;max-width:1324px;margin:0 auto;width:100%;height:100%;position:relative;z-index:1}#b_main_toolbar{clear:both;height:24px;line-height:24px;vertical-align:middle;margin:0;padding:1px 0 0 0;border-bottom:1px solid #dadada;background-color:white;moz-box-shadow:0 0 14px #d3d3d3;-ms-box-shadow:0 0 14px #d3d3d3;-o-box-shadow:0 0 14px #d3d3d3;-webkit-box-shadow:0 0 14px #d3d3d3;box-shadow:0 0 14px #d3d3d3}#b_main_toolbar ul li a span{line-height:24px}#b_main{background:#fff;min-height:550px;clear:both;moz-box-shadow:0 2px 14px #d3d3d3;-ms-box-shadow:0 2px 14px #d3d3d3;-o-box-shadow:0 2px 14px #d3d3d3;-webkit-box-shadow:0 2px 14px #d3d3d3;box-shadow:0 2px 14px #d3d3d3}#b_page a#b_toplink{position:absolute;bottom:1em;right:1em;background:transparent url(../openolat/images/arrow_up.png) 0 50% no-repeat;padding-left:14px;z-index:5}#b_header,#b_page,#b_col1_content,#b_col2_content,#b_col3_content,#b_col3_content_inner{position:relative}#b_col1{overflow:hidden}#b_col1_content{padding:1em 10px 1em 0px}#b_col3{border-left:1px #DDD dotted;border-right:1px #DDD dotted}#b_col3_content{min-height:550px;padding:20px 20px 30px 20px}#b_col2_content{overflow:hidden;padding:1em 0}.b_hidecol2 #b_col3{margin-right:0 !important;border-right:none}.b_hidecol1 #b_col3{margin-left:0 !important;border-left:none}.b_hideboth #b_col3{margin-left:0 !important;margin-right:0 !important;border-left:none;border-right:none}.b_hideboth #b_col1,.b_hideboth #b_col2,.b_hidecol1 #b_col1,.b_hidecol2 #b_col2,#b_ie_clearing{display:none}.b_c15r,.b_c20r,.b_c80r,.b_c85r{float:right;margin-left:-5px}.b_c15l,.b_c15r{width:15%}.b_c20l,.b_c20r{width:20%}.b_c80l,.b_c80r{width:80%}.b_c85l,.b_c85r{width:85%}.b_subcolumns_oldgecko,.b_c20l,.b_c15l,.b_c80l,.b_c85l{float:left}div.b_iframe_wrapper iframe{width:100%;position:relative;top:0;left:0;border:none;margin:0;padding:0;background:transparent}#b_main.b_exception{padding-left:165px;padding-right:165px}#b_header{height:auto;min-height:30px;overflow:hidden;position:relative}#b_header #b_topnav{position:absolute;font-family:Century Gothic, Apple Gothic, sans-serif;right:0px;top:0px;padding:4px 15px 0px 0px;line-height:1.5em;min-height:1.5em}#b_header #b_topnav ul{margin:0}#b_header #b_topnav li,#b_header #b_topnav div,#b_header #b_topnav span{line-height:1.5em}#b_header #b_topnav .b_with_small_icon_right,#b_header #b_topnav #b_main_toolbar div.b_breadcumb_close .b_close,#b_main_toolbar div.b_breadcumb_close #b_header #b_topnav .b_close{padding:0 20px 0 0}#b_header #b_topnav .b_with_small_icon_left,#b_header #b_topnav div.b_table_wrapper div.b_table_empty,div.b_table_wrapper #b_header #b_topnav div.b_table_empty{padding:0 0 0 20px}#b_header #b_topnav .b_small_icon{height:1.5em}#b_header #b_topnav #o_topnav_langchooser select{font-size:90%}#b_header #b_topnav #o_topnav_search input{font-size:90%;margin:0;width:10em}#b_header #b_topnav #o_topnav_search a.o_fulltext_search_button{height:1.5em;background-position:50% 50%}#b_header #b_topnav #o_topnav_printview a{background:url(../openolat/images/printer.png) no-repeat right 50%;padding:0 20px 0 0;margin:0}#b_header #b_topnav #o_topnav_logout a{background:url("../openolat/images/control/control-power.png") no-repeat right 50%;padding:0 20px 0 0;margin:0;font-weight:bold}#b_header #b_topnav li{float:left;list-style:none;margin-left:1.7em}#b_header #b_topnav li div.b_form_element_wrapper.b_form_horizontal{margin:0}#b_header #b_topnav li#o_topnav_imclient li{margin-left:0.5em}#b_nav_main{float:left;font-family:Century Gothic, Apple Gothic, sans-serif}#b_nav_main ul{padding-left:40px;margin:0}#b_nav_main ul li{float:left;position:relative;list-style:none;margin:0px;padding:4px 3px 4px 12px;margin-right:2px;-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;background:rgba(255, 255, 255, 0.5)}#b_nav_main ul li a{padding:4px 12px 4px 3px}#b_nav_main ul li a:hover{text-decoration:none}#b_nav_main ul li.b_nav_site.b_nav_active,#b_nav_main ul li.b_nav_site:hover,#b_nav_main ul li.b_nav_site.b_exception{moz-box-shadow:0 -4px 8px -1px #d3d3d3;-ms-box-shadow:0 -4px 8px -1px #d3d3d3;-o-box-shadow:0 -4px 8px -1px #d3d3d3;-webkit-box-shadow:0 -4px 8px -1px #d3d3d3;box-shadow:0 -4px 8px -1px #d3d3d3;background:white}#b_nav_main ul li.b_nav_site.b_nav_active a.b_nav_tab_close,#b_nav_main ul li.b_nav_site:hover a.b_nav_tab_close,#b_nav_main ul li.b_nav_site.b_exception a.b_nav_tab_close{background-image:url(../openolat/images/cross_small_trimmed_blue.png)}#b_nav_main ul li.b_nav_site > div{padding-left:16px;background-repeat:no-repeat;background-position:0% 50%;background-image:url("../openolat/images/application.png")}#b_nav_main ul li.b_nav_site.o_site_home > div{background-image:url("../openolat/images/home.png")}#b_nav_main ul li.b_nav_site.o_site_admin > div{background-image:url("../openolat/images/wrench-screwdriver.png")}#b_nav_main ul li.b_nav_site.o_site_useradmin > div{background-image:url("../openolat/images/user_conf.png")}#b_nav_main ul li.b_nav_site.o_site_groupsmanagement > div{background-image:url("../openolat/images/users_conf.png")}#b_nav_main ul li.b_nav_site.o_site_repository > div{background-image:url("../openolat/images/books-stack.png")}#b_nav_main ul li.b_nav_site.o_site_groups > div{background-image:url("../openolat/images/users.png")}#b_nav_main ul li.b_nav_site.o_site_coaching > div{background-image:url("../openolat/images/eye.png")}#b_nav_main ul li.b_nav_site.site_demo_icon > div{background-image:url("../openolat/images/information-white.png")}#b_nav_main ul li.b_nav_site.f_site_library > div{background-image:url("../openolat/images/library.png")}#b_nav_main ul li.b_nav_site.fx_members > div{background-image:url("../openolat/images/users_members.png")}#b_nav_main ul li.b_nav_site.o_site_guidemo div{background-image:url("../openolat/images/light-bulb.png")}#b_nav_main ul li.b_nav_site.b_resource_GroupInfoMainController div{background-image:url(../openolat/images/users.png)}#b_nav_main ul li.b_nav_site.o_site_catalog div{background-image:url(../openolat/images/drawer-open.png)}#b_nav_main ul li.b_nav_site.o_site_qpool div{background-image:url(../openolat/images/qti/pool.png)}#b_nav_main ul li.b_nav_tab{margin-right:4px}#b_nav_main ul li.b_nav_tab a.b_nav_tab_close{position:absolute;top:3px;right:4px;width:13px;height:13px;line-height:0;padding:0;margin:0;background:transparent url(../openolat/images/cross_small_trimmed_grey.png) no-repeat right top}#b_nav_main ul li.b_nav_tab.b_nav_active,#b_nav_main ul li.b_nav_tab:hover{moz-box-shadow:0 -4px 8px -1px #d3d3d3;-ms-box-shadow:0 -4px 8px -1px #d3d3d3;-o-box-shadow:0 -4px 8px -1px #d3d3d3;-webkit-box-shadow:0 -4px 8px -1px #d3d3d3;box-shadow:0 -4px 8px -1px #d3d3d3;background:white}#b_nav_main ul li.b_nav_tab.b_nav_active a.b_nav_tab_close,#b_nav_main ul li.b_nav_tab:hover a.b_nav_tab_close{background-image:url(../openolat/images/cross_small_trimmed_blue.png)}#b_nav_main ul li#b_nav_spacer{background:none;border:none;width:20px;height:1px;padding:0}.b_clickable:hover{cursor:pointer}div.b_tree{position:relative;font-size:100%;font-family:Century Gothic, Apple Gothic, sans-serif;padding:0}div.b_tree ul{position:relative;padding:0;margin:0 0 0 1em;list-style:none;white-space:nowrap}div.b_tree ul li{position:relative;background:transparent;margin-left:0;padding-left:0;line-height:1.7em}div.b_tree ul li a.b_tree_icon{padding-left:20px;padding-top:2px;position:relative;background-position:0 50%;background-repeat:no-repeat}div.b_tree ul li a{color:#555555}div.b_tree ul li a.b_tree_l0{padding-left:16px}div.b_tree ul li .b_tree_oc_l0{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l0,div.b_tree ul li .b_tree_level_close.b_tree_oc_l0{z-index:10}div.b_tree ul li a:focus,div.b_tree ul li a:hover{color:#025d8c;background-color:transparent;text-decoration:underline}div.b_tree ul li a.b_tree_selected,div.b_tree ul li a:active{color:#025d8c;background-color:transparent;text-decoration:none}div.b_tree ul li a.b_tree_selected_parents,div.b_tree ul li strong{color:#025d8c;font-weight:bold}div.b_tree ul li .b_tree_oc_l1{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l1,div.b_tree ul li .b_tree_level_close.b_tree_oc_l1{z-index:10}div.b_tree ul li .b_tree_oc_l2{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l2,div.b_tree ul li .b_tree_level_close.b_tree_oc_l2{z-index:10}div.b_tree ul li .b_tree_oc_l3{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l3,div.b_tree ul li .b_tree_level_close.b_tree_oc_l3{z-index:10}div.b_tree ul li .b_tree_oc_l4{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l4,div.b_tree ul li .b_tree_level_close.b_tree_oc_l4{z-index:10}div.b_tree ul li .b_tree_oc_l5{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l5,div.b_tree ul li .b_tree_level_close.b_tree_oc_l5{z-index:10}div.b_tree ul li .b_tree_oc_l6{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l6,div.b_tree ul li .b_tree_level_close.b_tree_oc_l6{z-index:10}div.b_tree ul li .b_tree_oc_l7{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l7,div.b_tree ul li .b_tree_level_close.b_tree_oc_l7{z-index:10}div.b_tree ul li .b_tree_oc_l8{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l8,div.b_tree ul li .b_tree_level_close.b_tree_oc_l8{z-index:10}div.b_tree ul li .b_tree_oc_l9{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l9,div.b_tree ul li .b_tree_level_close.b_tree_oc_l9{z-index:10}div.b_tree ul li .b_tree_oc_l10{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l10,div.b_tree ul li .b_tree_level_close.b_tree_oc_l10{z-index:10}div.b_tree ul li .b_tree_oc_l11{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l11,div.b_tree ul li .b_tree_level_close.b_tree_oc_l11{z-index:10}div.b_tree ul li a.b_tree_l0{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l1{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l2{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l3{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l4{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l5{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l6{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l7{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l8{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l9{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l10{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l11{padding-left:13px;z-index:9}div.b_tree ul li span.b_tree_icon_decorator{width:12px;height:12px;float:right;display:inline;position:static;z-index:9;background-repeat:no-repeat}div.b_tree ul li.b_deleted{text-decoration:none}div.b_tree ul li.b_deleted a{text-decoration:line-through}div.b_tree ul.b_tree_l0 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l1 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l2 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l3 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l4 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l5 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l6 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l7 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l8 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l9 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l10 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l11 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree.b_tree_root_hidden{margin:0 0 0 1em}div.b_tree.b_tree_root_hidden ul{padding:0}div.b_tree.b_tree_root_hidden ul.b_tree_l0{margin-left:0}div.b_tree.b_tree_root_visible{left:-13px}div.b_tree a.b_tree_level_close,div.b_tree a.b_tree_level_open{background:transparent !important}div.b_tree a.b_tree_level_close span,div.b_tree a.b_tree_level_open span{background-position:0 50%;background-repeat:no-repeat;padding-right:13px}div.b_tree a.b_tree_level_close:hover,div.b_tree a.b_tree_level_open:hover{text-decoration:none}div.b_tree a.b_tree_level_close span{background-image:url("../openolat/images/tree_parent_open.png")}div.b_tree a.b_tree_level_open span{background-image:url("../openolat/images/tree_parent_closed.png")}div.b_master_detail div.b_tree ul li{background:url("../openolat/images/detail/detail_separator.png") repeat-y right}div.b_master_detail div.b_tree ul li a.b_tree_l0{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l1{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l2{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l3{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l4{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l5{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l6{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l7{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l8{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l9{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l10{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l11{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_selected{background-image:url("../openolat/images/detail/detail_arrow.png")}div.b_master_detail div.b_tree ul li a.b_tree_selected.b_tree_l0{background-image:none}#b_footer{color:#9D9D9D;padding:0;margin:0;position:relative;min-height:60px}#b_footer a{color:#777777}#b_footer #b_footer_user{position:absolute;top:1em;left:1em;line-height:16px}#b_footer #b_footer_user #b_username{margin-right:1.5em}#b_footer #b_footer_version{position:absolute;top:1em;right:1em}#b_footer #b_footer_powered{padding-top:1em;text-align:center;width:auto;background:none}#b_footer #b_footer_powered a{display:inline}#b_footer #b_footer_powered img{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#b_footer #b_footer_powered img:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#b_footer #b_share{position:absolute;top:2.5em;left:1em;width:250px}#b_footer #b_share a,#b_footer #b_share span{margin:0 3px 0 0;background-repeat:no-repeat;width:16px;height:16px;float:left;display:inline;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#b_footer #b_share a:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#b_footer #b_share #b_facebook{background-image:url(../openolat/images/social/facebook_16.png)}#b_footer #b_share #b_twitter{background-image:url(../openolat/images/social/twitter_16.png)}#b_footer #b_share #b_google{background-image:url(../openolat/images/social/google_16.png)}#b_footer #b_share #b_delicious{background-image:url(../openolat/images/social/delicious_16.png)}#b_footer #b_share #b_digg{background-image:url(../openolat/images/social/digg_16.png)}#b_footer #b_share #b_mail{background-image:url(../openolat/images/social/email_16.png)}#b_footer #b_share #b_link{background-image:url(../openolat/images/social/link_16.png)}#b_footer .fx_footer #b_footer_version > a{display:block;min-height:45px;background:transparent url("../../images/frentix/frentix_logo_grey.png") no-repeat left bottom}#b_footer .fx_footer #b_footer_version > a:hover{background-image:url("../../images/frentix/frentix_logo.png")}#callout_share_link input{width:480px}#b_main.b_menu_toolbar #b_col1_content{padding-top:0;padding-right:0}#b_main.b_menu_toolbar #b_col3_content{padding:0}div.b_menu_toolbar{background:#f9f9f9;background:-moz-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9), color-stop(100%, #d0d0d0));background:-webkit-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-o-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-ms-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);border-bottom:1px solid #7D7D7D;padding:5px 5px 2px 0}div.b_breadcumb_path{padding:0;margin:0;float:left;display:inline}div.b_breadcumb_path ul{padding:0;margin:0;list-style:none;float:left;display:inline}div.b_breadcumb_path ul li{padding:0 7px 0 14px;margin:0;list-style:none;float:left;display:inline;background:url(../openolat/images/breadcrumb-separator.png) no-repeat left 50%}div.b_breadcumb_path ul li.b_first{background:url(../openolat/images/home.png) no-repeat 5px 50%;padding-left:25px}div.b_breadcumb_path ul li a{color:#464444}div.b_breadcumb_path ul li span.b_disabled{color:#000;padding:0 10px 0 0;margin:0}#b_main_toolbar div.b_breadcumb_path ul a{color:#2d2e2d;font-weight:bold}#b_main_toolbar div.b_breadcumb_path ul a:hover{color:#585a58;text-decoration:none}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back{background:transparent;padding:0 7px 0 7px;margin:0 2px 0 0;border-right:1px solid #dadada}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back a{font-type:Arial;color:#2d2e2d;font-weight:normal}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back a:hover{color:#585a58}#b_main_toolbar div.b_breadcumb_close{position:absolute;right:5px;size:80%}#b_main_toolbar div.b_breadcumb_close .b_close{background-image:url("../openolat/images/close.png");color:#2d2e2d}#b_main_toolbar div.b_breadcumb_close .b_close:hover{color:#585a58;text-decoration:none}div.b_breadcumb_content{clear:both;margin-top:0.5em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_toolbar{background:#f9f9f9;background:-moz-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9), color-stop(100%, #d0d0d0));background:-webkit-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-o-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-ms-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);position:relative;padding:10px;height:19px;min-height:19px;border-bottom:1px solid #7D7D7D}div.b_toolbar ul{margin:0;list-style-image:none;list-style-type:none}div.b_toolbar ul li{margin:0px 16px 0px 0px;list-style-image:none;list-style-type:none}div.b_toolbar div.b_toolbar_left{position:absolute;top:7px;left:7px}div.b_toolbar ul.b_toolbar_left li{float:left}div.b_toolbar div.b_toolbar_right{position:absolute;top:7px;right:7px}div.b_toolbar ul.b_toolbar_right li{float:right;margin:0px 2px 0px 2px}div.b_toolbar div.b_toolbar_center{text-align:center}div.b_noti{border:1px solid #E9EAEF;padding:3px 23px 3px 3px;float:right;display:inline;position:relative;right:0;font-size:95%}div.b_noti a.b_contexthelp{position:absolute;top:2px;right:2px}div.b_noti a.b_noti_unsubscribe_link{background:url(../openolat/images/mail--minus.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_noti a.b_noti_subscribe_link{background:url(../openolat/images/mail--plus.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_noti a.b_noti_markedread_link{background:url(../openolat/images/tick.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_titled_wrapper div.b_noti{position:absolute;right:25px;top:0px}div.b_titled_wrapper fieldset div.b_noti{top:12px}h1.b_titled_wrapper span{padding-right:4em;font-style:italic}h2.b_titled_wrapper span{padding-right:4em;font-style:italic}h3.b_titled_wrapper span{padding-right:4em;font-style:italic}h4.b_titled_wrapper span{padding-right:3em;font-style:italic}h5.b_titled_wrapper span{padding-right:3em;font-style:italic}a.b_togglebox_closed{background:url("../openolat/images/tree_parent_closed.png") no-repeat 0 50%;padding:1px 0 1px 18px;vertical-align:middle}a.b_togglebox_opened{background:url("../openolat/images/tree_parent_open.png") no-repeat 0 50%;padding:1px 0 1px 18px;vertical-align:middle}div.b_togglebox{margin-top:10px;padding:10px;background:#FAFAFA}div.b_togglebox div.b_togglebox_content{background:transparent;border:0px;padding:0px}div.b_titled_wrapper div.b_togglebox{margin-top:0;padding:0;background:transparent}div.b_titled_wrapper div.b_togglebox div.b_togglebox_content{background:transparent;border:0px;padding:0px}div.b_titled_wrapper_desc a.b_togglebox_opened{z-index:10;display:block;width:20px;height:20px;position:absolute;top:2px;left:5px;background:url(../openolat/images/information-white.png) no-repeat 0 50%}div.b_titled_wrapper_desc a.b_togglebox_closed{display:block;width:20px;height:20px;background:url(../openolat/images/information-white.png) no-repeat top left;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}div.b_titled_wrapper_desc div.b_togglebox div.b_togglebox_content{position:relative;margin-bottom:1em}div.b_titled_wrapper_desc a.b_togglebox_hide span{position:absolute;bottom:0;right:0;padding:0 6px 3px 0}div.b_titled_wrapper_desc a.b_togglebox_hide:hover{text-decoration:underline}div.b_titled_wrapper div.b_togglebox div.b_togglebox_content div.o_course_run_objectives{position:relative}div.o_course_run_dropbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_course_run_returnbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_course_run_solutionbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_catalog div.o_catalog_link_title{margin:2em 0 0 0;border-bottom:1px solid #ccc;padding:0.3em}div.o_catalog fieldset{padding:1em 1em 0.5em 1em}div.o_catalog div.o_catalog_title{display:none}div.o_catalog div.o_catalog_nav{padding:1px 0 2px 22px;border-bottom:1px solid #EEE;background:url(../openolat/images/folder_open.png) 2px 50% no-repeat}div.o_catalog .o_catalog_sub_icon{background-image:url(../openolat/images/folder_small.png)}div.o_catalog div.o_catalog_links{margin-top:1em;padding-top:1em;border-top:1px solid #EEE}div.o_catalog div.o_catalog_itemlist ul{list-style-type:none;margin:0;padding:0}div.o_catalog div.o_catalog_itemlist ul li{margin:0;padding:0 0 0 0.5em;overflow:hidden}div.o_catalog div.o_catalog_itemlist ul a{display:block}div.o_catalog div.o_catalog_desc{margin:0.5em 0 0.5em 0;padding-left:20px;font-style:italic}div.b_ext_elem .x-tree-node-collapsed .x-tree-node-icon.o_catalog_cat_icon,div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_cat_icon{background-image:url(../openolat/images/folder_small.png)}div.b_ext_elem .x-tree-node-collapsed .x-tree-node-icon.o_catalog_cat_noaccess_icon,div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_cat_noaccess_icon{background-image:url(../openolat/images/locked.png)}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.o_catalog_cat_icon{background-image:url(../openolat/folder_open.png)}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.o_catalog_cat_noaccess_icon{background-image:url(../openolat/images/locked.png)}div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_entry_icon{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}.b_float_left{float:left;display:inline;margin-right:1em;margin-bottom:0.15em}.b_float_right{float:right;display:inline;margin-left:1em;margin-bottom:0.15em}.b_center{text-align:center;margin:0.5em auto}.b_floatscrollbox{overflow-x:auto;overflow-y:hidden}.b_overflowscrollbox{overflow:auto}}@media all and (min-width : 1324px){#b_footer #b_share{left:0}#b_footer #b_footer_user{left:0}#b_footer #b_footer_version{right:0}}.b_dd_item{cursor:move;z-index:100}.b_dd_proxy{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4}.b_dd_item.b_dd_over{background-color:#ffff60}.b_dd_sibling{height:3px;width:100%}.b_dd_sibling.b_dd_over{background:transparent url(../openolat/images/arrow_dd.png) top left no-repeat}div.b_dd_ct div.b_dd_sibling_l1{margin-left:0 !important}div.b_dd_ct div.b_dd_sibling_l2{margin-left:1em !important}div.b_dd_ct div.b_dd_sibling_l3{margin-left:2em !important}div.b_dd_ct div.b_dd_sibling_l4{margin-left:3em !important}div.b_dd_ct div.b_dd_sibling_l5{margin-left:4em !important}div.b_dd_ct div.b_dd_sibling_l6{margin-left:5em !important}div.b_dd_ct div.b_dd_sibling_l7{margin-left:6em !important}div.b_dd_ct div.b_dd_sibling_l8{margin-left:7em !important}div.b_dd_ct div.b_dd_sibling_l9{margin-left:8em !important}div.b_dd_ct div.b_dd_sibling_l10{margin-left:9em !important}div.b_dd_ct div.b_dd_sibling_l11{margin-left:10em !important}.b_group_accesscontrolled{background-image:url("../openolat/images/ac/umbrella.png")}.b_order_icon{background-image:url("../openolat/images/ac/shopping-basket.png")}div.b_order_details{margin-top:2em}div.b_order_details label{font-weight:bold}div.b_access_create ul{padding:0;margin-left:0}div.b_access_create li{padding:0;list-style:none}table.b_access_method td{padding:0.2em 1em 0.2em 0}table.b_access_method tr.b_access_desc td{padding:0 1em 1em 20px;font-style:italic}table.b_access_method td div.b_form_element{margin-left:0}div.b_access_method_list div.b_access_method legend{background-repeat:no-repeat;padding-left:20px}table span.b_access_method{padding-right:5px;font-size:90%;vertical-align:bottom;line-height:16px}.b_access_member_icon{background-image:url(../openolat/images/ac/lock-unlock.png)}.b_access_membersonly_icon{background-image:url("../openolat/images/ac/lock.png")}.b_access_method_free_icon{background-image:url("../openolat/images/ac/open-share.png")}.b_group_accesscontrolled.b_access_method_free,b_order_icon.b_access_method_free{background-image:url("../openolat/images/ac/open-share.png")}div.b_access_method_list div.b_access_method_free legend{background-image:url("../openolat/images/ac/open-share.png")}.b_access_method_token_icon{background-image:url("../openolat/images/ac/license-key.png")}.b_group_accesscontrolled.b_access_method_token,b_order_icon.b_access_method_token{background-image:url("../openolat/images/ac/license-key.png")}div.b_access_method_list div.b_access_method_token legend{background-image:url("../openolat/images/ac/license-key.png")}div.b_access_method_list div.b_access_method_token div.b_form_element_wrapper:nth-last-of-type(3) label,table.b_access_method tr.b_access_method_token .b_access_infos{background-image:url("../openolat/images/ac/key.png");background-repeat:no-repeat;padding-left:20px}div.b_access_method_list div.b_form_element_wrapper:nth-last-of-type(4) label{background-image:url("../openolat/images/information-white.png");background-repeat:no-repeat;padding-left:20px}.b_access_method_paypal_icon{background-image:url("../openolat/images/ac/credit-cards.png")}#b_main_access_control{margin:0 20% 0 20%;padding:20px 0 0 20px}.b_order_status_new_icon{background-image:url(../openolat/images/new-text.png)}.b_order_status_prepayment_icon{background-image:url(../openolat/images/ac/prepayment.png)}.b_order_status_payed_icon{background-image:url(../openolat/images/tick.png)}.b_order_status_canceled_icon{background-image:url(../openolat/images/ac/canceled.png)}.b_order_status_error_icon{background-image:url(../images/olat/cross.png)}.b_order_status_warning_icon{background-image:url(../openolat/images/exclamation.png)}.b_transaction_status_success_icon{background-image:url(../openolat/images/tick.png)}.b_transaction_status_waiting_icon{background-image:url(../openolat/images/exclamation.png)}.b_transaction_status_error_icon{background-image:url(../openolat/images/cross.png)}.b_transaction_status_canceled_icon{background-image:url(../openolat/images/ac/canceled.png)}.b_transaction_status_new_icon{background-image:url(../openolat/images/new-text.png)}div.b_form div.b_form_element_wrapper table.b_access_method div.b_form_element{margin-left:0}div.b_form table.b_access_method div.b_form_element span.b_form_datechooser{background-position:0 50%}div.b_layer_1 div.b_modal_area{width:82%;margin:9%}div.b_layer_2 div.b_modal_area{width:76%;margin:12%}div.b_layer_3 div.b_modal_area{width:70%;margin:15%}div.b_layer_5 div.b_modal_area{width:64%;margin:18%}div.b_modal_area{position:absolute;top:0px;left:0px;width:80%;margin:10%;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_modal_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1}div.b_modal_overlay,div.ext-el-mask{background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=25);-moz-opacity:0.25;-khtml-opacity:0.25;opacity:0.25}div.b_window{text-align:left;border:1px solid #025d8c;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;background:#fff}div.b_window .b_window_header_wrapper{padding:2px 8px 0px 8px}div.b_window div.b_window_header{position:relative;border-bottom:1px solid #eee}div.b_window div.b_window_header_title{min-height:18px;line-height:18px;vertical-align:middle;padding:2px 5px 2px 5px}div.b_window div.b_window_header_title a.b_link_close{top:4px;right:4px;position:absolute;min-height:16px;min-width:16px;background:transparent url("../openolat/images/close.png") no-repeat center center;display:inline-block}div.b_window div.b_window_header_title a.b_link_close:hover{top:4px;right:4px}div.b_window div.b_window_header_title strong{font-weight:bold}div.b_window div.b_window_content_wrapper{clear:both;width:auto;padding:0 4px 0 4px}div.b_window div.b_window_content{padding:1em}div.b_window div.b_window_content_inner{min-height:200px;position:relative}div.b_window div.b_window_footer_wrapper{height:4px}div.b_callout_area{position:absolute;top:0px;left:0px;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=1);-moz-opacity:0.01;-khtml-opacity:0.01;opacity:0.01}div.b_callout{text-align:left;border:1px solid #025d8c;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;background:#fff}div.b_callout_content{max-width:60em;margin:10px;overflow:hidden}.b_callout_top_right_arrow{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #FFF;position:absolute;right:20px;top:-10px;z-index:1001}.b_callout_top_right_arrow-border{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #025d8c;position:absolute;right:20px;top:-11px;z-index:1000}.b_callout_top_left_arrow{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #FFF;position:absolute;left:20px;top:-10px;z-index:1001}.b_callout_top_left_arrow-border{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #025d8c;position:absolute;left:20px;top:-11px;z-index:1000}div.x-tip-tc,div.x-tip-bc{background-repeat:repeat !important}div.x-tip-body p{margin-bottom:0px}div.x-tip-mc{background:#e9f2ff !important}body.b_ajax_busy{cursor:wait}div.b_ajax_busy{position:absolute;z-index:5001;left:50%;top:10px;height:32px;width:32px;background-repeat:no-repeat;background-image:url(../openolat/images/ajax-loader.svg)}html.no-svg div.b_ajax_busy{background-image:url(../openolat/images/ajax-loader.gif)}div.b_msg_dialog{padding:10px 10px 10px 50px;min-height:32px;background:url(../openolat/images/icon_question_32.png) no-repeat 10px 10px}div.b_msg_dialog .b_msg_title{font-weight:bold}#b_msg_sticky,#b_msg_sticky_preview{clear:both;padding:10px 10px 10px 50px;min-height:32px;background:#ffb651 url(../openolat/images/icon_warning_32.png) no-repeat 10px 10px;border:none}div.b_msg-div{left:35%;position:absolute;top:10px;width:30%;z-index:20000;border:1px solid #025d8c;background:#FAFAFA;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_msg-div .b_msg_info_winicon{background:transparent url(../openolat/images/icon_info_32.png) no-repeat 10px center}div.b_msg_info_content{padding:10px 10px 10px 50px}div.b_msg_warn_winicon{background:url(../openolat/images/icon_warning_32.png) no-repeat}div.b_msg_error_winicon{background:url(../openolat/images/icon_error_32.png) no-repeat}#b_msg_info{padding:10px 10px 10px 50px;min-height:32px;background:url(../openolat/images/icon_info_32.png) no-repeat 10px 10px}#b_msg_info .b_msg_title{font-weight:bold}.o_infomessage_wrapper{margin:20px 0 20px 0}.o_infomessage_wrapper .o_infomessage{text-align:left}div.b_wizard{background:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border:1px solid #025d8c}div.b_wizard div.b_wizard_header_wrapper{background:transparent}div.b_wizard div.b_wizard_header{background:transparent;position:relative}div.b_wizard div.b_wizard_header_title{background:transparent;min-height:18px;line-height:18px;vertical-align:middle;padding:2px 5px 2px 5px}div.b_wizard div.b_wizard_header_title a.b_link_close{top:4px;right:4px;background:url(../openolat/images/close.png);background-repeat:no-repeat}div.b_wizard div.b_wizard_header_title strong{font-weight:bold}div.b_wizard div.b_wizard_steps_wrapper{clear:both;width:auto;padding:0 4px 0 4px;background:transparent}div.b_wizard div.b_wizard_steps_content{background:#fff;border:1px solid #555555;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px}div.b_wizard div.b_wizard_steps_list{width:20em;padding:0;color:#555555}div.b_wizard div.b_wizard_steps_list ol{list-style-type:decimal;z-index:14;font-size:100%;padding:2em 5px 5px}div.b_wizard div.b_wizard_steps_list li{line-height:1.5em;white-space:normal;margin-bottom:1em;list-style:none;padding-left:18px}div.b_wizard div.b_wizard_steps_list li.b_wizard_steps_current{font-weight:bold;background:url(../openolat/images/bullet_go.png) 0% 50% no-repeat;padding-left:18px}div.b_wizard div.b_wizard_steps_list li a{color:#555555}div.b_wizard div.b_wizard_steps_list li a:hover{color:#4F576A;background:transparent;text-decoration:underline}div.b_wizard div.b_wizard_steps_list li .b_disabled{color:#777777;border:0;background:transparent;padding:0;margin:0;white-space:normal;font-style:italic}div.b_wizard div.b_wizard_steps_list li.b_wizard_steps_current .b_disabled{color:#555555;font-style:normal}div.b_wizard div.b_wizard_steps_current{margin-left:20em;padding-top:0.5em;padding-bottom:0.5em}div.b_wizard div.b_wizard_steps_current_inner{padding:1em;border-left:1px solid #ccc}div.b_wizard div.b_wizard_steps_current_content{min-height:300px;position:relative}div.b_wizard div.b_wizard_footer_wrapper{background:transparent}div.b_wizard div.b_wizard_footer div.b_button_group{text-align:left;padding:0.5em 1em 0.5em 21em;margin:0}span.b_wizard_button_prev:before,a.b_wizard_button_prev span:before{content:"\00ab \00a0"}span.b_wizard_button_next:after,a.b_wizard_button_next span:after{content:" \00bb"}a.b_wizard_button_finish,span.b_wizard_button_finish{margin-left:3em}a.b_wizard_button_cancel,span.b_wizard_button_cancel{margin-left:3em}.b_wizard_table_changedcell{font-style:italic;font-weight:bold;background:url(../openolat/images/new-text.png) no-repeat;padding-left:18px}div.b_legacy_wizard_steps{float:right;display:inline}.b_legacy_wizard_step_a1{background-image:url(../openolat/images/wizard/1a.png)}.b_legacy_wizard_step_a2{background-image:url(../openolat/images/wizard/2a.png)}.b_legacy_wizard_step_a3{background-image:url(../openolat/images/wizard/3a.png)}.b_legacy_wizard_step_a4{background-image:url(../openolat/images/wizard/4a.png)}.b_legacy_wizard_step_a5{background-image:url(../openolat/images/wizard/5a.png)}.b_legacy_wizard_step_a6{background-image:url(../openolat/images/wizard/6a.png)}.b_legacy_wizard_step_a7{background-image:url(../openolat/images/wizard/7a.png)}.b_legacy_wizard_step_a8{background-image:url(../openolat/images/wizard/8a.png)}.b_legacy_wizard_step_a9{background-image:url(../openolat/images/wizard/9a.png)}.b_legacy_wizard_step_p1{background-image:url(../openolat/images/wizard/1p.png)}.b_legacy_wizard_step_p2{background-image:url(../openolat/images/wizard/2p.png)}.b_legacy_wizard_step_p3{background-image:url(../openolat/images/wizard/3p.png)}.b_legacy_wizard_step_p4{background-image:url(../openolat/images/wizard/4p.png)}.b_legacy_wizard_step_p5{background-image:url(../openolat/images/wizard/5p.png)}.b_legacy_wizard_step_p6{background-image:url(../openolat/images/wizard/6p.png)}.b_legacy_wizard_step_p7{background-image:url(../openolat/images/wizard/7p.png)}.b_legacy_wizard_step_p8{background-image:url(../openolat/images/wizard/8p.png)}.b_legacy_wizard_step_p9{background-image:url(../openolat/images/wizard/9p.png)}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs{float:left;display:inline-block;margin-bottom:1em}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul{line-height:1em;list-style:none;margin:0;padding:0;white-space:nowrap}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;margin:0;float:left;display:inline;position:relative}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul strong{background:transparent;color:#667;display:block;font-weight:normal;padding:1px 6px 1px 5px;text-decoration:none;text-transform:none}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul > ul a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul > ul strong{width:auto}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:focus,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:hover,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:active{moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:focus,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:hover,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:active{color:#000;text-decoration:none}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active{moz-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-ms-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-o-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-webkit-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);background:#eee;border-color:#ccc}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active strong{color:#000;font-weight:bold}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled{background:white !important}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled strong{color:#8994A9;background:transparent !important;font-weight:normal}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled:hover{moz-box-shadow:0 0 0 white;-ms-box-shadow:0 0 0 white;-o-box-shadow:0 0 0 white;-webkit-box-shadow:0 0 0 white;box-shadow:0 0 0 white}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_first{-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:0px;-webkit-border-bottom-right-radius:0px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-topleft:3px;-moz-border-radius-topright:0px;-moz-border-radius-bottomright:0px;-moz-border-radius-bottomleft:3px;border-top-left-radius:3px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:3px}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_last{-webkit-border-top-left-radius:0px;-webkit-border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:0px;-moz-border-radius-topleft:0px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px;-moz-border-radius-bottomleft:0px;border-top-left-radius:0px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:0px}div.b_tabbedpane_wrapper div.b_tabbedpane_content{clear:both;padding:5px 15px;background:transparent;border:1px solid #d4d4d4}div.b_tabbedpane_wrapper div.b_tabbedpane_content div.b_tabbedpane_content_inner{position:relative;min-height:30em}div.b_segments_container{min-height:25px;padding-top:8px;position:relative;background:url(../openolat/images/divider.png) center top no-repeat}div.b_segments_container div.b_segments{clear:both;position:absolute;left:50%}div.b_segments_container div.b_segments a:hover{text-decoration:none}div.b_segments_container div.b_segments ul{position:relative;left:-50%;list-style-type:none;margin:0}div.b_segments_container div.b_segments ul li{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;margin:0;float:left;display:inline;position:relative}div.b_segments_container div.b_segments ul li a{background:transparent;color:#667;display:block;font-weight:normal;padding:1px 6px 1px 5px;text-decoration:none;text-transform:none}div.b_segments_container div.b_segments ul li a:hover,div.b_segments_container div.b_segments ul li a:active,div.b_segments_container div.b_segments ul li a:focus{text-decoration:none}div.b_segments_container div.b_segments ul li:hover{moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}div.b_segments_container div.b_segments ul li.b_segment_selected{moz-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-ms-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-o-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-webkit-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);background:#eee;border-color:#ccc}div.b_segments_container div.b_segments ul li.b_segment_selected a,div.b_segments_container div.b_segments ul li.b_segment_selected strong{color:#000;font-weight:bold}div.b_segments_container div.b_segments ul li.b_segment_first{-webkit-border-top-left-radius:12px;-webkit-border-top-right-radius:0px;-webkit-border-bottom-right-radius:0px;-webkit-border-bottom-left-radius:12px;-moz-border-radius-topleft:12px;-moz-border-radius-topright:0px;-moz-border-radius-bottomright:0px;-moz-border-radius-bottomleft:12px;border-top-left-radius:12px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:12px}div.b_segments_container div.b_segments ul li.b_segment_last{-webkit-border-top-left-radius:0px;-webkit-border-top-right-radius:12px;-webkit-border-bottom-right-radius:12px;-webkit-border-bottom-left-radius:0px;-moz-border-radius-topleft:0px;-moz-border-radius-topright:12px;-moz-border-radius-bottomright:12px;-moz-border-radius-bottomleft:0px;border-top-left-radius:0px;border-top-right-radius:12px;border-bottom-right-radius:12px;border-bottom-left-radius:0px}div.b_segments_container div.b_segment_content{margin-top:50px;clear:both;padding:5px 15px;background:transparent;border:1px solid #d4d4d4}button{border:none}.b_button{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_button,.b_button span{color:#444;font-size:100%;display:inline-block;padding:0 0.8em;width:auto;line-height:1.9em;text-align:center}.b_button:focus,.b_button:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_button:focus{border:1px solid #025d8c}.b_button:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border:1px solid #025d8c}.b_button.b_button_preferred{background:#dce7ec;background:-moz-linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #dce7ec), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);background:linear-gradient(top, #dce7ec 0%, #f1f1f1 100%);border:1px solid #025d8c}.b_button:focus,.b_button:hover{border:1px solid #aaa}.b_button_dirty{background:white;background:-moz-linear-gradient(top, white 0%, #fff7e0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #fff7e0));background:-webkit-linear-gradient(top, white 0%, #fff7e0 100%);background:-o-linear-gradient(top, white 0%, #fff7e0 100%);background:-ms-linear-gradient(top, white 0%, #fff7e0 100%);background:linear-gradient(top, white 0%, #fff7e0 100%);border-color:#ff9900}.b_button_dirty:focus,.b_button_dirty:hover{text-decoration:none;border:1px solid #ff9f5b;background:white;background:-moz-linear-gradient(top, white 0%, #fff7e0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #fff7e0));background:-webkit-linear-gradient(top, white 0%, #fff7e0 100%);background:-o-linear-gradient(top, white 0%, #fff7e0 100%);background:-ms-linear-gradient(top, white 0%, #fff7e0 100%);background:linear-gradient(top, white 0%, #fff7e0 100%)}.b_disabled.b_button{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border:1px dotted #ccc;background:#fff}.b_disabled.b_button,.b_disabled.b_button span{color:#444;font-size:100%;display:inline-block;padding:0 0.8em;width:auto;line-height:1.9em;text-align:center;cursor:default !important;color:#888}.b_disabled.b_button:focus,.b_disabled.b_button:hover{moz-box-shadow:0 0 0 transparent;-ms-box-shadow:0 0 0 transparent;-o-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent}div.b_button_group{text-align:center;margin:2em 0 1em 0}div.b_button_group div{display:inline}.b_xsmall,sup,sub{font-size:80%}.b_small,small{font-size:90%}a.b_toggle{white-space:nowrap;margin:0 0.5em 0.2em 0;cursor:default;color:#2C2B2B;border:1px solid #aaa;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;display:inline-block;line-height:1.5em;text-align:center;background:url(../openolat/images/toggle_off.png) top left repeat-x}a.b_toggle span{padding:0 0.8em}a.b_toggle:hover{background:#ddd;text-decoration:none}a.b_toggle.b_on:hover{background:#747474}a.b_toggle.b_on,a.b_toggle:active,a.b_toggle.b_on:active{color:white;border:none;padding:1px;moz-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-ms-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-o-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-webkit-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);text-shadow:1px 1px 2px rgba(0, 0, 0, 0.5)}a.b_toggle:focus,a.b_toggle.b_on:focus{text-decoration:none}a.b_toggle:active,a.b_toggle.b_on:active{background:url(../openolat/images/toggle_active.png) top left repeat-x}a.b_toggle.b_on{background:url(../openolat/images/toggle_on.png) top left repeat-x}span.b_toggle.b_disabled{white-space:nowrap;margin:0 0.5em 0.2em 0;padding:0 0.8em;color:#667;border:1px solid #DDD;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;display:inline-block;line-height:1.5em;text-align:center;background:url(../openolat/images/toggle_dis.png) top left repeat-x}a.b_toggle_slide{background:url(../openolat/images/handle.png) -63px 0px no-repeat;height:25px;width:85px;white-space:nowrap;margin:0 0.2em 0.2em 0.2em;color:#2C2B2B;border:1px solid #aaa;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;display:inline-block;text-align:center;vertical-align:middle;position:relative}a.b_toggle_slide span{position:absolute;top:-25px;left:0}a.b_toggle_slide:hover,a.b_toggle_slide:focus,a.b_toggle_slide:active,a.b_toggle_slide.b_on:hover,a.b_toggle_slide.b_on:focus,a.b_toggle_slide.b_on:active{border:1px solid #868686;text-decoration:none}a.b_toggle_slide.b_on{background-position:-16px 0px}a.b_toggle_slide.b_disabled{background:url(../openolat/images/handle_dis.png) -63px 0px no-repeat;height:25px;width:85px;white-space:nowrap;margin:0 0.5em 0.2em 0;color:#2C2B2B;border:1px solid #aaa;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;display:inline-block;text-align:center;vertical-align:middle}a.b_toggle_slide.b_small{background:url(../openolat/images/handle_small.png) -41px 0px no-repeat;height:16px;width:55px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}a.b_toggle_slide span{position:absolute;top:-16px}a.b_toggle_slide.b_small.b_on{background-position:-9px 0px}span.b_toggle_slide.b_disabled{background:url(../openolat/images/handle_small_dis.png) -41px 0px no-repeat;height:16px;width:55px;white-space:nowrap;margin:0 0.5em 0.2em 0;color:#2C2B2B;border:1px solid #aaa;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;display:inline-block;text-align:center;vertical-align:middle}span.b_toggle_slide_legend{font-size:90%}.b_link_back{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_link_back > span{padding:0px 8px 0px 25px;background:transparent url("../openolat/images/arrow_left_big.png") no-repeat 4px center}.b_link_back:focus,.b_link_back:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_link_back:focus{border-color:#025d8c}.b_link_back:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border-color:#025d8c}.b_link_left_icon{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_link_left_icon > span{padding:2px 8px 0px 25px;background-color:transparent;background-repeat:no-repeat;background-position:4px center}.b_link_left_icon:focus,.b_link_left_icon:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_link_left_icon:focus{border-color:#025d8c}.b_link_left_icon:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border-color:#025d8c}.b_link_to_home > span{background-image:url("../openolat/images/card-address.png")}.b_link_course > span{background-image:url("../openolat/images/book-open-next.png")}.b_link_group > span{background-image:url("../openolat/images/document-page-next.png")}.b_link_mail > span{background-image:url("../openolat/images/mail.png")}.b_link_assessment > span{background-image:url("../openolat/images/le_resources/thumb-up.png")}.b_link_ok > span{background-image:url("../openolat/images/tick.png")}.b_link_nok > span{background-image:url("../openolat/images/cross.png")}.b_link_edit > span{background-image:url("../openolat/images/docs/document--pencil.png")}.b_move_left_icon > span{background-image:url("../openolat/images/arrow_left_big.png")}.b_move_right_icon > span{background-image:url("../openolat/images/arrow_right_big.png")}.b_remove_icon > span{background-image:url("../openolat/images/cross_small.png")}.b_deletableentry_wrapper .b_link_left_icon{border:none;background:inherit;margin:0}.b_deletableentry_wrapper .b_link_left_icon:focus,.b_deletableentry_wrapper .b_link_left_icon:hover,.b_deletableentry_wrapper .b_link_left_icon:focus,.b_deletableentry_wrapper .b_link_left_icon:active{text-decoration:none;border:none;moz-box-shadow:0 0 0 transparent;-ms-box-shadow:0 0 0 transparent;-o-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent}div.o_login div.o_login_form{margin-bottom:2em}div.o_login div.o_login_form li{list-style:none}div.o_login div.o_login_form fieldset legend{display:none}div.o_login div.o_login_form input{width:15em;padding:2px 3px 2px 3px}div.b_form div.b_form_desc{padding-bottom:1em;font-style:italic}input,select,textarea{border:1px solid #ACAAAA;background:#F6F6F6;line-height:1.3em;margin:0}textarea{font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{background:#fff;border:1px solid #504D4E}input.b_checkbox,input.b_radio{height:1em;width:1em;border:0;margin:0 2px 0 0}label.b_checkbox_label,label.b_radio_label{padding-left:0.5em}.b_inline_editable{padding:1px 20px 1px 0;vertical-align:middle;min-height:16px}.b_inline_editable:hover{background-position:100% 50%;background-repeat:no-repeat;background-image:url(../openolat/images/pencil-small.png)}span.b_inline_editable:hover{cursor:text !important}fieldset{position:relative;padding:1em;padding-top:1.5em;border:none;border-top:1px solid #94bed3}fieldset legend{font-family:Century Gothic, Apple Gothic, sans-serif;padding:0 5px;font-size:120%;font-weight:bold}div.b_form div.b_form_desc{padding-bottom:1em;font-style:italic}div.b_form div.b_form_general_error{padding:10px 10px 10px 50px;margin-bottom:20px;text-align:left;background:url(../openolat/images/icon_error_32.png) no-repeat 10px 10px;min-height:32px;border:1px solid #990000;color:#990000;font-style:italic}div.b_form div.b_form_spacer{margin:10px 0}div.b_form hr.b_form_spacer{margin:10px 0;border-bottom:1px solid #eee;padding:0}div.b_form hr.b_form_spacer.b_form_horizontal{display:inline-block;width:2em}div.b_form hr.b_form_spacer.b_form_spacer_noline{margin:10px 0;border-bottom:0;padding:0}div.b_form div.b_form_element_wrapper{vertical-align:middle;margin:0.5em 0}div.b_form div.b_form_element_wrapper.b_form_horizontal{vertical-align:middle;margin:0.5em 1em 0.5em 0;float:left;display:inline}div.b_form div.b_form_element_wrapper.b_form_vertical{vertical-align:middle;margin:0.5em 0;float:none;display:block}div.b_form div.b_form_element_wrapper div.b_form_element_label{width:20%;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element_label label{float:left;display:inline;line-height:1.3em}div.b_form div.b_form_element_wrapper div.b_form_element_label span.b_form_mandatory{background:url(../openolat/images/star-small.png) no-repeat;padding-left:16px;height:16px}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_horizontal{width:auto;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_vertical{width:auto;float:none;display:block;margin-top:1em;margin-bottom:0.3em}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_vertical label{float:none}div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:25%;padding:0 2px 0 12px}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_horizontal{margin-left:0;padding-left:0;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_horizontal .b_button{float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_vertical{margin-left:0;margin-top:0.5em;padding-left:0;float:none;display:block;clear:both}div.b_form div.b_form_element_wrapper.b_form_error input,div.b_form div.b_form_element_wrapper.b_form_error select{border:1px solid #990000;background:#ebcccc}div.b_form div.b_form_element_wrapper div.b_form_error_msg{clear:both;color:#990000;font-style:italic;display:block}div.b_form div.b_form_element_wrapper div.b_form_element_wrapper{margin:0}div.b_form div.b_button_group{margin-left:0%;padding-left:0px;text-align:left}div.b_form.b_form_vertical div.b_button_group{text-align:left}div.b_form div.b_form_element div.b_form_example{display:inline;font-size:80%;color:#504D4E}div.b_form div.b_form_element div.b_inline_elements div{display:inline}div.b_form div.b_form_element .b_form_disabled{color:#504D4E}div.b_form div.b_form_element .b_form_element_disabled{color:#9E9C9C;background:#EEEEEE;border:1px solid #CDCBCB}div.b_form div.b_form_element span.b_form_datechooser{background:url(../openolat/images/calendar.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px;padding-top:3px}div.b_form div.b_form_element a.b_form_groupchooser{background:url(../openolat/images/users.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}div.b_form div.b_form_element a.b_form_genericchooser{background:url(../openolat/images/users.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}div.b_form div.b_form_element a.b_form_wikitext{background-repeat:no-repeat;padding-left:12px;line-height:1.5em;font-style:italic}div.b_form div.b_form_element a.b_form_wikitext,div.b_form div.b_form_element .b_wiki_icon{background-image:url(../openolat/images/wiki/wiki_small_9px.png)}div.b_labels_minified div.b_form div.b_form_element_wrapper div.b_form_element_label{width:10%}div.b_labels_minified div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:12%}div.form_shift_left{left:-25%}div.b_button_group div.b_form_element_wrapper{vertical-align:middle;margin:0.5em 0;float:none;display:block}div.b_button_group div.b_form_element_wrapper div.b_form_element_label{width:auto;float:none;display:block}div.b_button_group div.b_form_element_wrapper div.b_form_element{margin-left:0}.b_subcolumns{display:table;width:100%;table-layout:fixed}.b_c25l input,.b_c25r input{max-width:93%}div.calendar{z-index:10000 !important}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element{margin:0;float:left}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element_label{float:none;width:auto;display:block;padding-left:2.5em}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element_label label{float:none}div.b_form_subform{padding-left:2.5em}div.b_form_selection_vertical div.b_form_selection_element{vertical-align:middle;line-height:1.3em;position:relative}div.b_form_selection_vertical div.b_form_selection_element input{vertical-align:middle;line-height:1.3em}div.b_form_selection_horizontal div.b_form_selection_element{float:left;display:inline;padding-right:1em}div.b_form_selection_horizontal div.b_form_selection_element input{vertical-align:middle}div.b_form div.b_form_element div.b_form_togglecheck{font-size:95%;display:block;vertical-align:middle;line-height:16px;margin-top:0.5em}div.b_form div.b_form_element div.b_form_togglecheck input{height:1em;width:1em}div.o_form_wrapper fieldset{min-width:60em}div.form_shift_left{position:inherit;left:-20%}div.mceExternalToolbar{background:#f0f0ee !important;overflow:auto}table.b_choice{padding:0;margin:0}table.b_choice td{padding:0.1em;margin:0}table.b_choice td.b_togglecheck{padding-top:1em}table.b_choice td.b_togglecheck div.b_togglecheck{display:inline;border-top:1px solid #eee}table.b_choice td.b_togglecheck input{margin:0 7px 0 2px}div.b_fileinput{position:relative}div.b_fileinput div.b_fileinput_fakechooser{position:relative;top:0px;left:0px;z-index:1;display:inline;white-space:nowrap}div.b_fileinput div.b_fileinput_fakechooser a{margin-left:5px}div.b_fileinput span.b_fileinput_maxsize{padding:1px 0 1px 1em;font-style:italic;min-height:16px;vertical-align:middle}div.b_fileinput input.b_fileinput_realchooser{position:absolute;top:0;left:0;height:1.8em;z-index:2;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0}div.b_fileinput div.b_button_group{text-align:left;padding-left:0;margin-left:0}.b_fileinput_icon{background-image:url(../openolat/images/drive.png)}div.b_progress div.b_progress_bar{height:12px;border:1px solid #bfbfbf;background:#f3feff}div.b_progress div.b_progress_bar div{height:12px;background:#94bed3;background:-moz-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #94bed3), color-stop(100%, #025d8c));background:-webkit-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-o-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-ms-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:linear-gradient(top, #94bed3 0%, #025d8c 100%)}.b_mark_set{background-image:url("../openolat/images/flag.png") !important}.b_mark_not_set{background-image:url("../openolat/images/flag_off.png") !important}div.b_mark{width:20px;height:20px}div.b_mark div.b_form_element_wrapper{margin:0}div.b_mark div.b_form_element_wrapper div.b_form_element{margin:0;padding:0}div.b_mark a{background-position:center right;background-repeat:no-repeat;display:block;width:20px;height:20px}div.b_mark a span{display:block;width:19px;height:19px}div.b_mark a:hover{text-decoration:none}button::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,input[type="button"]::-moz-focus-inner,input[type="submit"]::-moz-focus-inner,input[type="file"] > input[type="button"]::-moz-focus-inner{padding:0;border:0}table{border-collapse:collapse;margin-bottom:0.5em;border-top:0px solid white;border-bottom:0px solid white}table caption{font-variant:small-caps}table.fixed{table-layout:fixed}table th,table td{padding:0.3em}table thead th{color:inherit;border-bottom:1px solid #ccc}table tbody tr.b_table_odd td{background:#eee}table tbody tr.b_row_selected td{background:#ff9f5b}div.b_table_drag{padding:5px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border:1px solid #025d8c;moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}div.b_table_wrapper table{width:99.5%;margin-left:1px;border:1px solid #eeeeee}div.b_table_wrapper table thead,div.b_table_wrapper table thead a{color:#025d8c}div.b_table_wrapper table thead a.b_sorting,div.b_table_wrapper table thead a a.b_sorting{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}div.b_table_wrapper table thead a.b_sorting_asc,div.b_table_wrapper table thead a a.b_sorting_asc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper table thead a.b_sorting_desc,div.b_table_wrapper table thead a a.b_sorting_desc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper table tbody tr:hover td{background:#ffdbc1}div.b_table_wrapper table tbody tr.b_row_selected:hover td{background:#ff9f5b}div.b_table_wrapper table tbody a{color:#025d8c}div.b_table_wrapper table tbody a:hover{color:#025d8c}div.b_table_wrapper div.b_table_filter{float:left;display:inline;font-size:95%;margin:7px 10px 2px 0}div.b_table_wrapper div.b_table_filter label{font-style:italic;margin:5px 0 2px 0}div.b_table_wrapper div.b_table_filter select{border:1px solid #ACAAAA}div.b_table_wrapper div.b_clearfix div.b_floatbox{margin:5px 0 0 0}div.b_table_wrapper div.b_table_count{font-size:95%;float:left;line-height:16px;vertical-align:bottom;margin:3px;font-size:95%}div.b_table_wrapper a.b_table_prefs,div.b_table_wrapper a.b_table_download{float:right;display:block;background-repeat:no-repeat;background-position:top left;width:16px;height:16px;margin:3px}div.b_table_wrapper a.b_table_prefs{background-image:url(../openolat/images/table_gear.png)}div.b_table_wrapper a.b_table_download{background-image:url(../openolat/images/table_download.png)}div.b_table_wrapper div.b_table_buttons{text-align:center;margin:1.5em 0 1em 0}div.b_table_wrapper div.b_table_empty{margin:1em 0}div.b_table_wrapper div.b_table_footer{float:left;margin:5px 0 0 10px}div.b_table_wrapper div.dataTables_info{float:left;margin:5px 0 0 0}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_previous{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_previous:hover{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_disabled_previous{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_next{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_next:hover{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .paginate_disabled_next{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .sorting{background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_asc{background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_desc{background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_asc_disabled{background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_desc_disabled{background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper div.dataTables_scrollBody table.dataTable{border-top:none}div.b_table_wrapper .dataTables_wrapper div.dataTables_scrollBody table.dataTable thead th{border:none}div.b_table_wrapper .dataTables_wrapper table.dataTable thead th{border-bottom:1px solid #ccc;color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tbody a{color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tbody a:hover{color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.even td.sorting_1{background:#eee}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.odd{background-color:#fff}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.odd td.sorting_1{background:#fff}div.b_table_wrapper.b_flexitable_wrapper div.b_table_filter{margin:3px 0 3px 0}div.b_table_wrapper.b_flexitable_wrapper div.b_table_filter label{padding:3px 7px 3px 0}div.b_table_wrapper.b_flexitable_wrapper div.b_table_filter div.b_form_selection_element{float:right}div.b_table_page{font-size:95%;text-align:center}div.b_table_page a{margin:0;padding:2px}div.b_table_page a.b_table_page_active{font-weight:bold;color:#000}div.b_table_page a.b_table_backward{background:url(../openolat/images/arrow_left.png) no-repeat center left;padding-left:16px}div.b_table_page a.b_table_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}div.b_table_page a.b_table_first_page{background:url(../openolat/images/home.png) no-repeat center left;padding-left:18px}div.b_table_page_all{font-size:95%;text-align:center}a.b_dev{position:absolute;left:0;top:0;z-index:4000;background:red url("../openolat/images/bug.png") no-repeat;width:16px;height:16px;border:1px solid #000}#b_devcon_main{background-color:#ccddff;position:absolute;z-index:4000;top:10px;left:5%;width:90%;text-align:left;border:1px solid #000}#b_devcon_handle{cursor:move;background:blue url(../openolat/images/bug.png) no-repeat 4px 50%;line-height:2em;padding-left:24px;color:white}a#b_devcon_handle_collapse{cursor:pointer;background:url("../openolat/images/tree_parent_open.png") no-repeat;width:15px;height:15px;float:right;margin:3px}a#b_devcon_handle_expand{cursor:pointer;background:url("../openolat/images/tree_parent_closed.png") no-repeat;width:15px;height:15px;float:right;margin:3px}a.b_devcon_handle_close{cursor:pointer;background:url(../openolat/images/close.png) no-repeat;width:15px;height:15px;float:right;margin:3px}#b_devcon_content{font-size:90%;padding:5px;border-top:0px solid #000;background:transparent}#b_devcon_content ul{float:left;margin:0;padding:0;list-style:none;white-space:nowrap}#b_devcon_content li{margin:0;padding:0 10px 0 0;float:left}#b_devcon_content fieldset{border-top:1px solid #ccc;margin:0;padding:8px}#b_devcon_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}#b_js_log textarea#o_debug_cons{width:99%;height:15em;font-family:monospace;font-size:110%;margin:5px 0 5px 0}iframe.o_debug_json{position:fixed;width:90%;margin-left:5%;bottom:4px;height:300px;background:white;border:2px solid #ccd8e7;z-index:90000}div.b_briefcase div.b_briefcase_foldercomp{margin-top:0.5em}div.b_briefcase_foldercomp div.b_briefcase_createactions{margin:0.5em 0}div.b_briefcase_foldercomp div.b_briefcase_createactions ul{list-style:none;margin:0;padding:0;white-space:nowrap;font-size:95%}div.b_briefcase_foldercomp div.b_briefcase_createactions ul li{float:right;display:inline;margin:0 0 0 1em;padding:0 0 0 3px;position:relative}div.b_briefcase_foldercomp div.b_briefcase_createactions ul li a{background-position:0 50%;background-repeat:no-repeat;padding:2px 0 2px 20px}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_upload{background-image:url(../openolat/images/docs/document_upload.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_newfolder{background-image:url(../openolat/images/folder_new.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_newfile{background-image:url(../openolat/images/docs/document_add.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_deletedfiles{background-image:url(../openolat/images/docs/document_remove.png)}div.b_briefcase_foldercomp div.b_briefcase_breadcrumb{clear:both;padding:1px 0 1px 20px;margin:0.5em 0 0 0;background:url(../openolat/images/folder_open.png) no-repeat 0 50%}div.b_briefcase_foldercomp div.b_briefcase_empty{clear:both;margin-top:0.5em;font-style:italic}div.b_briefcase_foldercomp table.b_briefcase_filetable{clear:both;border-collapse:collapse;margin-bottom:0.5em;background:#fff;width:99.9%;border:1px solid #eee}div.b_briefcase_foldercomp table.b_briefcase_filetable thead{color:#000}div.b_briefcase_foldercomp table.b_briefcase_filetable thead a,div.b_briefcase_foldercomp table.b_briefcase_filetable thead span{color:#4F576A;font-weight:bold}div.b_briefcase_foldercomp table.b_briefcase_filetable thead a:hover,div.b_briefcase_foldercomp table.b_briefcase_filetable thead a:focus{color:#000000;text-decoration:none;background-color:transparent}div.b_briefcase_foldercomp table.b_briefcase_filetable th,div.b_briefcase_foldercomp table.b_briefcase_filetable td{white-space:nowrap;text-align:right;padding-right:1em}div.b_briefcase_foldercomp table.b_briefcase_filetable th.b_last_child,div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_last_child{padding-right:0}div.b_briefcase_foldercomp table.b_briefcase_filetable th.b_first_child,div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_first_child{width:60%;text-align:left}div.b_briefcase_foldercomp table.b_briefcase_filetable td input.b_checkbox{margin:0 4px 0 0}div.b_briefcase_foldercomp table.b_briefcase_filetable td a:hover,div.b_briefcase_foldercomp table.b_briefcase_filetable td a:focus{background-color:transparent}div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_last_child{padding-left:0}div.b_briefcase_foldercomp table.b_briefcase_filetable tr:hover td{background:#ffdbc1}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions{border:0;padding:0;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions td{border:0;padding:0 0 0 3px;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions tr{border:0;padding:0;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_edit_file_icon{background-image:url(../openolat/images/docs/document--pencil.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_edit_meta_icon{background-image:url(../openolat/images/docs/document_metadata_edit.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_edit_meta_dis_icon{background-image:url(../openolat/images/docs/document_metadata_edit.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_versions_icon{background-image:url(../openolat/images/docs/document_versions.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_versions_dis_icon{background-image:url(../openolat/images/docs/document_versions.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_locked_file_icon{background-image:url(../openolat/images/locked.png)}div.b_briefcase_preview{background-color:white;width:200px;height:200px;border:1px solid #8EAACE;margin-top:2px}div.b_briefcase div.b_briefcase_searchcomp{float:left;display:inline;margin:0.5em 0;width:14em}div.b_briefcase div.b_briefcase_searchcomp input{width:10em}div.b_briefcase div.b_briefcase_searchcomp div.b_form_element_wrapper.b_form_horizontal{margin:0}div.b_briefcase div.b_briefcase_commandbuttons{margin:1em 0}div.b_briefcase div.b_briefcase_webdav{margin:0.5em 0}div.b_briefcase div.b_briefcase_quota{clear:both;margin-top:1em;padding-top:1em;border-top:1px solid #000}div.b_briefcase_meta{size:0.8em}div.b_briefcase_meta p{font-style:italic;margin:0;padding-top:2px}div.b_send_documents ol.textbox-outer{margin-left:0;border:1px solid #ACAAAA;background:#F6F6F6;line-height:1.3em}div.b_send_documents ol li{margin-left:0}div.b_send_documents textarea{overflow:auto;resize:none}@media all{div.o_wiki_wrapper{clear:both}div.o_wiki_wrapper div.o_wikimod_btn{position:relative}div.o_wiki_wrapper div.o_wikimod_btn a{margin-bottom:9px;background-repeat:no-repeat;background-position:center center;width:20px;height:19px;float:left;display:inline;padding-left:2px;border:1px solid #ccc;background-color:#eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;margin-right:2px}div.o_wiki_wrapper div.o_wikimod_btn a:hover{border:1px solid #025d8c}div.o_wiki_wrapper div.o_wikimod_btn div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:0;right:0}div.o_wiki_wrapper a.o_wikimod_btn_bold{background-image:url(../openolat/images/wiki/edit-bold.png)}div.o_wiki_wrapper a.o_wikimod_btn_italic{background-image:url(../openolat/images/wiki/edit-italic.png)}div.o_wiki_wrapper a.o_wikimod_btn_link{background:url(../openolat/images/wiki/chain.png)}div.o_wiki_wrapper a.o_wikimod_btn_extlink{background:url(../openolat/images/wiki/chain--arrow.png)}div.o_wiki_wrapper a.o_wikimod_btn_headline{background:url(../openolat/images/wiki/edit-heading.png)}div.o_wiki_wrapper a.o_wikimod_btn_image{background:url(../openolat/images/wiki/image-medium.png)}div.o_wiki_wrapper a.o_wikimod_btn_media{background:url(../openolat/images/music-beam.png)}div.o_wiki_wrapper a.o_wikimod_btn_math{background:url(../openolat/images/wiki/edit-math.png)}div.o_wiki_wrapper a.o_wikimod_btn_nowiki{background:url(../openolat/images/wiki/edit-nowiki.png)}div.o_wiki_wrapper a.o_wikimod_btn_hr{background:url(../openolat/images/wiki/edit-hr.png)}div.o_wiki_wrapper a.o_wikimod_btn_list{background:url(../openolat/images/wiki/edit-list.png)}div.o_wiki_wrapper a.o_wikimod_btn_numlist{background:url(../openolat/images/wiki/edit-list-order.png)}div.o_wiki_wrapper .b_eportfolio_add,div.o_wiki_wrapper .b_eportfolio_add_again{position:absolute;top:28px;right:3px;z-index:99}div.o_wiki_wrapper h1{font-size:1.6em}div.o_wiki_wrapper h2{font-size:1.4em}div.o_wiki_wrapper h3{font-size:1.2em}div.o_wiki_wrapper h4{font-size:1.1em}div.o_wiki_wrapper h5{font-size:1.0em}div.o_wikimod_linkchooser{clear:both;float:left;display:inline}div.o_wikimod_filechooser{margin:0 2em;float:left;display:inline}div.o_wikimod_nav{font-size:90%;padding-top:1.5em}div.o_wikimod_nav legend{font-size:95%}div.o_wikimod_nav fieldset{padding:0.5em}div.o_wikimod_nav input{width:99%}div.o_wikimod_nav ul{margin:0;padding:0}div.o_wikimod_nav div.b_button_group{margin:0.5em 0;text-align:left}div.o_wikimod_nav div.b_form div.b_form_element_wrapper.b_form_horizontal{margin:0}div.o_wikimod_nav .b_form_element_wrapper .b_form_element{padding:0}div.o_wikimod_nav div.b_form_element_wrapper div.b_form_element.b_form_horizontal .b_button{margin:0.5em 0}div.o_wikimod_editform_wrapper{clear:both;padding:0.5em 0 0 0}div.o_wikimod_editform_wrapper div.b_form div.b_form_element_wrapper div.b_form_element_label{display:none}div.o_wikimod_editform_wrapper div.b_form div.b_form_element_wrapper div.b_form_element{clear:both;margin-left:0;padding:0 5px 0 0}div.o_wikimod_editform_wrapper div.b_form div.b_button_group{margin-left:0;text-align:center}div.o_wikimod-article-box table[border="1"]{border-collapse:collapse;border:1px solid #BFBFBF}h1.o_wikimod_heading,h3.o_wikimod_heading{margin:0 0 1em 0;padding:.5em 0 .17em 0;border-bottom:1px solid #BFBFBF}#o_wikimod_uploader{margin:1em 0 0 0}.o_wikimod_version{border:1px solid #BFBFBF;padding:4px;margin-top:5px}.o_wikimod_diff{border:1px solid #BFBFBF;padding:4px;margin:0px}.o_wikimod_warn{color:#DF9719}.o_wiki_error{background-color:#DF9719}.o_wikimod_ins{background-color:#A4DCA4}.o_wikimod_old{background-color:#FFCCCC}.o_wikimod_new{background-color:#A4DCA4}.o_wikimod_del{background-color:#FFCCCC}.wiki-image{float:right;padding:10px;clear:right}.wiki-file-deleted{text-decoration:line-through}img.wikiimg{border:0px}a.wikiimg{text-decoration:none;color:inherit;font-weight:inherit}div.imgcaption{padding:0.3em 0em 0.2em 0.3em}div.imgleft{clear:left;float:left;margin:0.3em 0.3em 0.3em 0em;text-align:left}div.imgright{clear:right;float:right;margin:0.3em 0em 0.3em 0.3em;text-align:right}div.o_wikimod-article-box div{width:auto !important}div.imgcenter{clear:both;overflow:hidden;text-align:center;margin:0.3em 0em 0.3em 0em}div.imgthumb{border:1px solid #bbbbbb;padding:0.3em}table.gallery{border:1px solid #B8B8DB;margin:2px;padding:2px;background-color:white}table.gallery tr{vertical-align:middle}table.gallery td{background-color:#EEEEEE;border:solid 2px #B8B8DB;text-align:center;vertical-align:middle;width:150px}img.gallery{border:1px solid #B8B8DB;padding:0.3em}a.edit{font-style:italic;color:#E98F8F}a.externallink:before{content:url("../openolat/images/external_link.png");padding-right:2px}pre{padding:1em;border:1px dashed #B8B8DB;color:black;background-color:#EEEEEE;line-height:1.1em}}div.o_forum div.o_forum_switch{font-size:90%}div.o_forum div.o_forum_message{margin:1em 0 1em 0;padding:0.5em;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;background:#eeeeee}div.o_forum div.o_forum_message_header_wrapper{min-height:24px}div.o_forum div.o_forum_message_header_wrapper div.o_forum_message_header{min-height:24px}div.o_forum div.o_forum_message_title{vertical-align:middle;padding:2px 5px 2px 5px;min-height:24px}div.o_forum div.o_forum_message_title strong{font-weight:bold}div.o_forum div.o_forum_message_new div.o_forum_message_title strong{background:url(../openolat/images/new-text.png) no-repeat top right;padding-right:20px}div.o_forum div.o_forum_message_creator{width:100px;padding:0.5em 12px 0px 21px;font-size:95%;color:#4F576A;float:right;border-left:1px solid #fff}div.o_forum div.o_forum_message_creator strong{font-weight:normal}div.o_forum div.o_forum_message_creator img{border:1px solid #4F576A}div.o_forum div.o_forum_message_body{padding:0.5em;background:transparent;margin-right:155px}div.o_forum div.o_forum_message_attachments{margin:2em 0 0.5em 0;border-top:1px solid #555555;font-size:95%}div.o_forum div.o_forum_message_attachments strong{display:block;margin:0.5em 0;font-weight:normal;font-style:italic}div.o_forum div.o_forum_message_attachments ul{list-style:none;margin:0;padding:0}div.o_forum div.o_forum_message_attachments li{margin:0;padding:0}div.o_forum div.o_forum_message_attachments a{background-repeat:no-repeat;background-position:0 50%;padding-left:20px;padding-top:2px;padding-bottom:2px}div.o_forum div.o_forum_message_modified{clear:both;border-top:1px solid #506D90;padding:0.5em 0 0 0;font-size:95%;font-style:italic;text-align:center;color:#98221F}div.o_forum div.o_forum_message_actions{text-align:center;padding:0.2em 1em;padding-top:0.8em}span.o_forum_thread_sticky{font-weight:bold}span.o_forum_status_thread_icon{background-image:url(../openolat/images/forum/forum.png)}span.o_forum_status_sticky_closed_icon{background-image:url(../openolat/images/forum/sticky-note-pin_locked.png)}span.o_forum_status_sticky_icon{background-image:url(../openolat/images/forum/sticky-note-pin.png)}span.o_forum_status_closed_icon{background-image:url(../openolat/images/forum/forum_locked.png)}.b_quote_wrapper{position:relative;margin:20px}.b_quote_author{background:url(../openolat/images/forum/quote.gif) no-repeat left bottom;padding:10px 5px 15px 11px;position:relative;top:1px;font-style:italic;color:#A2A2A2}blockquote.b_quote{margin:0;border:1px solid #e5e5e5;padding:8px 10px 6px;color:#646464;background:#fff;font-size:100%}div.o_forum_peekview{margin:1em 0 1em 0}div.o_forum_peekview h5{font-size:1em;position:relative;left:-20px}div.o_forum_peekview div.o_forum_peekview_message{padding-left:20px;padding-bottom:15px}div.o_forum_peekview div.b_quote_wrapper{display:none}.o_forum_message_icon{background-image:url(../openolat/images/forum/balloon-white-left.png)}div.o_forum_toolbar{float:left;display:inline;width:75%}div#o_forum_fulltextsearch{float:right;display:inline}div#o_forum_fulltextsearch input{width:10em}div#o_forum_fulltextsearch div.b_form_element_wrapper.b_form_horizontal{margin:0}div.b_struct_edit_btn{float:right;display:inline}div.o_ep_struct_editor div.b_subcr{min-height:35em;background:white;padding-right:1em;overflow-x:auto}.b_artefact{margin:5px;border:1px solid #ddd;padding:1em;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 2px lightGrey;-ms-box-shadow:0 1px 2px lightGrey;-o-box-shadow:0 1px 2px lightGrey;-webkit-box-shadow:0 1px 2px lightGrey;box-shadow:0 1px 2px lightGrey;background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%)}div.o_ep_toc_editor div.b_subcl{min-height:35em}div.o_ep_struct_editor div.b_subcr{min-height:35em;background:#FFF;padding-right:1em;overflow-x:auto}div.b_struct_edit_btn{float:right;display:inline}div.b_struct_submit_assess_btn{float:right;display:inline}.b_artefact div.b_actions{margin-top:2em}.b_artefact div.b_desc{font-style:italic;margin:1em 0}.b_ep_artAttribLink{background-image:url(../openolat/images/table_gear.png)}div.b_artefact_closed{font-size:25px;float:right;background:url(../openolat/images/locked.png) top right no-repeat}div.b_eportfolio_preview_c100l .b_artefact{margin:3px}div.b_eportfolio_preview_c33l .b_artefact{font-size:85%;margin:3px}.b_ep_nolink{color:#000000}.b_ep_nolink:hover{color:#000000;text-decoration:none}.b_ep_multiartefacts div.b_ep_add_message_with_arrow{position:relative;top:-50px}.b_ep_multiartefacts div.b_artefact_count{margin:1em 0 1em 0}a.b_ep_options{background:url(../openolat/images/gear.png) top left no-repeat;width:16px;height:16px;display:block}.b_ep_liveblog_icon{background-image:url(../openolat/images/portfolio/ep_liveblog_icon.png)}div.b_portfolio_toc ul{margin:0}div.b_portfolio_toc li{list-style-type:none}div.b_portfolio_toc li a{font-size:0.8em;text-decoration:none}div.b_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}div.b_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}div.b_portfolio_toc li.level3{padding-left:40px}div.b_portfolio_toc .link{float:right;margin-right:0px}div.b_portfolio_toc .commentlink{float:right;margin-right:10%}div.b_portfolio_toc .type_artefact{font-style:italic}div.b_portfolio_toc .type_map,div.b_portfolio_toc .type_page,div.b_portfolio_toc .type_struct,div.b_portfolio_toc .type_artefact{background-position:center left;background-repeat:no-repeat;padding-left:20px}a.b_eportfolio_add{background:url(../openolat/images/portfolio/ep_add_icon.png) top left no-repeat;display:block;width:16px;height:16px}td a.b_eportfolio_add{float:right;padding-right:2px}a.b_eportfolio_add_again,span.b_eportfolio_add_again{background:url(../openolat/images/portfolio/ep_add_again_icon.png) top left no-repeat;display:block;width:16px;height:16px}.o_efficiencystatement a.b_eportfolio_add_again{float:right}a.b_eportfolio_link{background:url(../openolat/images/portfolio/ep_link_icon.png) top left no-repeat;display:block;width:16px;height:16px}.b_eportfolio_link{background-image:url(../openolat/images/portfolio/ep_link_icon.png)}ul.b_eportfolio_maps{margin:0;padding:0}ul.b_eportfolio_maps li{display:block;float:left;position:relative;width:195px;height:320px;padding:60px 60px 40px 65px;margin:0.5em;background:url(../openolat/images/portfolio/eportfolio_map_default.png) top left no-repeat;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:14px;-webkit-border-bottom-right-radius:14px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-topright:14px;-moz-border-radius-bottomright:14px;-moz-border-radius-bottomleft:4px;border-top-left-radius:4px;border-top-right-radius:14px;border-bottom-right-radius:14px;border-bottom-left-radius:4px;moz-box-shadow:0 1px 3px lightgray;-ms-box-shadow:0 1px 3px lightgray;-o-box-shadow:0 1px 3px lightgray;-webkit-box-shadow:0 1px 3px lightgray;box-shadow:0 1px 3px lightgray}ul.b_eportfolio_maps li .b_map_info{position:absolute;bottom:40px;width:inherit;font-size:0.9em}ul.b_eportfolio_maps li .b_map_info a.b_open_icon{font-size:1.2em;position:absolute;bottom:170px;right:-10px}.b_eportfolio_changelog .b_form{margin-top:20px;margin-bottom:20px}.b_eportfolio_changelog li{list-style:none}.b_eportfolio_changelog h5{margin-top:16px}.b_eportfolio_mapowner{font-style:italic;margin-bottom:8px}.b_eportfolio_mapowner div{display:inline}div.b_eportfolio_share_with_user{clear:both}div.b_eportfolio_share_with_user p{vertical-align:middle}div.b_eportfolio_share_with_user p span{float:none}@media all{.epmst-green{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green,ul.b_eportfolio_maps li.template.epmst-green{background:#ecf69a;background:#ecf69a -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ecf69a), to(#ecf69a));background:#ecf69a -moz-linear-gradient(43% 71% 101deg, #ecf69a, #ecf69a);background:#ecf69a -o-linear-gradient(#ecf69a, #ecf69a);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ecf69a', EndColorStr='#ecf69a');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-green > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green{margin-top:6px;background:#ecf69a;background:#ecf69a -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ecf69a), to(#ecf69a));background:#ecf69a -moz-linear-gradient(43% 71% 101deg, #ecf69a, #ecf69a);background:#ecf69a -o-linear-gradient(#ecf69a, #ecf69a);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ecf69a', EndColorStr='#ecf69a');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green div.b_map_header h4{color:#444444}.epmst-green div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green div.b_ep_actualpage h1,.epmst-green div.b_ep_actualpage h4{color:#444444}.epmst-green div.b_pagination{float:none;position:static;width:100%}.epmst-green div.b_pagination ul{margin:0}.epmst-green div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green div.b_pagination li span,.epmst-green div.b_pagination li a,.epmst-green div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green div.b_eportfolio_page,.epmst-green div.b_portfolio_toc,.epmst-green div.b_eportfolio_edit{background-image:none}.epmst-green div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green2,ul.b_eportfolio_maps li.template.epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #99e44d, #cbf1a5);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green2{margin-top:6px;background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #99e44d, #cbf1a5);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green2 div.b_map_header h4{color:#555555}.epmst-green2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green2 div.b_ep_actualpage h1,.epmst-green2 div.b_ep_actualpage h4{color:#555555}.epmst-green2 div.b_pagination{float:none;position:static;width:100%}.epmst-green2 div.b_pagination ul{margin:0}.epmst-green2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green2 div.b_pagination li span,.epmst-green2 div.b_pagination li a,.epmst-green2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green2 div.b_eportfolio_page,.epmst-green2 div.b_portfolio_toc,.epmst-green2 div.b_eportfolio_edit{background-image:none}.epmst-green2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green3,ul.b_eportfolio_maps li.template.epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #dff0c1, #a0d346);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green3{margin-top:6px;background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #dff0c1, #a0d346);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green3 div.b_map_header h4{color:#555555}.epmst-green3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green3 div.b_ep_actualpage h1,.epmst-green3 div.b_ep_actualpage h4{color:#555555}.epmst-green3 div.b_pagination{float:none;position:static;width:100%}.epmst-green3 div.b_pagination ul{margin:0}.epmst-green3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green3 div.b_pagination li span,.epmst-green3 div.b_pagination li a,.epmst-green3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green3 div.b_eportfolio_page,.epmst-green3 div.b_portfolio_toc,.epmst-green3 div.b_eportfolio_edit{background-image:none}.epmst-green3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green4,ul.b_eportfolio_maps li.template.epmst-green4{background:#d7dbb5;background:#d7dbb5 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#d7dbb5), to(#d7dbb5));background:#d7dbb5 -moz-linear-gradient(43% 71% 101deg, #d7dbb5, #d7dbb5);background:#d7dbb5 -o-linear-gradient(#d7dbb5, #d7dbb5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#d7dbb5', EndColorStr='#d7dbb5');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green4{margin-top:6px;background:#d7dbb5;background:#d7dbb5 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#d7dbb5), to(#d7dbb5));background:#d7dbb5 -moz-linear-gradient(43% 71% 101deg, #d7dbb5, #d7dbb5);background:#d7dbb5 -o-linear-gradient(#d7dbb5, #d7dbb5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#d7dbb5', EndColorStr='#d7dbb5');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green4 div.b_map_header h4{color:#555555}.epmst-green4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green4 div.b_ep_actualpage h1,.epmst-green4 div.b_ep_actualpage h4{color:#555555}.epmst-green4 div.b_pagination{float:none;position:static;width:100%}.epmst-green4 div.b_pagination ul{margin:0}.epmst-green4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green4 div.b_pagination li span,.epmst-green4 div.b_pagination li a,.epmst-green4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green4 div.b_eportfolio_page,.epmst-green4 div.b_portfolio_toc,.epmst-green4 div.b_eportfolio_edit{background-image:none}.epmst-green4 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red,ul.b_eportfolio_maps li.template.epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba71, #ffba99);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red{margin-top:6px;background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba71, #ffba99);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red div.b_map_header h4{color:#444444}.epmst-red div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red div.b_ep_actualpage h1,.epmst-red div.b_ep_actualpage h4{color:#444444}.epmst-red div.b_pagination{float:none;position:static;width:100%}.epmst-red div.b_pagination ul{margin:0}.epmst-red div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red div.b_pagination li span,.epmst-red div.b_pagination li a,.epmst-red div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red div.b_eportfolio_page,.epmst-red div.b_portfolio_toc,.epmst-red div.b_eportfolio_edit{background-image:none}.epmst-red div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red2,ul.b_eportfolio_maps li.template.epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9772, #ff9780);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red2{margin-top:6px;background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9772, #ff9780);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red2 div.b_map_header h4{color:#444444}.epmst-red2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red2 div.b_ep_actualpage h1,.epmst-red2 div.b_ep_actualpage h4{color:#444444}.epmst-red2 div.b_pagination{float:none;position:static;width:100%}.epmst-red2 div.b_pagination ul{margin:0}.epmst-red2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red2 div.b_pagination li span,.epmst-red2 div.b_pagination li a,.epmst-red2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red2 div.b_eportfolio_page,.epmst-red2 div.b_portfolio_toc,.epmst-red2 div.b_eportfolio_edit{background-image:none}.epmst-red2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red3,ul.b_eportfolio_maps li.template.epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afbb, #e8afa0);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red3{margin-top:6px;background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afbb, #e8afa0);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red3 div.b_map_header h4{color:#444444}.epmst-red3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red3 div.b_ep_actualpage h1,.epmst-red3 div.b_ep_actualpage h4{color:#444444}.epmst-red3 div.b_pagination{float:none;position:static;width:100%}.epmst-red3 div.b_pagination ul{margin:0}.epmst-red3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red3 div.b_pagination li span,.epmst-red3 div.b_pagination li a,.epmst-red3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red3 div.b_eportfolio_page,.epmst-red3 div.b_portfolio_toc,.epmst-red3 div.b_eportfolio_edit{background-image:none}.epmst-red3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red4,ul.b_eportfolio_maps li.template.epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffa800, #ffaf00);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red4{margin-top:6px;background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffa800, #ffaf00);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red4 div.b_map_header h4{color:#444444}.epmst-red4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red4 div.b_ep_actualpage h1,.epmst-red4 div.b_ep_actualpage h4{color:#444444}.epmst-red4 div.b_pagination{float:none;position:static;width:100%}.epmst-red4 div.b_pagination ul{margin:0}.epmst-red4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red4 div.b_pagination li span,.epmst-red4 div.b_pagination li a,.epmst-red4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red4 div.b_eportfolio_page,.epmst-red4 div.b_portfolio_toc,.epmst-red4 div.b_eportfolio_edit{background-image:none}.epmst-red4 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue,ul.b_eportfolio_maps li.template.epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #00d2f8, #4a9ead);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue{margin-top:6px;background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #00d2f8, #4a9ead);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue div.b_map_header h4{color:#444444}.epmst-blue div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue div.b_ep_actualpage h1,.epmst-blue div.b_ep_actualpage h4{color:#444444}.epmst-blue div.b_pagination{float:none;position:static;width:100%}.epmst-blue div.b_pagination ul{margin:0}.epmst-blue div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue div.b_pagination li span,.epmst-blue div.b_pagination li a,.epmst-blue div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue div.b_eportfolio_page,.epmst-blue div.b_portfolio_toc,.epmst-blue div.b_eportfolio_edit{background-image:none}.epmst-blue div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue2,ul.b_eportfolio_maps li.template.epmst-blue2{background:#c4f6ff;background:#c4f6ff -webkit-gradient(linear, 37% 20%, 53% 100%, from(#c4f6ff), to(#c4f6ff));background:#c4f6ff -moz-linear-gradient(43% 71% 101deg, #c4f6ff, #c4f6ff);background:#c4f6ff -o-linear-gradient(#c4f6ff, #c4f6ff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#c4f6ff', EndColorStr='#c4f6ff');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue2{margin-top:6px;background:#c4f6ff;background:#c4f6ff -webkit-gradient(linear, 37% 20%, 53% 100%, from(#c4f6ff), to(#c4f6ff));background:#c4f6ff -moz-linear-gradient(43% 71% 101deg, #c4f6ff, #c4f6ff);background:#c4f6ff -o-linear-gradient(#c4f6ff, #c4f6ff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#c4f6ff', EndColorStr='#c4f6ff');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue2 div.b_map_header h4{color:#444444}.epmst-blue2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue2 div.b_ep_actualpage h1,.epmst-blue2 div.b_ep_actualpage h4{color:#444444}.epmst-blue2 div.b_pagination{float:none;position:static;width:100%}.epmst-blue2 div.b_pagination ul{margin:0}.epmst-blue2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue2 div.b_pagination li span,.epmst-blue2 div.b_pagination li a,.epmst-blue2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue2 div.b_eportfolio_page,.epmst-blue2 div.b_portfolio_toc,.epmst-blue2 div.b_eportfolio_edit{background-image:none}.epmst-blue2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue3,ul.b_eportfolio_maps li.template.epmst-blue3{background:#b3e2f7;background:#b3e2f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#b3e2f7), to(#b3e2f7));background:#b3e2f7 -moz-linear-gradient(43% 71% 101deg, #b3e2f7, #b3e2f7);background:#b3e2f7 -o-linear-gradient(#b3e2f7, #b3e2f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#b3e2f7', EndColorStr='#b3e2f7');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue3{margin-top:6px;background:#b3e2f7;background:#b3e2f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#b3e2f7), to(#b3e2f7));background:#b3e2f7 -moz-linear-gradient(43% 71% 101deg, #b3e2f7, #b3e2f7);background:#b3e2f7 -o-linear-gradient(#b3e2f7, #b3e2f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#b3e2f7', EndColorStr='#b3e2f7');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue3 div.b_map_header h4{color:#444444}.epmst-blue3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue3 div.b_ep_actualpage h1,.epmst-blue3 div.b_ep_actualpage h4{color:#444444}.epmst-blue3 div.b_pagination{float:none;position:static;width:100%}.epmst-blue3 div.b_pagination ul{margin:0}.epmst-blue3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue3 div.b_pagination li span,.epmst-blue3 div.b_pagination li a,.epmst-blue3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue3 div.b_eportfolio_page,.epmst-blue3 div.b_portfolio_toc,.epmst-blue3 div.b_eportfolio_edit{background-image:none}.epmst-blue3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue4,ul.b_eportfolio_maps li.template.epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #dee7f7, #c1e9fd);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue4{margin-top:6px;background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #dee7f7, #c1e9fd);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue4 div.b_map_header h4{color:#444444}.epmst-blue4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue4 div.b_ep_actualpage h1,.epmst-blue4 div.b_ep_actualpage h4{color:#444444}.epmst-blue4 div.b_pagination{float:none;position:static;width:100%}.epmst-blue4 div.b_pagination ul{margin:0}.epmst-blue4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue4 div.b_pagination li span,.epmst-blue4 div.b_pagination li a,.epmst-blue4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue4 div.b_eportfolio_page,.epmst-blue4 div.b_portfolio_toc,.epmst-blue4 div.b_eportfolio_edit{background-image:none}.epmst-blue4 div.b_pagination li.b_changelog{float:right}}li.default .b_map_info p{color:#bbb}li.comic .b_map_info p{color:#88a5c4}li.leather .b_map_info p{color:#C2A074}.b_map_page{text-align:center;clear:left}.b_map_page_all{text-align:center}.b_map_page > span{padding-right:3px}.b_map_page a.b_map_page_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}ul.b_eportfolio_maps li.leather{background:url(../openolat/images/portfolio/eportfolio_map_leather.png) top left no-repeat;border:none}ul.b_eportfolio_maps li.leather a{color:#fad9a4}ul.b_eportfolio_maps li.comic{background:url(../openolat/images/portfolio/eportfolio_map_comic.png) top left no-repeat;border:none}ul.b_eportfolio_maps li.template.default{background-image:url(../openolat/images/portfolio/eportfolio_map_default_template.png)}ul.b_eportfolio_maps li.template.comic{background-image:url(../openolat/images/portfolio/eportfolio_map_comic_template.png)}ul.b_eportfolio_maps li.template.leather{background-image:url(../openolat/images/portfolio/eportfolio_map_leather_template.png)}.b_map_page{text-align:center;clear:left}.b_map_page_all{text-align:center}.b_map_page > span{padding-right:3px}.b_map_page a.b_map_page_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}.b_eportfolio_map{background:white;padding:1.5em;min-height:30em}.b_eportfolio_map .b_ep_relative{position:relative}.b_eportfolio_toolbar div{display:inline}.b_eportfolio_toolbar{text-align:right;width:100%;border-bottom:1px solid #acaaaa;padding:1px 2px 4px 2px;margin-bottom:6px}.b_eportfolio_map a.b_eportfolio_add_link,.b_eportfolio_map a.b_eportfolio_del_link{float:right;display:inline;background-repeat:no-repeat;margin-left:0.5em;width:16px;height:16px;text-decoration:none}.b_eportfolio_toolbar a.b_eportfolio_add_link,.b_eportfolio_map a.b_eportfolio_del_link{float:none;display:inline-block;background-repeat:no-repeat;margin-left:0;margin-right:0.5em;width:16px;height:16px;text-decoration:none}.b_eportfolio_map div.b_eportfolio_add_link{float:left;display:inline;margin-top:2px}.o_ep_toc_editor .b_eportfolio_add_link{float:left}.b_eportfolio_map .b_eportfolio_add_link:hover{text-decoration:none}.b_eportfolio_map .b_eportfolio_comment_link{float:right;display:inline;margin-right:5px}.b_ep_tag_cloud{padding:1em 0 1em 0;border-bottom:1px solid #ccc}.b_eportfolio_page,.b_portfolio_toc,.b_eportfolio_edit,.b_eportfolio_changelog{min-height:40em;background:#f4f4f4 url(../openolat/images/portfolio/eportfolio_page_corner.png) top right no-repeat;padding:1em;-webkit-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);-moz-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);-o-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2)}.b_eportfolio_page .b_eportfolio_structure > h5{border-bottom:1px solid #ddd;margin-top:1.2em}.b_eportfolio_edit{margin-top:1.5em}.b_eportfolio.b_artefacts hr.b_ep_filter_spacer{height:10px;background:url(../openolat/images/portfolio/divider-arrow-down.png) 25px -12px no-repeat;border:none;border-top:1px solid #ccc;margin:2em 0 1em}.b_eportfolio.b_artefacts .b_ep_content{background:white;padding:0 1em 1em 1em;margin-top:1.5em}.b_eportfolio.b_artefacts .b_ep_content .b_ep_filter{padding:0;width:80%}.b_ep_filter{float:left}.b_ep_viewmode{float:right;width:15%}.b_ep_add_artefact{float:right}.b_ep_content div.b_ep_viewmode div.b_form_element_label{width:auto}.b_eportfolio.b_artefacts div.b_segments_container{top:-20px;margin-bottom:-20px}.b_ep_tagbrowser{width:30%;margin-right:0px}.b_ep_tagbrowser_view{width:68%;margin-left:0px}.b_ep_collection_icon{background-image:url(../openolat/images/portfolio/ep_collection.png) !important}.b_ep_map_icon,.b_portfolio_toc .type_map{background-image:url(../openolat/images/portfolio/briefcase.png) !important}.b_ep_page_icon,.b_portfolio_toc .type_page{background-image:url(../openolat/images/portfolio/ep_page.png) !important}.b_ep_page_icon.b_eportfolio_add_link{background-image:url(../openolat/images/portfolio/ep_page_add.png) !important}.b_ep_struct_icon,.b_portfolio_toc .type_struct{background-image:url(../openolat/images/portfolio/ep_struct.png) !important}.b_ep_struct_icon.b_eportfolio_add_link{background-image:url(../openolat/images/portfolio/ep_struct_add.png) !important}.type_artefact{background-image:url(../openolat/images/le_resources/portfolio.png) !important}div.b_eportfolio_collect_restriction{margin-top:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_el{float:left;margin-right:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link{float:left;margin-right:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link a{padding-left:0px;text-decoration:none}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link a:hover{text-decoration:none}div.b_form.b_eportfolio_tag_selector{min-width:40em}div.b_eportfolio_restriction_wrapper a.b_togglebox_opened{z-index:10;display:block;width:20px;height:20px;padding:0;margin-left:12px}div.b_eportfolio_restriction_wrapper a.b_togglebox_closed{display:block;width:20px;height:20px;padding:0;margin-left:12px}div.b_eportfolio_restriction_wrapper p{padding:0 0 0 15px;margin:0}div.b_eportfolio_restriction_wrapper div.b_togglebox div.b_togglebox_content{padding:3px 3px 3px 3px;margin:0;border:1px solid red;background-image:none;background-color:transparent;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px}div.b_eportfolio_restriction_error div.b_tooglebox_opened div.b_togglebox_content{border:1px solid #FF9900 !important;background:#fff5cc url(../openolat/images/decorator/deco_warn.png) no-repeat 3px 7px !important}div.b_eportfolio_restriction_passed div.b_tooglebox_opened div.b_togglebox_content{border:1px solid #F0F0F0 !important;background:#fcfcfc url(../openolat/images/decorator/deco_ok.png) no-repeat 3px 7px !important}div.b_eportfolio_restriction_error div.b_togglebox_closed{background:transparent url(../openolat/images/decorator/deco_warn.png) no-repeat 3px 5px !important}div.b_eportfolio_restriction_passed div.b_togglebox_closed{background:transparent url(../openolat/images/decorator/deco_ok.png) no-repeat 3px 5px !important}div.b_eportfolio_restriction_wrapper div.b_togglebox div.b_togglebox_content .b_togglebox_hide{display:none}.b_eportfolio_deadline_callout{width:300px}.b_ep_multiartefacts .b_c50l{clear:both}.b_eportfolio_fulltextsearch{float:left}.b_eportfolio_share_policy_wrapper{margin:5px;border:1px solid #ddd;padding:1em;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-ms-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-o-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%)}.b_eportfolio_share_policy_wrapper .b_float_right{text-align:right}.b_eportfolio_share_policy_wrapper a.bit-input{text-decoration:none}.b_eportfolio_share_policy div input,.b_eportfolio_share_policy div span,.b_eportfolio_share_policy div select{float:left;margin-right:5px;padding-right:5px}.b_eportfolio_share_policy div span.b_form_datechooser{background:url(../openolat/images/calendar.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}.b_eportfolio_share_policy .b_ep_share_date span{float:left}.b_eportfolio_share_policy_wrapper .b_eportfolio_share_policy{padding-left:20px;background:url(../openolat/images/user.png) top left no-repeat}.b_eportfolio_share_policy_wrapper.policytype_group .b_eportfolio_share_policy{background-image:url(../openolat/images/users.png)}.b_eportfolio_share_policy_wrapper.policytype_invitation .b_eportfolio_share_policy{background-image:url(../openolat/images/share.png)}.b_eportfolio_share_policy_wrapper.policytype_allusers .b_eportfolio_share_policy{background-image:url(../openolat/images/users.png)}div.b_ep_inline div input,div.b_ep_inline div span,div.b_ep_inline div select{float:left;margin-right:5px;padding-right:5px}.default div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.default div.b_pagination{float:none;position:static;width:100%}.default div.b_pagination ul{margin:0}.default div.b_pagination li{float:left;display:inline;width:auto;margin:2px 2px 2px 0;padding:0;background:#FAFAFA;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:7px;border-top-right-radius:7px;border-bottom-right-radius:0;border-bottom-left-radius:0}.default div.b_pagination li a{padding:1em;padding:5px 8px}.default div.b_pagination li,.default div.b_pagination li span,.default div.b_pagination li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.default div.b_pagination li.b_disabled{padding-bottom:2px;margin-bottom:0;background:#f4f4f4}.default div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.default div.b_pagination li.b_changelog{float:right}.default div.b_eportfolio_page,.default div.b_portfolio_toc,.default div.b_eportfolio_edit,.default div.b_eportfolio_changelog{background-image:none}.b_eportfolio_map.comic{background:#a2c3e8 none;padding:30px;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:10px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-topright:10px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:0;border-top-right-radius:10px;border-bottom-right-radius:0;border-bottom-left-radius:0}.comic{font-family:'Comic Sans MS', 'Comic Sans', fantasy}.comic div.b_pagination{position:absolute;right:0;width:16%;max-height:100%;overflow-x:hidden;overflow-y:auto;z-index:100}.comic .b_ep_relative > div:last-child{position:relative}.comic div.b_ep_actualpage{width:85%;margin-top:1em}.comic div.b_pagination ul{margin-top:30px;margin-left:0px;z-index:1}.comic div.b_pagination li{width:87%;background:url(../openolat/images/portfolio/postit.png) center right;padding:0;margin-bottom:1em;margin-left:8%;list-style-type:none}.comic div.b_pagination li span.b_disabled,.comic div.b_pagination li a span{display:block;padding:20px 15px 20px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.comic div.b_pagination li,.comic div.b_pagination li span,.comic div.b_pagination li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.comic div.b_pagination li.b_disabled{z-index:101;margin-left:0;width:100%}.comic div.b_pagination li .b_disabled{color:black;font-weight:bold}.comic div.b_pagination li.b_toc,.comic div.b_pagination li.b_changelog{background-image:url(../openolat/images/portfolio/postit_pink.png)}.b_eportfolio_map.leather{background:url(../openolat/images/portfolio/light-leather-tile.jpg)}.leather{font-family:Palatino, Georgia, serif}.leather div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.leather .b_map_header h4,.leather .b_map_header p,.leather .b_map_header a.b_eportfolio_add_link,.leather .b_map_header a.b_eportfolio_comment_link{color:white}.leather .b_eportfolio_mapowner{color:#fff}.leather div.b_pagination{float:none;position:static;width:100%}.leather div.b_pagination ul{margin:0}.leather div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:7px;border-top-right-radius:7px;border-bottom-right-radius:0;border-bottom-left-radius:0}.leather div.b_pagination li a{padding:1em;padding:5px 8px}.leather div.b_pagination li,.leather div.b_pagination li span,.leather div.b_pagination li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.leather div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.leather div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.leather div.b_pagination li.b_changelog{float:right}.leather div.b_eportfolio_page,.leather div.b_portfolio_toc,.leather div.b_eportfolio_edit,.leather div.b_eportfolio_changelog{background-image:none}div.o_module_cp_wrapper a.b_content_download{background:url("../openolat/images/drive-download.png") no-repeat top left;padding-left:20px;margin:3px;display:block;min-height:16px}div.o_module_cp_wrapper div#o_local_fulltextsearch{position:absolute;top:0;right:0;z-index:10}div.o_module_cp_wrapper div#o_local_fulltextsearch div.b_form_element_wrapper.b_form_horizontal{margin:0}div.o_module_cp_wrapper div.o_cp_navigation{float:right;display:inline;padding:3px 0 3px 3px;background:#ebebeb;border:1px solid #ddd;white-space:nowrap;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;moz-box-shadow:0 1px 2px lightGrey;-ms-box-shadow:0 1px 2px lightGrey;-o-box-shadow:0 1px 2px lightGrey;-webkit-box-shadow:0 1px 2px lightGrey;box-shadow:0 1px 2px lightGrey}div.o_module_cp_wrapper div span a{margin:0 2px}div.o_module_cp_wrapper div span.b_disabled{display:none}div.o_module_cp_wrapper div span a.o_cp_previous_icon{background-image:url("../openolat/images/arrow_left_big.png");text-decoration:none}div.o_module_cp_wrapper div span a.o_cp_previous_icon span{display:none}div.o_module_cp_wrapper div span a.o_cp_next_icon{background-image:url("../openolat/images/arrow_right_big.png")}div.o_module_cp_wrapper div span a.o_cp_next_icon span{display:none}div.o_module_cp_wrapper div span a.o_cp_print_icon{background-image:url("../openolat/images/printer.png")}div.o_module_cp_wrapper div span a.o_cp_print_icon span{display:none}div.o_module_cp_wrapper div.o_cp_navigation div,div.o_module_cp_wrapper div.o_cp_navigation form{display:inline}div.o_module_cp_wrapper div.o_cp_navigation div.b_clearfix{display:inline;clear:none}div.o_module_cp_wrapper div.o_cp_navigation div.b_clearfix:after{display:inline;height:0;clear:none;visibility:hidden}#o_cpeditor_menu div.o_cpeditor_menu_tree{padding:10px 0 0 0}#b_col1 div.b_menu_toolbar a,#b_col3 div.b_menu_toolbar a{width:16px;height:16px;margin:3px;float:right;display:inline;background-repeat:no-repeat}a.o_cpeditor_import{background-image:url("../openolat/images/docs/document_upload.png")}a.o_cpeditor_new{background-image:url("../openolat/images/docs/document_add.png")}a.o_cpeditor_copy{background-image:url("../openolat/images/docs/document_copy.png")}a.o_cpeditor_delete{background-image:url("../openolat/images/docs/document_remove.png")}a.o_cpeditor_edit{background-image:url(../openolat/images/docs/document_metadata_edit.png)}a.o_cpeditor_preview{background-image:url(../openolat/images/docs/document_preview.png)}#o_cpeditor_content div.o_cpeditor_message{padding:20px}div.o_qpool_button_bar{padding:15px 0 0 0;text-align:center}div.o_qpool_toolbar{padding:3px;text-align:right}.o_sel_qpool_pool{background-image:url("../openolat/images/qti/pool-share.png") !important}.o_sel_qpool_my_items{background-image:url("../openolat/images/user.png") !important}.o_sel_qpool_favorits{background-image:url("../openolat/images/flag.png") !important}.o_sel_qpool_share{background-image:url("../openolat/images/users.png") !important}.o_sel_qpool_collection{background-image:url("../openolat/images/document-list.png") !important}.o_readwrite{background-image:url("../openolat/images/pencil.png")}.o_readonly{background-image:url("../openolat/images/pencil-prohibition.png")}.o_public,.o_exportable{background-image:url("../openolat/images/tick.png")}.o_private,.o_unexportable{background-image:url("../openolat/images/cross.png")}.o_qpool_edit_learning_time div{float:left}.o_qpool_edit_learning_time div input,.o_qpool_edit_learning_time div select,.o_qpool_edit_learning_time div span.o_qpool_edit_learning_time_label{margin-right:5px;padding-right:5px}div.o_sel_qpool_edit_content{float:right}div.o_sel_qpool_edit_content .b_link_edit{margin-right:20px}div.o_sel_qpool_presentation div.b_c33l li{padding-right:15px}div.o_sel_qpool_presentation h5{margin:0.5em 0 0.5em 0}#qpoolcontainer div.b_table_wrapper a.b_table_prefs{position:relative;top:1.5em;left:19px}#qpoolcontainer div.b_table_wrapper div.dataTables_wrapper{margin-top:1em}div.o_qpool_metadata_sharing h5{margin-top:1em}div.o_qpool_metadata_sharing table td.b_first_child{width:15%}a.o_print_icon{background-image:url("../openolat/images/printer.png")}a.o_print_icon span{display:none}.d3chart .bar_green{fill:#9dd53a}.d3chart .bar_green:hover{fill:#7cbc0a}.d3chart .bar_red{fill:#f85032}.d3chart .bar_red:hover{fill:#e73827}.d3chart .bar_grey{fill:lightgrey}.d3chart .bar_grey:hover{fill:grey}div.o_qti_statistics{padding-top:20px;padding-left:40px;padding-right:5%}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0}div.o_qti_statistics li{padding-left:22px}div.o_qti_statistics li.o_qti_statistics-survey-item{padding-left:0px}div.o_qti_statistics li.o_qti_statistics-ncorrect{background:url(../img/decorator_error.png) no-repeat 5px 4px}div.o_qti_statistics li.o_qti_statistics-correct{background:url(../img/decorator_ok.png) no-repeat 5px 2px}div.o_qti_statistics h4{padding-left:20px}div.o_qti_statistics h4.qti-qtype1{background:url(../img/scItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype2{background:url(../img/mcItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype3{background:url(../img/fibItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype4{background:url(../img/essayItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype5{background:url(../img/kprimItem.png) no-repeat}#o_qti_run div.b_button_group{text-align:left}#o_qti_run_title{text-align:right}#o_qti_run_title strong{float:left;display:inline}#o_qti_run.o_qti_survey #o_qti_run_title strong{background:url(../openolat/images/le_resources/survey.png) no-repeat left 50%;padding-left:20px}#o_qti_run.o_qti_test #o_qti_run_title strong{background:url(../openolat/images/le_resources/test.png) no-repeat left 50%;padding-left:20px;padding-top:2px;padding-bottom:2px}#o_qti_scoreinfo{float:left;display:inline;padding:.3em;border:1px solid silver;margin-right:1em}#o_qti_run_score{clear:both;margin:1em 0;padding:0 0 1.5em 0;font-size:90%}#o_qti_run_scoreinfo{float:left;display:inline}#o_qti_run_scoreprogress{float:left;display:inline;margin-left:1em}#o_qti_questioninfo{float:left;display:inline;padding:.3em;border:1px solid silver}#o_qti_run_questioninfo{float:left;display:inline;margin-left:1em}#o_qti_run_questionprogress{float:left;display:inline;margin-left:1em}#o_qti_run_status{clear:both}#o_qti_run_main{clear:both;border-top:1px solid #504D4E;margin:0.5em 0;padding:1em 0}#o_qti_run_menu_inner h4{font-size:100%}#o_qti_run_menu_inner ul{padding:0;margin:0;list-style:none}#o_qti_run_menu_inner li{clear:both;padding:0;margin:0;white-space:normal}#o_qti_run_menu_inner li.o_qti_menu_section{padding:1em 0}#o_qti_run_menu_inner li div.o_qti_menu_item,#o_qti_run_menu li div.o_qti_menu_section{float:left;display:inline;margin-right:10px}#o_qti_results td{padding:0}#b_main.o_editor_qti_correct{background-image:url(../openolat/images/qti/correct_bg.png);background-position:top left}#b_main.o_editor_qti{background-image:url(../openolat/images/edit_bg.png);background-position:top left}#o_qti_hints,#o_qti_solutions{margin:1em 0}#o_qti_hints a{background:url(../openolat/images/light-bulb.png) no-repeat left 50%;cursor:help;padding-left:20px}#o_qti_solutions a{background:url(../openolat/images/magnifier-zoom.png) no-repeat left 50%;cursor:help;padding-left:20px}.qti_response_level_feedback_label{margin-top:1em;font-style:italic}.qti_edit_layout{position:relative;padding-right:30px;margin-bottom:0.6em}.qti_edit_layout .edit_link{position:absolute;top:10px;right:0px}div.o_qti_item{margin-bottom:2em;margin-top:2em;line-height:2em}div.o_qti_item input.b_radio,div.o_qti_item input.b_checkbox{margin-left:1em}div.o_qti_item textarea{width:99%}img.o_qti_item_matimage{vertical-align:middle}div.o_qti_item_choice{display:table;margin:1em 0}div.o_qti_item_choice_option{display:table;padding:.5em;border:1px solid transparent}div.o_qti_item_choice_option_flow{display:table-cell;padding:.5em;border:1px solid transparent}div.o_qti_item_choice_option:hover{border:1px solid silver}div.o_qti_item_choice_option_flow:hover{border:1px solid silver}div.o_qti_item_choice_option_input{display:table-cell;vertical-align:middle;padding-right:.5em}div.o_qti_item_choice_option_input input{vertical-align:middle}div.o_qti_item_choice_option_value{display:table-cell}div.o_qti_item_choice_option_autoenum{display:table-cell;line-height:1.5em;width:1em;overflow:hidden;vertical-align:middle;color:silver;border:0;padding:0;margin:0}#o_qti_menu a{text-decoration:none}.o_qti_menu_section{padding:.3em;border-top:1px solid #94bed3}.o_qti_menu_section_clickable{padding:.3em;border:1px solid transparent;display:inline-block}.o_qti_menu_section_clickable:hover{padding:.3em;border:1px solid silver;display:inline-block}.o_qti_menu_section_active{padding:.3em;border:1px dashed silver;display:inline-block}.o_qti_menu_item{padding:.3em;border:1px solid transparent;display:inline-block}.o_qti_menu_item_active{padding:.3em;border:1px dashed silver;display:inline-block}.o_qti_menu_item_active:hover{border:1px solid silver}.o_qti_menu_item_inactive{padding:.3em;border:1px solid transparent}.o_qti_menu_item:hover{border:1px solid silver}.o_qti_menu_item_closed{padding:.3em;border:1px solid transparent}.o_qti_menu_item_attempts,.o_qti_menu_item_attempts_marked{color:#666;padding:.2em .4em;border:1px solid transparent;background-position:center right;background-repeat:no-repeat;display:block;width:20px;height:12px}.o_qti_menu_item_attempts{background-image:url(../openolat/images/flag_off.png)}.o_qti_menu_item_attempts:hover,.o_qti_menu_item_attempts_marked:hover{border:1px solid silver;cursor:pointer}.o_qti_menu_item_attempts_marked{background-image:url(../openolat/images/flag.png)}#o_qti_item_note{padding:0;margin:0;border:0;color:#666;font-family:inherit;font-size:1em;background:inherit;overflow:hidden}.o_qti_item_note_box{border:1px dashed silver;padding:.1em;margin:0;padding-left:.5em}div.o_qti_item_note_box_title{color:#666}div.o_qti_item_itemfeedback,div.o_qti_item_assessfeedback,div.o_qti_item_o_qti_item_sectionfeedback{margin:1em 0;background:url(../openolat/images/lightning.png) no-repeat left 50%;padding-left:20px}div.o_qti_item_objectives{margin:1em 0;background:url(../openolat/images/information-white.png) no-repeat left 50%;padding-left:20px;line-height:2em}.o_qti_timelimit_icon{background-image:url(../openolat/images/qti/time.png)}.o_qti_attemptslimit_icon{background-image:url(../openolat/images/qti/tries.png)}.o_qti_closed_icon{background-image:url(../openolat/images/qti/closed.png)}.o_mi_qtialientitem{background-image:url(../openolat/images/docs/document_plain.png)}.o_mi_qtisc{background-image:url(../openolat/images/qti/scItem.png)}.o_mi_qtimc{background-image:url(../openolat/images/qti/mcItem.png)}.o_mi_qtikprim{background-image:url(../openolat/images/qti/kprimItem.png)}.o_mi_qtifib{background-image:url(../openolat/images/qti/fibItem.png)}.o_mi_qtiessay{background-image:url(../openolat/images/qti/essayItem.png)}.o_mi_qtisection{background-image:url(../openolat/images/qti/section.png)}.o_mi_qpool_import{background-image:url(../openolat/images/qti/pool.png)}.o_mi_qpool_export{background-image:url(../openolat/images/qti/pool.png)}.o_mi_docx_export{background-image:url(../openolat/images/docs/document-word.png)}.o_mi_iqtest{background-image:url(../openolat/images/le_resources/test.png)}.o_mi_iqsurv{background-image:url(../openolat/images/le_resources/survey.png)}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}div.b_translation_start div.b_translation_start_body,div.b_translation_edit div.b_translation_edit_body{margin-top:0.5em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_list div.b_translation_list_package{margin-bottom:0.5em;padding:1em 0 0.5em 0;border-bottom:1px solid #ACAAAA}div.b_translation_list div.b_translation_list_package div.b_translation_package_icon{margin-bottom:0.5em;border-bottom:1px solid #ACAAAA}div.b_translation_edit div.b_button_group{text-align:center;margin:1em 0 0 0}div.b_translation_edit div.b_translation_edit_head div.b_progress div.b_progress_bar{float:left;display:inline}div.b_translation_edit div.b_translation_edit_head div.b_progress div.b_progress_label{float:left;display:inline;padding:0 0 0 1em;font-size:90%;font-style:italic}div.b_translation_edit div.b_translation_edit_body textarea{width:99%}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_annotation{margin-top:1em}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_compare{margin-top:1em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_target{margin-top:1em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_edit div.b_form_element textarea.b_form_element_disabled{color:#000;background:#EEEEEE;border:1px solid #CDCBCB}div.b_translation_edit div.b_translation_edit_annotation h5{font-weight:normal;font-size:100%;font-style:italic}div.b_translation_edit div.b_translation_edit_annotation textarea{font-style:italic}div.b_translation_edit div.b_translation_refKey{background-image:url(../openolat/images/magnifier-zoom.png);vertical-align:middle;background-color:#eee;border:1px solid #ACAAAA;margin-right:1%}div.b_translation_edit div.b_translation_refKey code{line-height:1em;vertical-align:middle}div.b_translation_edit div.b_translation_refKey span{line-height:1em;font-style:italic}div.b_translation_config span.b_translation_status,ul.b_translation_status span.b_translation_status{position:absolute;right:1em}ul.b_translation_status{column-count:2;-moz-column-count:2;list-style:none}ul.b_translation_status li{position:relative}.b_translation_package_icon{background-image:url(../openolat/images/folder_open.png) !important}.b_translation_item_icon{background-image:url(../openolat/images/docs/document-node.png) !important}.b_translation_search_icon{background-image:url(../openolat/images/magnifier-zoom.png) !important}span.b_translation_i18nitem{position:relative !important}span.b_translation_i18nitem a.b_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:16px !important;height:16px !important;top:0 !important;left:5px !important;background:#eeeeee url(../openolat/images/docs/document_metadata_edit.png) no-repeat !important;border:1px solid #6e6e6e !important;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;padding:0 !important}div.b_selectiontree{font-size:95%}div.b_selectiontree div.b_selectiontree_item{clear:both;position:relative;top:0;left:0;vertical-align:middle;height:16px;width:auto}div.b_selectiontree div.b_selectiontree_item div{width:16px;height:16px;float:left;display:inline;background-repeat:no-repeat}div.b_selectiontree div.b_selectiontree_item div.b_selectiontree_content{float:left;display:inline;margin-left:0.5em;width:auto;white-space:nowrap}div.b_selectiontree div.b_selectiontree_content{width:auto}div.b_selectiontree div.b_selectiontree_content div{width:auto}div.b_selectiontree div.b_selectiontree_content input{width:1em;height:1em;padding:0;margin:0 0.5em;vertical-align:middle}div.b_selectiontree div.b_selectiontree_content input.b_radio{margin:0}div.b_selectiontree .b_selectiontree_line{background-image:url(../openolat/images/tree/dots.gif)}div.b_selectiontree .b_selectiontree_space{background-image:url(../openolat/images/tree/dots_spacer.gif)}div.b_selectiontree .b_selectiontree_junction{background-image:url(../openolat/images/tree/dots_nt.gif)}div.b_selectiontree .b_selectiontree_end{background-image:url(../openolat/images/tree/dots_nl.gif)}#b_main.o_editor #b_col3{background-image:url(../openolat/images/edit_bg.png);background-position:top left;background-repeat:repeat}#b_main.o_editor div.b_tabbedpane_wrapper div.b_tabbedpane_content{background:#fff}#b_main_toolbar.o_course_breadcumbs div.b_breadcumb_path ul li.b_first{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}a.b_preview{background-image:url(../openolat/images/docs/document_preview.png);background-repeat:no-repeat;background-position:left;padding:2px 0 2px 20px}fieldset a.b_preview,div.b_tabbedpane_wrapper a.b_preview{position:absolute}div.b_module_singlepage_wrapper a.b_content_edit{position:absolute;top:0;right:20px;display:inline;background:url(../openolat/images/docs/document--pencil.png) no-repeat top left;width:16px;height:16px;margin:3px}div.b_module_singlepage_wrapper a.b_content_download{position:absolute;top:0;z-index:10;background:url(../openolat/images/docs/document_download.png) no-repeat top left;padding-left:20px;margin-top:3px;min-height:19px;height:19px}div.b_titled_wrapper div.b_module_singlepage_wrapper a.b_content_download{position:relative;padding-bottom:3px}div.b_titled_wrapper div.b_module_singlepage_wrapper div.b_iframe_wrapper{margin-top:3px}div.b_lti_edit_wrapper div.o_buttons_box_right{z-index:10;top:13px;right:20px}#b_content_popup{float:right;background:url(../openolat/images/applications.png) no-repeat top left;width:16px;height:16px;margin:3px}#o_course_editor_errorbox{font-size:90%;padding:3px 2px 2px 25px;margin:0 0 1em 0}div.o_courseeditor_legend{margin-top:3em}div.o_courseeditor_legend strong{font-weight:bold}div.o_courseeditor_legend div{top:0;left:0;padding-left:12px;background-repeat:no-repeat;background-position:0 50%}div.o_buttons_box_right{position:absolute;top:0;right:0}fieldset div.o_buttons_box_right{top:1em}div.b_box_with_chelp div.o_buttons_box_right{right:20px}div.o_course_run div.o_course_run_displaytitle{font-style:italic}div.o_course_run div.o_course_run_objectives{background-color:#E9EAEF;padding:5px 5px 5px 25px;margin:0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_scoreinfo{background:#e9eaef url(../openolat/images/seal.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_disclaimer{background:#e9eaef url(../openolat/images/information-white.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_groupinfo{background:#e9eaef url(../openolat/images/users.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_statusinfo{background:url(../openolat/images/bullet_go.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_returnbox{background:#e9eaef url(../openolat/images/box_return.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_dropbox{background:#e9eaef url(../openolat/images/box_drop.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_solutionbox{background:#e9eaef url(../openolat/images/box_solution.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_task{background:#e9eaef url(../openolat/images/assign.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_disclaimer h4,div.o_course_run div.o_course_run_objectives h4,div.o_course_run div.o_course_run_scoreinfo h4,div.o_course_run div.o_course_run_returnbox h4,div.o_course_run div.o_course_run_dropbox h4,div.o_course_run div.o_course_run_solutionbox h4,div.o_course_run div.o_course_run_task h4,div.o_course_run div.o_course_run_log h4{font-size:100%;margin:0 0 1em 0}div.o_course_run div.o_course_run_scoreinfo_noinfo{font-style:italic;font-weight:bold}div.o_course_run div.o_course_run_toc{margin:1em 0 0 0}div.o_course_run div.o_course_run_toc div.o_course_run_toc_entry{margin:0 0 1em 0;padding:1em 20px 0 0}div.o_course_run div.o_course_run_toc div.o_course_run_shorttitle{border-bottom:1px solid #ACAAAA}div.o_course_run div.o_course_run_toc div.o_course_run_displaytitle{margin-top:0.5em;color:#aaaaaa}div.o_course_run div.o_course_run_toc div.o_course_run_objectives{margin:1em 0 1em 0;border:0;background:none}div.o_course_run div.o_course_run_toc div.o_course_run_toc_entry{background:#FBFBFB;padding:5px;border:1px solid #eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run #b_content_popup{position:absolute;top:0;right:0}div.o_sp_peekview{margin:1em 0 1em 0}div.o_sp_peekview ul{list-style:none}div.o_sp_peekview li{margin-top:0.5em}div.o_peekview_author{padding:3px 0 5px 0;font-style:italic;color:#aaaaaa;font-size:90%}#b_preview_wrapper{clear:both;padding:10px;background:#fff;border-bottom:1px solid #94bed3}#b_main.b_preview{moz-box-shadow:0 0 0 white;-ms-box-shadow:0 0 0 white;-o-box-shadow:0 0 0 white;-webkit-box-shadow:0 0 0 white;box-shadow:0 0 0 white;background:white url(../openolat/images/prevbg.png) repeat}body.b_full_screen{background-color:white;background-image:none}body.b_full_screen #b_page_margins{display:none}body.b_full_screen div.b_modal_area{margin:2%;width:96%}body.b_full_screen div#b_preview_wrapper{margin:0;border:0;padding:0;background:#5e5e5e;background:-moz-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5e5e5e), color-stop(50%, #444444), color-stop(51%, #222222), color-stop(100%, #3c3c3c));background:-webkit-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-o-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-ms-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%)}body.b_full_screen div#b_preview_wrapper div.b_preview_link{border:none}body.b_full_screen div#b_preview_wrapper div.b_preview_link a.b_link_back{margin:0.5em}body.b_full_screen div#b_preview_wrapper div.b_preview_link div.b_preview_wrapper_loading{background:transparent url(../openolat/images/ajax-loader.gif) no-repeat top left}div#b_preview_wrapper div#b_preview_wrapper_message{float:right;padding-left:16px;width:100px}div.o_scorm a.b_link_close{padding-right:20px}div.o_scorm div.o_scorm_navigation{float:right;display:inline;padding:3px;background:#fefefe;background:-moz-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fefefe), color-stop(50%, #e3e3e3), color-stop(51%, #cfcfcf), color-stop(100%, #f3f3f3));background:-webkit-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-o-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-ms-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);border:1px solid #504D4E;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;margin:0.2em}div.o_scorm div.o_scorm_navigation a{margin:0 2px}div.o_scorm div.o_scorm_navigation a.o_scorm_previous_icon{background-image:url(../openolat/images/arrow_left_big.png)}div.o_scorm div.o_scorm_navigation a.o_scorm_next_icon{background-image:url(../openolat/images/arrow_right_big.png)}div.o_scorm div.o_scorm_navigation a.hover{background-color:none}.o_scorm_completed,.o_scorm_passed{top:6px;left:6px;background-image:url("../openolat/images/decorator/deco_ok.png")}.o_scorm_failed{top:6px;left:6px !important;background-image:url("../openolat/images/decorator/deco_error.png")}.o_scorm_incomplete{top:6px;left:6px;background-image:url("../openolat/images/decorator/deco_warn.png")}.o_scorm_not_attempted{top:6px;left:6px;background-image:none}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#f3feff}.d3chart .bar_default_light:hover{fill:#94bed3}.d3chart .bar_default{fill:#94bed3}.d3chart .bar_default:hover{fill:#025d8c}.d3chart .bar_default_dark{fill:#025d8c}.d3chart .bar_default_dark:hover{fill:black}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.d3chart .x.axis path{display:none}div.o_members_search{padding-top:10px;padding-left:10px}div.filters{text-align:center;padding-top:1.5em}div.o_members_search div.searchitem{margin-bottom:0.5em}div.searchitem select,div.searchitem input{width:250px}.o_members_register{margin-bottom:5px}.o_members_register_active{font-weight:bold;font-size:120%}div.o_members_paging{width:100%;padding-bottom:1em;padding-top:0.5em;text-align:center}div.o_members_paging div{padding-left:1em;padding-right:1em;display:inline}div.o_bcard{background-color:#eee;margin-top:10px;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-o-border-radius:6px}div.o_bcard_header,div.o_members_header{padding:6px;border-bottom:1px solid #fff}div.o_bcard_portrait{float:left;display:inline;width:100px;height:100px;margin:10px}div.o_bcard_portrait img{border:1px #d3d3d3 solid}div.o_bcard_portrait_group{background-image:url(../openolat/images/group_100x100.png);border:1px #d3d3d3 solid}div.o_bcard_text{margin-left:120px;margin-top:10px;line-height:150%}div.o_bcard_footer{text-align:right;clear:both;font-size:95%;color:#1f49b3;padding:5px}div.o_visitingcard h4{background:url("../openolat/images/card-address.png") 0 50% no-repeat;padding-left:20px;margin-bottom:1em}div.o_visitingcard table th{width:20%}.popup_iframe{width:100%;height:100%;border:none;min-height:60em}div.o_reservation{position:relative;margin-top:2em;padding:1em;background:#F7F7F7;border:1px solid #eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_reservation span.o_reservation_name{font-weight:bold;line-height:2em}div.o_reservation span.o_reservation_role_coach{margin-left:1em}div.o_reservation span.o_reservation_accepted{margin-left:2em;background:transparent url(../openolat/images/tick.png) 0 50% no-repeat;color:#009900;padding-left:20px;font-style:italic;line-height:2em}div.o_reservation span.o_reservation_refused{margin-left:2em;background:transparent url(../openolat/images/cross.png) 0 50% no-repeat;color:#990000;padding-left:20px;font-style:italic;line-height:2em}div.o_reservation a.o_reservation_details_link{padding:0 1em}div.o_reservation div.o_reservation_details{padding:1em 0 0 0}div.o_reservation ul{list-style:none;padding:0;margin:0}div.o_reservation ul li{background-repeat:no-repeat;padding:0;margin:0}div.o_infomsgs{padding-top:5px}div.o_infomsgs div.b_datecomp{top:2px;float:left;display:inline}div.o_infomsgs div.o_infomsg{margin-bottom:1em;padding:10px 0 0 0}div.o_infomsgs .b_year{display:none}div.o_infomsgs .o_item_info{color:#7D7D7D;font-size:90%}div.o_infomsgs .o_item_info .o_item_info_mod{color:#98221F}div.b_table_wrapper td a.o_peekview_infomsg_link{display:inline}div.o_infomsgs_config{padding-bottom:5px}div.o_infomsgs_config div{display:inline}.o_infomsg_icon{background-image:url(../openolat/images/information-button.png)}.o_infomsg_create_button{position:absolute;top:0;right:250px}.b_mail_icon{background-image:url(../openolat/images/mail.png)}div.b_mail_message div.b_form_element_wrapper:first-child div.b_form_element{font-weight:bold}.b_mail_new{width:20px !important;background-image:url(../openolat/images/new-text.png)}.b_table_wrapper span.b_mail_unread{display:block;display:inline-block;width:16px;height:16px;background:transparent url(../openolat/images/bullet_black.png) top left no-repeat}.b_table_wrapper span.b_mail_read{display:block;display:inline-block;width:16px;height:16px}.b_table_wrapper span.b_mail_marked{display:block;display:inline-block;width:16px;height:16px;background:transparent url(../openolat/images/flag.png) top left no-repeat}.b_table_wrapper span.b_mail_unmarked{display:block;display:inline-block;width:16px;height:16px}.b_table_wrapper .b_marked{font-weight:bold}ul.b_mail_attachments{list-style:none;margin:0;padding:0}ul.b_mail_attachments li{margin:0}div.o_cmembers div.b_clearfix{margin-bottom:1.5em}div.o_cmembers div.o_cmember{float:left;position:relative;width:30%;height:30px;overflow:hidden;margin:5px 5px 5px 0;padding:8px;border:1px solid #ddd;background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 2px #d3d3d3;-ms-box-shadow:0 1px 2px #d3d3d3;-o-box-shadow:0 1px 2px #d3d3d3;-webkit-box-shadow:0 1px 2px #d3d3d3;box-shadow:0 1px 2px #d3d3d3}div.o_cmembers div.o_cmember div.o_cmember_portrait_wrapper{position:absolute}div.o_cmembers div.o_cmember div.o_cmember_portrait_wrapper div.o_cmember_portrait{top:3px;left:3px;border:1px solid #bbb;width:30px;height:30px;background-color:#fff;background-repeat:no-repeat;background-position:50% 50%}div.o_cmembers div.o_cmember div.o_cmember_info_wrapper{padding-left:35px;line-height:30px;vertical-align:middle}div.o_cmembers a.o_cmembers_mail{float:none;margin-left:5px;padding-left:20px;background-image:url(../openolat/images/mail.png)}div.o_cmembers a.o_cmembers_mail span{display:none}div.o_cmembers h4{padding:7px 0 0 0;clear:both}div.o_ll_container ul li{list-style:circle;margin:1em}div.o_ll_container ul li div{font-style:italic}a.o_ll_browse span{display:block;width:20px;height:18px;background:url(../openolat/images/library.png) top left no-repeat;margin-left:1px}div.b_contexthelp_wrapper{position:relative}a.b_contexthelp{display:block;width:16px;height:16px;background:url(../openolat/images/help.png) no-repeat;line-height:0;cursor:help}div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:0;right:0}fieldset a.b_contexthelp,fieldset div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:-1.5em;right:-0.8em}#b_contexthelp_content{padding:0}#b_ch_topnav_search div.b_form_element_wrapper.b_form_horizontal{margin:2px 0 0 0}#b_contexthelp_rating{text-align:center;margin-top:20px;padding:10px;border-top:1px #ACAAAA solid}#b_contexthelp_rating h4{font-size:90%;margin:0;font-style:italic}#b_contexthelp_rating table{display:inline-block}#b_contexthelp_rating table td{width:50%}.b_contexthelp_icon{background-image:url(../openolat/images/help.png)}div.b_ratings_and_comments{margin:4em 0 1.5em 0;padding-bottom:0.5em;border-bottom:1px solid #eee;font-size:0.9em;position:relative}div.b_ratings_and_comments div.b_rating_wrapper{position:absolute;right:0;bottom:0;width:150px;height:4em}div.b_ratings_and_comments div.b_rating{background:none;border:none;padding:0;margin:0;position:absolute;left:0;bottom:2px;width:100%}div.b_ratings_and_comments div.b_rating_personal{background:#fff;z-index:5}div.b_ratings_and_comments a.b_comments,div.b_eportfolio_map a.b_comments{background:url(../openolat/images/comment.png) 3px 50% no-repeat;padding:3px 0 1px 23px;vertical-align:middle;min-height:18px}div.b_comments{font-size:0.9em}div.b_comments div.b_comment_wrapper{border:1px solid #eee;padding:10px 10px 5px 10px;margin-bottom:2em;background:#fbfbfb;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_comments div.b_comment_wrapper div.b_avatar img{border:1px solid #aaa}div.b_comments div.b_comment_wrapper h5{font-size:1em;background:url(../openolat/images/user.png) 0 50% no-repeat;padding:1px 0 1px 20px;vertical-align:middle;min-height:16px}div.b_comments div.b_comment_wrapper span.b_date{color:#aaaaaa;font-weight:normal;display:block;margin-top:5px}div.b_comments div.b_comment_wrapper div.b_comment_wrapper{margin-left:7px;background:#fff}div.b_comments div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper{background:#fbfbfb}div.b_comments div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper{background:#fff}div.b_comments blockquote.b_comment{padding:3px 0 0 0px;margin:0}div.b_comments div.b_form{padding:10px;border:1px solid #eee;margin:2em 0 2em 0;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_comments div.b_form h5{font-size:1em;margin-bottom:0.5em}div.b_comments div.b_form div.b_button_group{text-align:center}.b_comment_icon{background-image:url(../openolat/images/comment.png)}#b_comment_form_link{font-size:0.9em;position:relative;top:-15px;left:23px}div.b_rating{margin:10px;padding:5px;font-size:80%;white-space:nowrap;text-align:left;background:#EEE;border:1px solid #ACAAAA;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_rating div.b_rating_title{font-weight:bold}div.b_rating div.b_rating_items{vertical-align:middle;line-height:18px}div.b_rating div.b_rating_items a{float:left;display:inline;width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;margin:1px 4px 1px 0}div.b_rating div.b_rating_items a.b_rating_item_on{background-image:url(../openolat/images/star.png)}div.b_rating div.b_rating_items a.b_rating_item_off{background-image:url(../openolat/images/star_grey.png)}div.b_rating div.b_rating_items a:hover{cursor:default}div.b_rating div.b_rating_items.b_enabled a:hover{cursor:pointer}div.b_rating div.b_rating_items.b_enabled a.b_rating_item_off:hover{background-image:url(../openolat/images/star.png)}div.b_rating div.b_rating_explanation{clear:both;font-size:90%}div.b_datecomp{width:2.5em;height:3em;position:relative;margin-right:5px;font-weight:normal;color:white;text-align:center;vertical-align:middle;border:1px solid #000;font-size:85%}div.b_datecomp div{width:100%;position:absolute;left:0}div.b_datecomp div.b_year{height:1em;top:-1.5em;font-size:80%;font-weight:normal;color:#000}div.b_datecomp div.b_month{background:#BE5B5D;height:40%;top:0;font-size:80%;font-weight:normal;color:white}div.b_datecomp div.b_day{background:#fff;height:60%;bottom:0;font-size:120%;font-weight:bold;color:#000;border-top:1px solid #000;border-bottom:1px solid #aaaaaa}.b_content_download{background:url("../openolat/images/drive-download.png") no-repeat top left;padding-left:20px;margin:3px;display:block;min-height:16px}ul.o_sel_repository_owners{list-style:none;margin:0;padding:0;white-space:nowrap}ul.o_sel_repository_owners li{margin:0}div.fx_portal_admin{margin-top:10px}div.fx_portlets_column{width:30%;float:left;margin-right:10px}div.fx_portlets_column div.b_portlet{min-height:1em}div.fx_portlets_column_name{padding:5px 5px 0px 5px}div.fx_portlets_column_name span{color:#4F576A;font-weight:bold;text-deocration:underline}ul.fx_portlets_column_portlets{border:1px solid #eee;padding:0;margin:0;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%)}ul.fx_portlets_column_portlets li{margin-left:0}div.fx_available_portlets{width:28%;float:right}div.fx_available_portlets div.b_portlet{min-height:1em}div.fx_portlets_admin_column{min-height:12em}div.fx_site_admin_column{float:left}div.fx_site_admin_column div.fx_site_definition{min-height:1em}div.o_notifications_news_datechooser{border-bottom:1px solid #bbb;padding:1em 0 1em 0}div.o_notifications_news_datechooser label{padding-right:1em}div.o_notifications_news_subscription{margin:1.5em 0 2em 0}div.o_notifications_news_subscription h4{font-size:110%}div.o_notifications_news_subscription h4.o_returnbox_icon{background-image:url(../openolat/images/box_return.png) !important}div.o_notifications_news_context{color:#7D7D7D;font-size:90%}div.o_notifications_news_content{margin:0.5em 0 0.5em 0}div.o_notifications_news_content ul{list-style-type:none;margin:0}#o_search_form{margin:5px;position:relative}#o_search_form_toggler{background-image:url(../openolat/images/magnifier-zoom.png);cursor:pointer}#o_search_form_content div.b_form div.b_form_element_wrapper div.b_form_element_wrapper{margin:0.5em 0}#o_search_form div.b_contexthelp_wrapper a.b_contexthelp{right:0}#o_search_results{border-top:1px solid #eee;margin:5px}#o_search_results_header{line-height:16px;vertical-align:middle;background:url(../openolat/images/magnifier-zoom.png) no-repeat center left #f8f8f8;padding:2px 2px 2px 20px;margin-bottom:5px}#o_search_results_header div.o_search_results_stats{float:right;display:inline;font-size:90%}#o_search_results_header span.o_search_highlight{padding-left:2em}#o_search_results_header.o_search_did_you_mean,#o_search_results_header.o_search_no_results{background-image:url(../openolat/images/exclamation.png);color:#990000}#o_search_results_header.o_search_did_you_mean span.o_search_did_you_mean_words{color:#000;font-weight:bold}#o_search_results_header #o_search_pageing{padding-left:2em;display:inline}#o_search_pageing_bottom{text-align:center;background:#F8F8F8;border-bottom:1px solid #eee;padding:3px}#o_search_results_toomany{background:url(../openolat/images/exclamation.png) no-repeat center left #f8f8f8;color:#990000;padding:5px 0 3px 20px;position:relative;top:-5px;margin-bottom:5px}div.o_search_result{margin:0 0 1em 0;padding:1em 0 0 0}div.o_search_result_title a{font-weight:bold}div.o_search_result_title a.o_search_result_details_link{margin-left:1em;font-weight:normal;font-size:90%;vertical-align:bottom}div.o_search_result_excerpt{padding:2px 0 1px 0;font-size:95%;max-width:60em}div.o_search_result_excerpt span.o_search_result_highlight{font-weight:bold;background-color:#FFFF80}div.o_search_result_context,div.o_search_result_author,div.o_search_result_lastmod,div.o_search_result_type,div.o_search_result_desc{padding:1px 0;font-size:90%;color:#667}a.o_fulltext_search_button{background:url(../openolat/images/magnifier-zoom.png) top left no-repeat}div.error-box{width:400px;margin:30px auto;padding:20px;border:2px solid #025d8c;border-radius:6px;background:white;moz-box-shadow:0 2px 4px #cccccc;-ms-box-shadow:0 2px 4px #cccccc;-o-box-shadow:0 2px 4px #cccccc;-webkit-box-shadow:0 2px 4px #cccccc;box-shadow:0 2px 4px #cccccc;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-o-border-radius:6px}div.error-box h1{background-image:url(../openolat/images/icon_warning_32.png);background-repeat:no-repeat;padding-left:30px;font-size:14pt;font-weight:bold}.b_tag_list{background:url(../openolat/images/tag-label-yellow.png) 0px 3px no-repeat !important}.b_tag_icon{background-image:url(../openolat/images/tag-label-yellow.png)}div.b_tags{margin:2em 0}div.b_tags div{padding:0.5em 0 0 20px}div.b_tags span.b_tag{font-size:80%;padding:5px 2px 5px 2px;line-height:3em;white-space:nowrap}*:first-child + html div.holder{padding-bottom:2px}* html div.holder{padding-bottom:2px}.textbox-outer{list-style-type:none;margin-left:0em}a.bit-box,span.b_tag{-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border:1px solid #CAD8F3;background:#DEE7F8;padding:1px 5px 2px;padding-right:15px;position:relative}div.holder{font-size:80%;min-width:200px;width:auto;margin:0;overflow:hidden;height:auto !important;height:1%;padding:0px 0px 0;cursor:text}div.holder a{float:left;margin:0 5px 4px 0}div.holder a.bit{text-decoration:none;color:black}div.holder a.bit:active,div.holder a.bit:focus{outline:none}div.holder a.bit-box-focus{border-color:#598BEC;background:#598BEC;color:#fff}div.holder a.bit-input .maininput{border:1px solid #eeeeee}div.holder a.bit-input input{width:100px;margin:0;border:none;background:white;outline:0;padding:3px 0 2px}div.holder a.bit-input input.smallinput{width:20px}div.holder a.bit-hover{background:#BBCEF1;border:1px solid #6D95E0}div.holder a.bit-box-focus{background:#598BEC;color:#fff}div.holder a.bit-box a.closebutton{position:absolute;right:0;top:5px;display:block;width:7px;height:7px;font-size:1px;background:url("../openolat/images/tag_x.gif")}div.holder a.bit-box a.closebutton:hover{background-position:7px}div.holder a.bit-box a.closebutton:active{outline:none}div.holder a.bit-box-focus a.closebutton,div.holder a.bit-box-focus a.closebutton:hover{background-position:bottom}ol.textbox-outer{margin:0;padding:0}.textboxlist-auto{position:absolute;width:300px;overflow:visible;display:none;background:#eee;z-index:2}.textboxlist-auto .default{padding:5px 7px;border:1px solid #ccc;border-width:0 1px 1px}.textboxlist-auto ul{display:none;margin:0;padding:0;overflow:auto}.textboxlist-auto ul li{padding:5px 12px;z-index:1000;cursor:pointer;margin:0;list-style-type:none;border:1px solid #ccc;border-width:0 1px 1px}.textboxlist-auto ul li.loading-indicator{padding-left:30px;background-position:5px center;cursor:defat;font-size:100.01% !important;line-height:1.5em}.textboxlist-auto ul li.more-indicator{cursor:defat;font-style:italic}.textboxlist-auto ul li em{font-weight:bold;font-style:normal;background:#ccc}.textboxlist-auto ul li.auto-focus{background:#4173CC;color:#fff}.textboxlist-auto ul li.auto-focus em{background:none}input.inputMessage{color:#AAA;font-size:11px}.b_wizard .textbox-outer{background:url(../openolat/images/tag-label-yellow.png) top left no-repeat}.b_wizard .textbox-outer li{margin-left:18px}.b_wizard .textboxlist-auto ul li{margin-left:0}.b_wizard div.holder a.bit-input input{background:#f8f8f8;padding:0.4em}.clgen_font_arial{font-family:arial,helvetica}.clgen_font_arial_black{font-family:arial black,avant garde}.clgen_font_comic{font-family:comic sans ms,sans-serif}.clgen_font_courier{font-family:courier new,courier}.clgen_font_georgia{font-family:georgia,serif}.clgen_font_impact{font-family:impact,chicago}.clgen_font_lucida{font-family:lucida console,monaco,monospace}.clgen_font_palatino{font-family:palatino linotype,book antiqua,palatino,serif}.clgen_font_times{font-family:times new roman,times}.clgen_font_verdana{font-family:verdana,geneva,sans-serif}.clgen_font_xxlarge{font-size:130%}.clgen_font_xxsmall{font-size:70%}option.Black{background-color:Black}option.Navy{background-color:Navy}option.DarkBlue{background-color:DarkBlue}option.MediumBlue{background-color:MediumBlue}option.Blue{background-color:Blue}option.DarkGreen{background-color:DarkGreen}option.Green{background-color:Green}option.Teal{background-color:Teal}option.DarkCyan{background-color:DarkCyan}option.DeepSkyBlue{background-color:DeepSkyBlue}option.DarkTurquoise{background-color:DarkTurquoise}option.MediumSpringGreen{background-color:MediumSpringGreen}option.Lime{background-color:Lime}option.SpringGreen{background-color:SpringGreen}option.Aqua{background-color:Aqua}option.Cyan{background-color:Cyan}option.MidnightBlue{background-color:MidnightBlue}option.DodgerBlue{background-color:DodgerBlue}option.LightSeaGreen{background-color:LightSeaGreen}option.ForestGreen{background-color:ForestGreen}option.SeaGreen{background-color:SeaGreen}option.DarkSlateGray{background-color:DarkSlateGray}option.DarkSlateGrey{background-color:DarkSlateGrey}option.LimeGreen{background-color:LimeGreen}option.MediumSeaGreen{background-color:MediumSeaGreen}option.Turquoise{background-color:Turquoise}option.RoyalBlue{background-color:RoyalBlue}option.SteelBlue{background-color:SteelBlue}option.DarkSlateBlue{background-color:DarkSlateBlue}option.MediumTurquoise{background-color:MediumTurquoise}option.Indigo{background-color:Indigo}option.DarkOliveGreen{background-color:DarkOliveGreen}option.CadetBlue{background-color:CadetBlue}option.CornflowerBlue{background-color:CornflowerBlue}option.MediumAquaMarine{background-color:MediumAquaMarine}option.DimGray{background-color:DimGray}option.DimGrey{background-color:DimGrey}option.SlateBlue{background-color:SlateBlue}option.OliveDrab{background-color:OliveDrab}option.SlateGray{background-color:SlateGray}option.SlateGrey{background-color:SlateGrey}option.LightSlateGray{background-color:LightSlateGray}option.LightSlateGrey{background-color:LightSlateGrey}option.MediumSlateBlue{background-color:MediumSlateBlue}option.LawnGreen{background-color:LawnGreen}option.Chartreuse{background-color:Chartreuse}option.Aquamarine{background-color:Aquamarine}option.Maroon{background-color:Maroon}option.Purple{background-color:Purple}option.Olive{background-color:Olive}option.Gray{background-color:Gray}option.Grey{background-color:Grey}option.SkyBlue{background-color:SkyBlue}option.LightSkyBlue{background-color:LightSkyBlue}option.BlueViolet{background-color:BlueViolet}option.DarkRed{background-color:DarkRed}option.DarkMagenta{background-color:DarkMagenta}option.SaddleBrown{background-color:SaddleBrown}option.DarkSeaGreen{background-color:DarkSeaGreen}option.LightGreen{background-color:LightGreen}option.MediumPurple{background-color:MediumPurple}option.DarkViolet{background-color:DarkViolet}option.PaleGreen{background-color:PaleGreen}option.DarkOrchid{background-color:DarkOrchid}option.YellowGreen{background-color:YellowGreen}option.Sienna{background-color:Sienna}option.Brown{background-color:Brown}option.DarkGray{background-color:DarkGray}option.DarkGrey{background-color:DarkGrey}option.LightBlue{background-color:LightBlue}option.GreenYellow{background-color:GreenYellow}option.PaleTurquoise{background-color:PaleTurquoise}option.LightSteelBlue{background-color:LightSteelBlue}option.PowderBlue{background-color:PowderBlue}option.FireBrick{background-color:FireBrick}option.DarkGoldenRod{background-color:DarkGoldenRod}option.MediumOrchid{background-color:MediumOrchid}option.RosyBrown{background-color:RosyBrown}option.DarkKhaki{background-color:DarkKhaki}option.Silver{background-color:Silver}option.MediumVioletRed{background-color:MediumVioletRed}option.IndianRed{background-color:IndianRed}option.Peru{background-color:Peru}option.Chocolate{background-color:Chocolate}option.Tan{background-color:Tan}option.LightGray{background-color:LightGray}option.LightGrey{background-color:LightGrey}option.PaleVioletRed{background-color:PaleVioletRed}option.Thistle{background-color:Thistle}option.Orchid{background-color:Orchid}option.GoldenRod{background-color:GoldenRod}option.Crimson{background-color:Crimson}option.Gainsboro{background-color:Gainsboro}option.Plum{background-color:Plum}option.BurlyWood{background-color:BurlyWood}option.LightCyan{background-color:LightCyan}option.Lavender{background-color:Lavender}option.DarkSalmon{background-color:DarkSalmon}option.Violet{background-color:Violet}option.PaleGoldenRod{background-color:PaleGoldenRod}option.LightCoral{background-color:LightCoral}option.Khaki{background-color:Khaki}option.AliceBlue{background-color:AliceBlue}option.HoneyDew{background-color:HoneyDew}option.Azure{background-color:Azure}option.SandyBrown{background-color:SandyBrown}option.Wheat{background-color:Wheat}option.Beige{background-color:Beige}option.WhiteSmoke{background-color:WhiteSmoke}option.MintCream{background-color:MintCream}option.GhostWhite{background-color:GhostWhite}option.Salmon{background-color:Salmon}option.AntiqueWhite{background-color:AntiqueWhite}option.Linen{background-color:Linen}option.LightGoldenRodYellow{background-color:LightGoldenRodYellow}option.OldLace{background-color:OldLace}option.Red{background-color:Red}option.Fuchsia{background-color:Fuchsia}option.Magenta{background-color:Magenta}option.DeepPink{background-color:DeepPink}option.OrangeRed{background-color:OrangeRed}option.Tomato{background-color:Tomato}option.HotPink{background-color:HotPink}option.Coral{background-color:Coral}option.Darkorange{background-color:Darkorange}option.LightSalmon{background-color:LightSalmon}option.Orange{background-color:Orange}option.LightPink{background-color:LightPink}option.Pink{background-color:Pink}option.Gold{background-color:Gold}option.PeachPuff{background-color:PeachPuff}option.NavajoWhite{background-color:NavajoWhite}option.Moccasin{background-color:Moccasin}option.Bisque{background-color:Bisque}option.MistyRose{background-color:MistyRose}option.BlanchedAlmond{background-color:BlanchedAlmond}option.PapayaWhip{background-color:PapayaWhip}option.LavenderBlush{background-color:LavenderBlush}option.SeaShell{background-color:SeaShell}option.Cornsilk{background-color:Cornsilk}option.LemonChiffon{background-color:LemonChiffon}option.FloralWhite{background-color:FloralWhite}option.Snow{background-color:Snow}option.Yellow{background-color:Yellow}option.LightYellow{background-color:LightYellow}option.Ivory{background-color:Ivory}option.White{background-color:White}@media all{.fc-button-print span{background:url(../openolat/images/printer.png) no-repeat right 50%;padding:0 20px 0 0}#o_cal_manage_calendars{float:right;margin-right:10px;margin-top:5px}#o_cal_config_below_cal_container{padding:6px;position:relative;overflow:hidden}#o_cal_config_below_cal_container div.b_contexthelp_wrapper a.b_contexthelp{top:0;right:0}.o_cal_embedded_course_container{padding-top:6px}.o_cal_embedded_course_container #b_content_popup{position:absolute;top:0;right:0}.o_course_run_peekview .o_cal_peekview ul li{list-style:none}#o_cal_wv_actions{vertical-align:middle;line-height:16px;padding-right:30px;float:right;display:inline;position:relative}#o_cal_wv_nav{text-align:left;vertical-align:middle;line-height:16px;float:left;display:inline;position:absolute;top:5px;left:5px}.o_cal_wv_prev,.o_cal_wv_next{margin-left:0 !important;margin-right:0 !important}.o_cal_wv_prev span{width:20px;height:20px;float:left;background:transparent url(arrow_left_big.png) no-repeat center center}.o_cal_wv_next span{width:20px;height:20px;float:left;background:transparent url(arrow_right_big.png) no-repeat center center}#o_cal_wv{padding:0 0px 5px 0px;position:relative;width:auto}#o_cal_wv_header_wrapper{padding-top:10px;position:relative;clear:both}#o_cal_wv_header{border:1px solid #888;position:relative;height:20px;margin-bottom:2px;background:#FFF}.o_cal_wv_grid_wrapper{position:relative;border:1px solid #888;background:#FFF;padding-bottom:1px}.o_cal_wv_grid{position:relative;width:auto;height:600px;overflow:scroll !important;overflow-x:hidden !important}#o_cal_wv_daylong{border:1px solid #888;position:relative;width:auto;overflow:visible;margin-bottom:2px;background:#FFF}.o_cal_wv_dlday{border-left:1px solid #888;position:absolute;width:13%;background:#FFF}.o_cal_wv_time{position:absolute;width:9%}.o_cal_wv_legend_hours{margin:0;padding:0;height:20px;text-align:center;color:#888}.o_cal_wv_legend_hour{border-bottom:1px solid #DDD;margin:0;padding:0;height:39px}.o_cal_wv_legend_hour div{padding:3px 3px 0 3px;text-align:center;color:#444;overflow:hidden;height:16px}.o_cal_wv_day{border-left:1px solid #888;position:absolute;width:13%;border-collapse:collapse;background:#FFF}.o_cal_wv_legend_day{margin:0;padding:0;height:20px}.o_cal_wv_legend_day div{padding:3px 3px 0px 3px;height:15px;overflow:hidden;text-align:center;color:#888}.o_cal_wv_hour{border-bottom:1px dotted #DDD;margin:0;padding:0;height:19px}.o_cal_wv_half_hour{border-bottom:1px solid #DDD;margin:0;padding:0;height:19px}.o_cal_wv_half_hour:hover{background:#DCDDE0}.o_cal_wv_hour:hover{background:#DCDDE0}.o_cal_wv_row0{left:0}.o_cal_wv_row1{left:9%}.o_cal_wv_row2{left:22%}.o_cal_wv_row3{left:35%}.o_cal_wv_row4{left:48%}.o_cal_wv_row5{left:61%}.o_cal_wv_row6{left:74%}.o_cal_wv_row7{left:87%}.o_cal_wv_holiday{background:#eee}.o_cal_wv_today{background:#fff5cc}.o_cal_wv_lastday{border-right:1px solid #888}.o_cal_wv_lasthour{border-bottom:0}.o_cal_wv_event_wrapper{padding:0;margin:0;padding-bottom:2px;position:absolute;overflow:hidden;z-index:10}.o_cal_wv_event{border:1px solid;padding:0;margin:0;position:relative;overflow:hidden;z-index:10}.o_cal_wv_event_overflow{position:absolute;right:2px;z-index:20}.o_cal_wv_event:hover{border-color:#000;z-index:11}.o_cal_wv_event_header{height:1em;overflow:hidden;padding:0px 2px 3px 2px;font-weight:bold;vertical-align:bottom}.o_cal_wv_event_content{padding:1px 2px 1px 2px}.o_cal_toptoolbar{margin-bottom:0.8em;min-width:707px;padding-bottom:8px;border-bottom:1px solid #eee}.o_cal_toptoolbar .o_cal_pagination{float:left;height:2em;width:235px}.o_cal_toptoolbar .o_cal_gotodate{float:left;height:2em;width:350px}.o_cal_gotodate div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:0}.o_cal_toptoolbar .o_cal_search{float:left;height:2em}.o_cal_wv_devent_wrapper{padding:0;margin:0;position:relative;top:-1px;left:-1px;width:auto;height:20px}.o_cal_wv_devent{border:1px solid;padding:0;margin:0;width:100%;height:19px;overflow:hidden;z-index:11}.o_cal_wv_devent:hover{border-color:#000;z-index:12}.o_cal_wv_devent_content{padding:1px 2px 1px 2px}.o_cal_config{margin:2em 0;position:relative;padding:5px}.o_cal_manage_config{position:relative;padding:5px}.o_cal_manage_config fieldset{position:relative;display:inline}.o_cal_config fieldset{position:relative;display:inline}.o_cal_config_scrollwrapper{width:400px;height:100px;overflow:scroll;overflow-x:hidden;border:1px solid #BFBFBF;position:relative}.o_cal_config_row{clear:both;padding:2px 15px 0 0}.o_cal_config_enabled{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/check_on.png) no-repeat;float:left;display:inline}a.o_cal_config_enabled:hover{background:url(../openolat/images/cal/check_on_over.png) no-repeat}.o_cal_config_disabled{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/check_off.png) no-repeat;float:left;display:inline}.o_cal_config_calendar{border:1px solid;padding:0;margin:0;padding:1px 6px 1px 4px;position:relative;height:14px;width:200px;overflow:hidden;float:left;display:inline}.o_cal_config_chosecolor{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/color.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_subscribeical{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_remove_subscribeical{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export_remove.png) no-repeat 0 0;float:left;display:inline}a.o_cal_config_unsubscribe{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_remove.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_regenerate_link{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export_regen.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_remove_cal{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/delete.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_addevent{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--plus.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_importevent{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--arrow.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_readonly{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--plus.png) no-repeat 0 0;opacity:0.6;float:left;display:inline}#o_cal_colorchooser{background:#DCDDE0;border:1px solid #999999;float:left;display:inline;padding:3px;position:relative}#o_cal_colorchooser div{position:relative;border:1px solid #FFF;margin:5px;float:left;display:inline}#o_cal_colorchooser div:hover{border:1px solid #000}#o_cal_colorchooser a{position:relative;width:20px;height:20px;float:left;display:inline}.o_cal_colorchooser_selected{background:url(../openolat/images/cal/selectedcolor.gif) no-repeat 2px 2px}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5d5d5d !important}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:white !important}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:white !important}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5d5d5d !important}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:white !important}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:white !important}div.o_cal_gotodate div.b_form_element{margin-left:0%;margin-top:-4px}div.o_cal_search_subscribe{float:right;margin-right:20px}div.o_cal_week_year_label{font-weight:bold;margin-top:8px}.o_cal_config_regenerate_link{position:relative;float:left;display:inline}.o_cal_wv_event_tooltip{display:none}.o_cal_tooltip_buttons{text-align:right}.o_cal_wv .x-tip-body div{padding:0.2em 0}div.o_cal_wv_event_tooltip_content{padding-top:1em}div.o_cal_tooltip_buttons{padding-top:1em}body.o_cal_print{background:white}body.o_cal_print .o_cal_toptoolbar.b_clearfix{display:none}body.o_cal_print .o_cal_wv{display:none}body.o_cal_print .o_cal_wv_print{display:block}body.o_cal_print #o_cal_config .b_float_right{display:none}body.o_cal_print #o_cal_config_below_cal_container .b_subcolumns{display:none}body.o_cal_print .o_cal_wv_print ul{list-style-type:none;margin:0 0 0 0;padding:0 0 0 0}body.o_cal_print .o_cal_event{clear:left;margin:0.2em 0}body.o_cal_print .o_cal_wv_list *{float:left;width:100%}body.o_cal_print .o_cal_event span{padding:0 0.4em;display:block}body.o_cal_print .o_cal_date{font-weight:bold}body.o_cal_print .o_cal_time{width:25%}body.o_cal_print .o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick;background:white}body.o_cal_print .o_cal_subject p{padding:0 0.4em;margin:0;color:black}body.o_cal_print .o_cal_location{float:right;width:34%}body.o_cal_print .o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}body.o_cal_print .o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block;color:black;background:white}}.o_glossary{margin:0 100px 0 100px}.o_glossary_entry{margin:0px 0 0px 0;padding:10px;border-top:1px solid #DCDDE0;border-left:1px solid #DCDDE0;border-right:1px solid #DCDDE0}.o_glossary_commands{float:right}.o_glossary_addcommand{float:right}.o_glossary dt{font-weight:bold}dt span.o_glossary_author{font-weight:normal}dt span.o_glossary_modifier{font-weight:normal;color:#98221F}dt span.o_glossary_modifier a,dt span.o_glossary_modifier a:hover{color:#98221F}dt o_glossary_synonym{font-size:80%;font-variant:small-caps;font-style:italic}dd{padding-left:20px;clear:both}.o_glossary_register{margin-bottom:10px}.o_glossary_register_active{font-weight:bold;background-color:lightgrey;font-size:120%}.o_tm_glossary{border-bottom:1px dotted #666699}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}@media print{.o_cal_toptoolbar.b_clearfix{display:none}.o_cal_wv{display:none}.o_cal_wv_print{display:block}#o_cal_config .b_float_right{display:none}#o_cal_config_below_cal_container .b_subcolumns{display:none}.o_cal_wv_print ul{list-style-type:none;margin-left:0}.o_cal_event{clear:left;margin:0.2em 0}.o_cal_wv_list *{float:left;width:100%}.o_cal_event span{padding:0 0.4em;display:block}.o_cal_date{font-weight:bold}.o_cal_time{width:25%}.o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick}.o_cal_subject p{padding:0 0.4em;margin:0}.o_cal_location{float:right;width:34%}.o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}.o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block}#o_cal_config_below_cal_container{border:none;background:none;overflow:visible}#o_cal_config_below_cal_container *{background:none;color:black}#o_cal_config_below_cal_container fieldset{border:none}#o_cal_config_below_cal_container fieldset legend{font-weight:bold}}#o_feed .o_box{border:1px solid #eee;padding:0.8em;margin-bottom:2em;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}#o_feed div.o_feed_edit{float:right;position:relative;top:0.2em;margin-right:0}#o_feed #o_link_container{margin-bottom:0.8em}#o_feed #o_link_container div.o_home{text-align:center}#o_feed #o_link_container div.o_older_items{float:left;display:inline}#o_feed #o_link_container div.o_newer_items{float:right;display:inline}#o_feed .b_year_navigation{text-align:center}#o_feed .b_year_navigation .b_months{border-top:1px solid #eee;padding-top:1em;margin-top:0.5em;clear:both;list-style:none}#o_feed .b_year_navigation span.b_disabled{background-image:none}div.o_feed_peekview{margin:1em 0 1em 0}div.o_feed_peekview h5{font-size:1em;position:relative;left:-20px}div.o_feed_peekview div.o_feed_peekview_item{padding-left:20px}#o_feed div.b_datecomp{top:2px;float:left;display:inline}#o_feed p.o_podcast_date{font-size:80%;color:#aaaaaa}#o_feed div.o_podcast_info img.icon{float:left;margin:0 1.5em 1.5em 0;max-width:120px;max-height:120px}#o_feed div.o_podcast_no_image{float:left;margin:0 1em 1em 0;width:100px;height:100px;color:#dfdfdf;background:white;text-align:center;padding:20px;border:2px dashed #dfdfdf;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}#o_feed div.o_podcast_no_image span{vertical-align:middle}#o_feed div.o_podcast_subscription{clear:both}#o_feed div.o_podcast_subscription a.o_podcast_rss_link{display:block;float:right;width:16px;height:16px;background:url(../openolat/images/feed.png) no-repeat}#o_feed div.o_podcast_episode{padding:10px;margin-top:20px;border:1px solid #dfdfdf;background-color:#fdfdfd;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}#o_feed div.o_podcast_episode div.b_ratings_and_comments{margin:2em 0 0 0;padding-bottom:0;border-bottom:0}#o_feed div.o_podcast_episode div.o_podcast_audio{margin-bottom:3px}#o_feed div.o_podcast_episode div.o_podcast_audio embed{width:200px;height:24px}#o_feed div.o_podcast_episode div.o_podcast_video{margin-bottom:3px}#o_feed div.o_podcast_episode div.o_podcast_video embed{width:200px;height:157px}#o_feed .back_link.o_podcast{margin-bottom:1.5em}div.o_podcast_peekview div.o_feed_peekview_item a.o_feed_item_icon{background-image:url(../openolat/images/control/speaker-volume.png)}#o_feed .o_blog_posts .o_post,#o_feed .o_blog_post .o_post{margin-bottom:1em;padding:10px;border:1px solid #dfdfdf;background-color:#fdfdfd;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}.o_post-readmorelinks{margin-top:1em;list-style:none}.o_post-readmorelinks,.o_post-readmorelinks li{margin-left:0;padding-left:0}#o_feed .o_blog_posts .o_draft{padding:0.8em;background-color:#fcf7ac;border:1px solid #fddc55}#o_feed .o_blog_posts .o_scheduled{padding:0.8em;background-color:#d9ffd0;border:1px solid #beffae}#o_feed div.o_blog_info div.o_blog_subscription{min-height:16px;padding-left:20px;background:url(../openolat/images/feed.png) no-repeat}#o_feed .o_blog_info .o_author,#o_feed .o_blog_posts .o_item_info{color:#7D7D7D;font-size:90%;margin:0}#o_feed .o_blog_posts p.o_item_info span.o_item_info_mod{color:#98221F}#o_feed .o_blog_post .back_link{margin-bottom:1.5em}div.o_blog_peekview div.o_feed_peekview_item a.o_feed_item_icon{background-image:url(../openolat/images/comment.png)}#o_instantmessaging_status_changer{padding:1em 0 0 0;margin:0}#o_instantmessaging_status_changer a.b_contexthelp{margin-top:5px;padding-right:5px}#o_instantmessaging_status_changer ul{list-style-type:none;padding:0;margin:0}#o_instantmessaging_status_changer li{padding:0;margin:0}#o_instantmessaging_status_changer li a{padding:0.1em 0 0.1em 20px;background-repeat:no-repeat;background-position:0 50%}.o_instantmessaging_chat_history{border:1px solid #ACAAAA;height:170px;font-size:90%;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_instantmessaging_chat_history div.o_instantmessaging_message_group{border-top:1px solid #eee;padding:3px 3px 3px 40px;min-height:40px;position:relative;background:#fff}.o_instantmessaging_chat_history div.o_instantmessaging_message_group.o_odd{background:#F4F4F4}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_avatar{position:absolute;top:3px;left:3px;border:1px solid #bbb;width:30px;height:30px;background-color:#fff;background-repeat:no-repeat;background-position:50% 50%}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_from{text-align:left;color:#999;text-decoration:none;font-weight:500}.o_instantmessaging_chat_history div.o_instantmessaging_message_group a:hover{color:#000;text-decoration:none}.o_instantmessaging_chat_history div.o_instantmessaging_message_group a:hover div.o_instantmessaging_from{color:#000}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_body{padding:3px 0 3px 0}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_body span.o_instantmessaging_date{text-align:right;color:#999;font-size:90%;font-weight:200}.o_instantmessaging_chat_form input{width:99%}.o_instantmessaging_chat_form div.b_button_group{margin-top:1em}#o_instantmessages_buddieslist{font-size:90%;padding:1em 0 0 0;margin:0}#o_instantmessages_buddieslist a.b_contexthelp{margin-top:5px;padding-right:5px}#o_instantmessages_buddieslist ul{list-style-type:none;padding:0;margin:0}#o_instantmessages_buddieslist li{margin:0;padding:0}#o_instantmessages_buddieslist li.o_instantmessaging_group{padding-bottom:0.5em}#o_instantmessages_buddieslist li.o_instantmessaging_group div.o_instantmessaging_groupname{padding:0 0 0 20px;background:url(../openolat/images/users.png) no-repeat 0 50%}#o_instantmessages_buddieslist a.o_instantmessaging_vip span{font-weight:bold}#o_instantmessages_buddieslist li a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler{border-bottom:1px #eee solid;margin:0 0 0.5em 0;padding:0 0 0.5em 0}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler span{white-space:nowrap}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%;margin-right:1em}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_showgroupswitch{background-image:url(../openolat/images/users_conf.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_hidegroupswitch{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6;background-image:url(../openolat/images/users_conf.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_showofflineswitch{background-image:url(../openolat/images/im/status-offline.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_hideofflineswitch{background-image:url(../openolat/images/im/status.png)}#o_instantmessages_buddy{margin:1em 0 2em 0}#o_instantmessages_buddy a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%}div.o_groupchat_roster{margin:0}div.o_groupchat_roster ul{list-style-type:none;margin:0;padding:0}div.o_groupchat_roster ul li{font-size:90%;margin:0;padding:0 0 0 20px;background:url(../openolat/images/user.png) no-repeat 0 50%}div.o_groupchat_roster ul li.o_instantmessaging_anonymous{background-image:url(../openolat/images/user_silhouette.png)}div.o_groupchat_roster ul li.o_instantmessaging_vip{font-weight:bold}div.o_groupchat_roster ul li.o_instantmessaging_vip.o_instantmessaging_anonymous{font-weight:normal}.o_instantmessaging_available_icon{background-image:url(../openolat/images/im/status.png)}.o_instantmessaging_dnd_icon{background-image:url(../openolat/images/im/status-away.png)}.o_instantmessaging_unavailable_icon{background-image:url(../openolat/images/im/status-offline.png)}.o_instantmessaging_new_msg_icon{background-image:url(../openolat/images/im/new_message.png)}.o_instantmessaging_chat_icon{background-image:url(../openolat/images/im/balloon-white-left.png)}.o_instantmessaging_refresh_icon{background-image:url(../openolat/images/qti/tries.png)}div.o_home_portaleditlink{position:absolute;top:1em;right:0.6em}.o_home_main{text-align:center}div.o_home_rsslink{clear:both;float:right;display:inline;margin:10px 0}div.o_home_rsslink a{float:right;display:inline}div.o_home_rsslink a.o_home_rsslink{background:url(../openolat/images/feed.png) no-repeat;width:16px;display:block;height:16px;line-height:0}.b_portlet{position:relative;margin:10px;min-height:13em}.b_portlet .b_portlet_showall{font-size:95%;position:absolute;right:0;top:0}.b_portlet .b_portlet_header{border-bottom:1px solid #94bed3;white-space:nowrap;overflow-y:hidden !important;overflow-x:hidden !important}.b_portlet .b_portlet_content{position:relative;padding:1em 0 0 0}.b_portlet div.b_portlet_table table{background:none;border:none}.b_portlet div.b_portlet_table table th,.b_portlet div.b_portlet_table table td{padding:0}.b_portlet div.b_portlet_table table tbody tr{background:transparent}.b_portlet div.b_portlet_table table tbody tr.b_table_odd td{background:transparent}.b_portlet div.b_portlet_table table tbody tr td{border:0 !important}.b_portlet div.b_portlet_table table tbody tr:hover,.b_portlet div.b_portlet_table table tbody tr:hover td,.b_portlet div.b_portlet_table table tbody tr:focus,.b_portlet div.b_portlet_table table tbody tr:focus td{background:transparent}.b_portlet div.b_portlet_table div.b_table_empty{background:none;padding:0;margin:0}div.o_portlet_repository_student td.b_first_child{width:24px}div.o_portlet_repository_teacher td.b_first_child{width:24px}.b_portlet .b_portlet_header{background-repeat:no-repeat;background-position:0% 50%;padding-left:27px;padding-top:5px;padding-bottom:5px}div.o_portlet_calendar div.b_portlet_header{background-image:url(../openolat/images/calendar_empty.png);padding-left:2px;padding-top:8px}div.o_portlet_calendar.o_day_1 div.b_portlet_header strong:before{content:"1";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_2 div.b_portlet_header strong:before{content:"2";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_3 div.b_portlet_header strong:before{content:"3";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_4 div.b_portlet_header strong:before{content:"4";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_5 div.b_portlet_header strong:before{content:"5";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_6 div.b_portlet_header strong:before{content:"6";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_7 div.b_portlet_header strong:before{content:"7";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_8 div.b_portlet_header strong:before{content:"8";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_9 div.b_portlet_header strong:before{content:"9";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_10 div.b_portlet_header strong:before{content:"10";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_11 div.b_portlet_header strong:before{content:"11";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_12 div.b_portlet_header strong:before{content:"12";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_13 div.b_portlet_header strong:before{content:"13";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_14 div.b_portlet_header strong:before{content:"14";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_15 div.b_portlet_header strong:before{content:"15";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_16 div.b_portlet_header strong:before{content:"16";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_17 div.b_portlet_header strong:before{content:"17";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_18 div.b_portlet_header strong:before{content:"18";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_19 div.b_portlet_header strong:before{content:"19";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_20 div.b_portlet_header strong:before{content:"20";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_21 div.b_portlet_header strong:before{content:"21";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_22 div.b_portlet_header strong:before{content:"22";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_23 div.b_portlet_header strong:before{content:"23";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_24 div.b_portlet_header strong:before{content:"24";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_25 div.b_portlet_header strong:before{content:"25";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_26 div.b_portlet_header strong:before{content:"26";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_27 div.b_portlet_header strong:before{content:"27";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_28 div.b_portlet_header strong:before{content:"28";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_29 div.b_portlet_header strong:before{content:"29";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_30 div.b_portlet_header strong:before{content:"30";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_31 div.b_portlet_header strong:before{content:"31";font-size:smaller;padding-right:16px}div.o_portlet_infomsg div.b_portlet_header{background-image:url(../openolat/images/comment.png)}div.o_portlet_quickstart div.b_portlet_header{background-image:url(../openolat/images/mouse.png)}div.o_portlet_bookmark div.b_portlet_header{background-image:url(../openolat/images/book-open-bookmark.png)}div.o_portlet_groups div.b_portlet_header{background-image:url(../openolat/images/users.png)}div.o_portlet_notes div.b_portlet_header{background-image:url(../openolat/images/sticky-note--pencil.png)}div.o_portlet_noti div.b_portlet_header{background-image:url(../openolat/images/mail.png)}div.o_portlet_eff div.b_portlet_header{background-image:url(../openolat/images/script-stamp.png)}div.o_portlet_repository_student div.b_portlet_header{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}div.o_portlet_repository_teacher div.b_portlet_header{background-image:url(../openolat/images/le_resources/book-open-text-image-red.png)}div.b_portlet_iframe div.b_portlet_header{background-image:url(../openolat/images/layer.png)}div.b_portlet_sysinfo div.b_portlet_header{background-image:url(../openolat/images/exclamation.png)}div.b_portlet_dyk div.b_portlet_header{background-image:url(../openolat/images/light-bulb.png)}div.o_portlet_infomessages div.b_portlet_header{background-image:url(../openolat/images/information-button.png)}div.b_portlet.o_pt_w_if div.b_portlet_header{background-image:url(../openolat/images/globe.png)}div.b_portlet.b_portlet_edit{background:#FFE793;border:1px solid #FF9E3E;padding:2px}div.b_portlet.b_portlet_edit .b_portlet_header{height:23px}div.b_portlet_toolbox{position:absolute;top:0;right:0;padding:2px;height:20px;overflow-y:hidden !important;overflow-x:hidden !important}div.b_portlet_toolbox a,div.b_portlet_toolbox span.b_disabled{background-repeat:no-repeat;background-position:1px 1px;float:right;width:18px;height:18px;overflow:hidden}div.b_portlet_toolbox div{display:inline}div.b_portlet_toolbox > a,div.b_portlet_toolbox > span{border:1px solid #888;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;background:#eee;background-repeat:no-repeat;background-position:center}div.b_portlet_toolbox a.b_portlet_edit_left{background-image:url(../openolat/images/arrow_left_big.png)}div.b_portlet_toolbox a.b_portlet_edit_right{background-image:url(../openolat/images/arrow_right_big.png)}div.b_portlet_toolbox a.b_portlet_edit_down{background-image:url(../openolat/images/arrow_down_big.png)}div.b_portlet_toolbox a.b_portlet_edit_up{background-image:url(../openolat/images/arrow_up_big.png)}div.b_portlet_toolbox a.b_portlet_edit_delete{background-image:url(../openolat/images/bin-metal-full.png)}div.b_portlet_toolbox a.b_portlet_edit_sort_auto{background-image:url(../openolat/images/table_sort.png)}div.b_portlet_toolbox a.b_portlet_edit_sort_manual{background-image:url(../openolat/images/table_gear.png)}div.b_portlet_toolbox span.b_portlet_edit_left_disabled{background-image:url(../openolat/images/arrow_left_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_right_disabled{background-image:url(../openolat/images/arrow_right_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_down_disabled{background-image:url(../openolat/images/arrow_down_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_up_disabled{background-image:url(../openolat/images/arrow_up_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_sort_auto_disabled{background-image:url(../openolat/images/table_sort.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_sort_manual_disabled{background-image:url(../openolat/images/table_gear.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}.b_toolboxes{padding:6px}.b_toolboxes .b_toolbox{margin-bottom:20px}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper{border-bottom:1px solid #94bed3;background:inherit}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head{vertical-align:top}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head strong{font-weight:bold}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head_icon{background:transparent no-repeat 3px 50%;padding-left:19px;line-height:1.2em;color:black}.b_toolboxes .b_toolbox .b_toolbox_content ul{padding:0 0 0 6px;margin:0;list-style:none}.b_toolboxes .b_toolbox .b_toolbox_content li{padding:0;margin:0;line-height:1.7em;white-space:nowrap}.b_toolboxes .b_toolbox .b_toolbox_content li a{color:#667;background-repeat:no-repeat;background-position:0 50%;padding-left:20px;display:block}.b_toolboxes .b_toolbox .b_toolbox_content li a:focus,.b_toolboxes .b_toolbox .b_toolbox_content li a:hover,.b_toolboxes .b_toolbox .b_toolbox_content li a:active{color:#504D4E;text-decoration:underline}.b_toolboxes .b_toolbox .b_toolbox_content li div.b_note,.b_toolboxes .b_toolbox .b_toolbox_content li div.b_important,.b_toolboxes .b_toolbox .b_toolbox_content li div.b_warning{padding:0 0 0 20px;margin:0;border-bottom:0}.b_toolboxes .b_toolbox .b_toolbox_content li a.b_toolbox_toggle{padding-left:0;display:inline}.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_toggle_wrapper{float:right;font-size:90%}.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_link.b_disabled,.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_disabled{color:#999;background:no-repeat 0 50% url(../openolat/images/bullet_white.png);padding-left:18px;display:block}div.b_portlet.o_pt_w_if div.b_portlet_header{background-image:url(../openolat/images/globe.png)}div.b_portlet p{margin-bottom:0}div.b_portlet_dyk_q{font-weight:bold}div.b_portlet_dyk_a{padding-top:5px}div.b_portlet_dyk_next{text-align:right}div.f_library_catalog div.b_tree ul{white-space:normal}div.f_library_catalog div.b_tree ul.b_tree_l1 li a.b_tree_icon{background-image:none !important}div.f_library_catalog div.f_metadata{background-color:#fcfcfc;margin-left:20px;padding:4px}div.f_library_catalog h4{padding-left:25px;background-repeat:no-repeat;background-position:center left}div.f_library_catalog div.f_folder_info div.f_metadata{margin-bottom:1.5em}div.f_library_catalog div.b_noti{right:90px}div.f_library_catalog div.f_thumbnails_switch{border:1px solid #E9EAEF;display:inline;position:absolute;top:0px;right:0px;float:right;padding:3px 3px 3px 23px}div.f_library_catalog div.f_thumbnails_on{background:url(../openolat/images/docs/document_preview.png) no-repeat 3px 50%}div.f_library_catalog div.f_thumbnails_off{background:url(../openolat/images/docs/document_preview.png) no-repeat 3px 50%;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=70);-moz-opacity:0.7;-khtml-opacity:0.7;opacity:0.7}div.f_library_catalog th,div.f_library_catalog td{text-align:left;font-size:0.9em;color:#999;margin:0;padding:0;border:0}div.f_library_catalog th{font-weight:bold;width:14em;vertical-align:top}div.f_library_catalog h3.b_filetype_folder{margin-top:20px}div.f_library_catalog div.f_item{margin-bottom:1em;padding:0.5em}div.f_library_catalog div.f_item div.f_item_thumbnail{width:200px;height:200px;float:left;margin-right:20px}div.f_library_catalog div.f_item div.f_item_links a{background-repeat:no-repeat}div.f_library_catalog div.f_item div.f_item_links a.b_filetype_file{display:block;width:70%;float:left;padding:2px 10px 2px 20px;background-repeat:no-repeat;margin:0}div.f_library_catalog div.f_item div.f_item_links a.f_permalink{text-decoration:none;display:block;width:9px;height:9px;float:right;padding:4px 2px 2px 2px;margin:0;background-position:center center}div.f_library_catalog div.f_item div.f_item_links span a.f_sendmail{text-decoration:none;background:url(../openolat/images/mail.png) no-repeat top left;display:block;width:16px;height:16px;float:right;padding:0 0 0 2px;margin:0}div.f_library_catalog div.f_item div.f_metadata{position:relative;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;moz-box-shadow:0 1px 2px #d3d3d3;-ms-box-shadow:0 1px 2px #d3d3d3;-o-box-shadow:0 1px 2px #d3d3d3;-webkit-box-shadow:0 1px 2px #d3d3d3;box-shadow:0 1px 2px #d3d3d3}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail{float:left;border-right:1px solid #eeeeee;margin-right:1em}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail_inner{width:200px;height:200px}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail_unavailable{width:200px;height:200px;background-repeat:no-repeat;background-position:50% 50%}div.f_library_catalog div.f_item div.f_metadata div.f_metadata_text{padding-bottom:35px}div.f_library_catalog div.f_item div.f_metadata div.f_metadata_text_inner{width:100%}div.f_library_catalog div.f_item div.f_metadata div.f_item_ratings{position:absolute;bottom:3px;right:3px;width:300px}div.f_library_catalog div.f_item div.f_metadata div.f_item_ratings div.b_ratings_and_comments{margin:0;border:none}div.f_library_catalog div.f_item_selected div.f_metadata{background-color:#F0F0F0 !important;moz-box-shadow:1 1px 4px #d3d3d3;-ms-box-shadow:1 1px 4px #d3d3d3;-o-box-shadow:1 1px 4px #d3d3d3;-webkit-box-shadow:1 1px 4px #d3d3d3;box-shadow:1 1px 4px #d3d3d3}div.f_library_catalog h3.f_search_results{background-image:url(../openolat/images/magnifier-zoom.png) !important}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox input{line-height:1.3em;margin:0;width:10em}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox input:focus{border:1px solid #504D4E}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox button{width:16px;height:16px;background:url(../openolat/images/magnifier-zoom.png) no-repeat;border:0;vertical-align:top}div.f_library_catalog_wide div.f_metadata{background-color:#fcfcfc}div.f_library_catalog_wide th,div.f_library_catalog_wide td{text-align:left;font-size:0.9em;color:#999;margin:0;padding:0;border:0}div.f_library_catalog_wide th{font-weight:bold;width:14em;vertical-align:top}div.f_library_catalog_wide h3.b_filetype_folder{margin-top:20px}div.f_library_catalog_wide div.f_item{margin-bottom:30px}div.f_library_catalog_wide div.f_item div.f_thumbnail{width:280px;height:158px;float:left;border-right:1px solid #999}div.f_library_catalog_wide div.f_item div.f_item_links a{background-repeat:no-repeat}div.f_library_catalog_wide div.f_item div.f_item_links a.b_filetype_file{display:block;width:70%;float:left;padding:2px 10px 2px 20px;background-repeat:no-repeat;margin:0}div.f_library_catalog_wide div.f_item div.f_item_links a.f_permalink{text-decoration:none;display:block;width:9px;height:9px;float:right;padding:4px 2px 2px 2px;margin:0;background-position:center center}div.f_library_catalog_wide div.f_item div.f_item_links span a.f_sendmail{text-decoration:none;background:url(../openolat/images/mail.png) no-repeat top left;display:block;width:16px;height:16px;float:right;padding:0 0 0 2px;margin:0}div.f_library_catalog_wide div.f_item div.f_metadata{position:relative;border:1px solid #999;moz-box-shadow:0 1px 2px #999999;-ms-box-shadow:0 1px 2px #999999;-o-box-shadow:0 1px 2px #999999;-webkit-box-shadow:0 1px 2px #999999;box-shadow:0 1px 2px #999999}div.f_library_catalog_wide div.f_item div.f_metadata div.f_thumbnail_inner{width:280px;height:158px}div.f_library_catalog_wide div.f_item div.f_metadata div.f_thumbnail_unavailable{width:280px;height:158px;background-image:url(../openolat/images/no_preview.png);background-repeat:no-repeat;background-position:50% 50%}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_text{margin:10px 220px 10px 300px}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_text_inner{width:100%}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_additional_infos{position:absolute;top:0;right:0;height:158px;width:210px;border-left:1px solid #999}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_additional_infos_inner{margin:10px 10px 10px 10px}div.f_library_catalog_wide div.f_item_selected div.f_metadata{background-color:#F0F0F0 !important;moz-box-shadow:1 1px 4px #d3d3d3;-ms-box-shadow:1 1px 4px #d3d3d3;-o-box-shadow:1 1px 4px #d3d3d3;-webkit-box-shadow:1 1px 4px #d3d3d3;box-shadow:1 1px 4px #d3d3d3}div.f_library_catalog_wide h3.f_search_results{background-image:url(../openolat/images/magnifier-zoom.png) !important}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox input{line-height:1.3em;margin:0;width:10em}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox input:focus{border:1px solid #504D4E}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox button{width:16px;height:16px;background:url(../openolat/images/magnifier-zoom.png) no-repeat;border:0;vertical-align:top}div.f_library_catalog_condensed div.f_item_condensed{width:280px;height:280px;margin-right:30px;margin-bottom:30px;float:left;-webkit-box-shadow:0 1px 2px 0 #999;box-shadow:0 1px 2px 0 #999;border:1px solid #999;background-color:#fcfcfc}div.f_library_catalog_condensed div.f_item_condensed div.f_thumbnail{height:158px;width:280px}div.f_library_catalog_condensed div.f_item_condensed div.f_metadata_text{padding:12px 8px 12px 12px}div.f_library_catalog_condensed div.f_item_condensed div.o_eff_statement_progress{width:200px;margin:20px 0px 0px 20px}div.f_library_overview img{float:right;max-width:50%}div.f_library_overview p{padding-left:20px}div.f_library_overview div.f_library_big_icon{float:right;background-repeat:no-repeat;background-size:100%;width:45%;height:300px;margin:0 20px 0 20px}div.f_library_overview div.f_library_newest_files ul li{white-space:normal;padding-bottom:0.3em}div.f_library_overview div.f_library_newest_files ul li a{background-position:top left;min-height:16px}.f_library_big_icon{background-image:url(../openolat/images/library_image.png)}.f_library_icon{background-image:url(../openolat/images/library.png)}.f_thumbnail_unavailable{background-image:url(../openolat/images/no_preview.png)}#b_main.o_coaching div.o_eff_statement_progress{width:100%;height:15px;background-color:#eeeeee;border:1px solid #777777}#b_main.o_coaching div.o_eff_statement_progress div.o_eff_statement_solved{height:15px;background:#94bed3;background:-moz-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #94bed3), color-stop(100%, #025d8c));background:-webkit-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-o-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:-ms-linear-gradient(top, #94bed3 0%, #025d8c 100%);background:linear-gradient(top, #94bed3 0%, #025d8c 100%)}#b_main.o_coaching .o_eff_statement_rg div.o_eff_statement_progress{background:#f85032;background:-moz-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f85032), color-stop(50%, #f16f5c), color-stop(51%, #f6290c), color-stop(100%, #e73827));background:-webkit-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-ms-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%)}#b_main.o_coaching .o_eff_statement_rg div.o_eff_statement_progress div.o_eff_statement_solved{background:#9dd53a;background:-moz-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #9dd53a), color-stop(50%, #a1d54f), color-stop(51%, #80c217), color-stop(100%, #7cbc0a));background:-webkit-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-o-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-ms-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%)}#b_main.o_coaching div.o_eff_statement_details{margin:10px 0 10px 0}#b_main.o_coaching .b_toolbar_center span.b_disabled{display:none}div.o_eff_statement_progress{width:100%;height:15px;background-color:#eeeeee;border:1px solid #777777}div.o_eff_statement_progress div.o_eff_statement_solved{height:15px;background-color:#81afca}.o_eff_statement_rg div.o_eff_statement_progress{background-color:red}.o_eff_statement_rg div.o_eff_statement_progress div.o_eff_statement_solved{background-color:green}div.o_eff_statement_details{margin:10px 0 10px 0}div.o_eff_statement_recalculating{padding-left:30px;background:transparent url(../openolat/images/ajax-loader.gif) no-repeat top left}.ui-widget{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-dialog{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-dialog .ui-widget-header .ui-icon-closethick{background:white url("../openolat/images/close.png") no-repeat center center}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:2px 30px 2px 5px}.ui-dialog.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-dialog.ui-widget-content{border-color:#025d8c}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-autocomplete-input{line-height:1.5em;font-size:98%}.ui-autocomplete{z-index:10000}.ui-autocomplete.ui-menu{padding:1px}.ui-autocomplete.ui-corner-all{border:1px solid #025d8c;border-top:none;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:2px;-webkit-border-bottom-left-radius:2px;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:2px;-moz-border-radius-bottomleft:2px;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px;moz-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3)}.ui-autocomplete a.ui-corner-all{border:none;margin:-1px;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0}.ui-autocomplete a.ui-corner-all.ui-state-focus{background:#ffdbc1}.ui-autocomplete .b_error_icon{color:#990000;font-style:italic}.ui-datepicker{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-datepicker .ui-widget-header .ui-datepicker-prev.ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:white url("../openolat/images/arrow_right_big.png") no-repeat center center}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:white url("../openolat/images/arrow_left_big.png") no-repeat center center}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #94bed3;background:#f3feff}.ui-datepicker.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-datepicker.ui-widget-content{border-color:#025d8c}.ui-tooltip{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-tooltip.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-tooltip.ui-widget-content{border:1px solid #025d8c}ul.tagit li.tagit-choice.ui-widget-content.ui-state-default{background:#DEE7F8;border:1px solid #CAD8F3}ul.tagit.ui-corner-all{border:none;background:none}.ui-layout-pane{border:none}.ui-layout-resizer{background:none;border-width:1px;border-style:dotted}.ui-layout-toggler-hover,.ui-layout-resizer-hover .ui-layout-toggler-hover{background-color:#025d8c}.ui-layout-resizer-open-hover,.ui-layout-resizer-dragging{background:#f3feff}.fc-state-highlight{background:#ffdbc1}@media print{.o_noprint{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}#b_toplink{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}body{font-size:10pt}.b_noti{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}#b_main.o_loginscreen{background-image:none}#b_main.o_home{background-image:none}#b_main.o_editor{background-image:none}#b_main{moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;border:none}body,#b_page_margins,#b_page,#b_main,#b_page_wrapper{margin:0;padding:0;border:0}body *{font-family:"Times New Roman", Times, serif}code,pre{font-family:"Courier New", Courier, mono}#b_page_margins,#b_page{width:100% !important;min-width:0;max-width:none}#b_footer,#b_topnav,#b_nav,#search{display:none}#b_col1,#b_col2{display:none}#b_col3{margin:0 !important;border:none !important}.b_c25l,.b_c33l,.b_c38l,.b_c50l,.b_c62l,.b_c66l,.b_c75l,.b_c25r,.b_c33r,.b_c38r,.b_c50r,.b_c62r,.b_c66r,.b_c75r{width:100%;margin:0;float:none;overflow:visible;display:table}.b_subc,.b_subcl,.b_subcr{margin:0;padding:0}h1,h2,h3,h4,h5,h6{page-break-after:avoid}#b_page a[href^="http:"],#b_page a[href^="https:"]{padding-left:0;background-image:none}#b_col1_content:before,#b_col2_content:before,#b_col3_content:before{content:"";color:#888;background:inherit;display:block;font-weight:700;font-size:1.5em}.b_floatbox,.b_subcolumns,.b_subcolums_oldgecko{overflow:visible;display:table}#jsMath_PrintWarning{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}.o_wiki_wrapper .b_c20l,.o_wiki_wrapper .o_wikimod_nav{display:none}.o_wiki_wrapper .b_c80r{width:100%}.o_wiki_wrapper .b_c80r div.b_tabbedpane_tabs{display:none}.o_cal_toptoolbar.b_clearfix{display:none}.o_cal_wv{display:none}.o_cal_wv_print{display:block}#o_cal_config .b_float_right{display:none}#o_cal_config_below_cal_container .b_subcolumns{display:none}.o_cal_wv_print ul{list-style-type:none;margin-left:0}.o_cal_event{clear:left;margin:0.2em 0}.o_cal_wv_list *{float:left;width:100%}.o_cal_event span{padding:0 0.4em;display:block}.o_cal_date{font-weight:bold}.o_cal_time{width:25%}.o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick}.o_cal_subject p{padding:0 0.4em;margin:0}.o_cal_location{float:right;width:34%}.o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}.o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block}#o_cal_config_below_cal_container{border:none;background:none;overflow:visible}#o_cal_config_below_cal_container *{background:none;color:black}#o_cal_config_below_cal_container fieldset{border:none}#o_cal_config_below_cal_container fieldset legend{font-weight:bold}} diff --git a/src/main/webapp/static/themes/openolatexample/layout.css b/src/main/webapp/static/themes/openolatexample/layout.css index 1823fcb574ed1fbf195b75b7ef8c769328dbf692..05570417fd8d16da98c538b87a1ea2b3c9b317da 100644 --- a/src/main/webapp/static/themes/openolatexample/layout.css +++ b/src/main/webapp/static/themes/openolatexample/layout.css @@ -26,4 +26,4 @@ * @author strentini, sergio.trentini@frentix.com, www.frentix.com * @date Nov. 2011 * ======================================================== -**/@import url(all/content.css);.b_with_small_icon_left,div.b_table_wrapper div.b_table_empty{padding:2px 0 2px 20px;min-height:16px;background-position:0 50%;background-repeat:no-repeat}option.b_with_small_icon_left{padding:0 0 0 20px;vertical-align:middle;min-height:11px;background-position:0 50%;background-repeat:no-repeat}.b_with_small_icon_right,#b_main_toolbar div.b_breadcumb_close .b_close{padding:1px 20px 1px 0px;min-height:16px;background-position:100% 50%;background-repeat:no-repeat}.b_with_small_icon_only span{display:none}.b_small_icon{float:left;display:inline;width:16px;height:16px;background-position:0 50%;background-repeat:no-repeat}td a span.b_small_table_icon,td a.b_small_table_icon{padding-left:20px;width:16px;height:16px;background-position:2px 50%;background-repeat:no-repeat}a.b_small_icon:hover{text-decoration:none}.b_info_icon{background-image:url("../openolat/images/comment.png")}.b_warn_icon,div.b_table_wrapper div.b_table_empty{background-image:url("../openolat/images/exclamation.png")}.b_error_icon{background-image:url("../openolat/images/cross-circle.png")}.b_new_icon{background-image:url("../openolat/images/new-text.png")}.b_institution_icon{background-image:url("../openolat/images/home.png")}.b_group_icon{background-image:url("../openolat/images/users.png")}.b_group_icon.b_managed_icon{background-image:url("../openolat/images/managed_users.png")}.b_qpool_icon{background-image:url("../openolat/images/qti/pool.png")}.b_user_icon{background-image:url("../openolat/images/user.png")}.b_move_left_icon{background-image:url("../openolat/images/arrow_left_big.png")}.b_move_right_icon{background-image:url("../openolat/images/arrow_right_big.png")}.b_move_down_icon{background-image:url("../openolat/images/arrow_down_big.png")}.b_move_up_icon{background-image:url("../openolat/images/arrow_up_big.png")}.b_delete_icon{background-image:url("../openolat/images/bin-metal-full.png")}.b_share_icon{background-image:url("../openolat/images/share.png")}.b_status_enabled_icon{background-image:url("../openolat/images/tick.png")}.b_status_disabled_icon{background-image:url("../openolat/images/cross.png")}.b_edit_icon{background-image:url("../openolat/images/docs/document--pencil.png")}.b_add_icon{background-image:url("../openolat/images/plus-circle.png")}.b_open_icon{background-image:url("../openolat/images/control/control.png")}.b_star_icon{background-image:url(../openolat/images/star.png)}.b_star_small_icon{background-image:url(../openolat/images/star-small.png)}.o_fulltext_search_button{background-image:url("../openolat/images/magnifier-zoom.png")}.o_help_icon{background-image:url("../openolat/images/help.png")}.o_rss_icon{background-image:url("../openolat/images/feed.png")}.o_login_guests{background-image:url("../openolat/images/user_silhouette.png")}.o_login_pwd{background-image:url("../openolat/images/user_excl.png")}.o_login_register{background-image:url("../openolat/images/user_register.png")}.o_news_icon{background-image:url("../openolat/images/information-white.png")}.o_course_icon{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}.o_chat_icon{background-image:url("../openolat/images/balloons-box.png")}.o_admin_icon{background-image:url("../openolat/images/wrench-screwdriver.png")}.o_calendar_icon{background-image:url("../openolat/images/calendar.png")}.o_locked_icon{background-image:url("../openolat/images/locked.png")}.b_backward_icon{background-image:url("../openolat/images/arrow_left.png")}.b_forward_icon{background-image:url("../openolat/images/arrow_right.png")}.b_flag_en{background-image:url("../openolat/images/flags/gb.png")}.b_flag_de{background-image:url("../openolat/images/flags/de.png")}.b_flag_fr{background-image:url("../openolat/images/flags/fr.png")}.b_flag_it{background-image:url("../openolat/images/flags/it.png")}.b_flag_es{background-image:url("../openolat/images/flags/es.png")}.b_flag_da{background-image:url("../openolat/images/flags/dk.png")}.b_flag_cs{background-image:url("../openolat/images/flags/cz.png")}.b_flag_el{background-image:url("../openolat/images/flags/gr.png")}.b_flag_ee{background-image:url("../openolat/images/flags/ee.png")}.b_flag_ru{background-image:url("../openolat/images/flags/ru.png")}.b_flag_pl{background-image:url("../openolat/images/flags/pl.png")}.b_flag_zh_CN{background-image:url("../openolat/images/flags/cn.png")}.b_flag_zh_TW{background-image:url("../openolat/images/flags/tw.png")}.b_flag_lt{background-image:url("../openolat/images/flags/lt.png")}.b_flag_fa{background-image:url("../openolat/images/flags/ir.png")}.b_flag_pt_PT{background-image:url("../openolat/images/flags/pt.png")}.b_flag_pt_BR{background-image:url("../openolat/images/flags/br.png")}.b_flag_tr{background-image:url("../openolat/images/flags/tr.png")}.b_flag_hu{background-image:url("../openolat/images/flags/hu.png")}.b_flag_sq{background-image:url("../openolat/images/flags/al.png")}.b_flag_in{background-image:url("../openolat/images/flags/id.png")}.b_flag_ar{background-image:url("../openolat/images/flags/eg.png")}.b_flag_rm{background-image:url("../openolat/images/flags/rm.png")}.b_flag_af{background-image:url("../openolat/images/flags/za.png")}.b_flag_vi{background-image:url("../openolat/images/flags/vn.png")}.b_flag_mn{background-image:url("../openolat/images/flags/mn.png")}.b_flag_iw{background-image:url("../openolat/images/flags/il.png")}.b_flag_ko{background-image:url("../openolat/images/flags/kr.png")}.b_flag_nl_NL{background-image:url("../openolat/images/flags/nl.png")}.b_flag_jp{background-image:url("../openolat/images/flags/jp.png")}.b_flag_nb_NO{background-image:url("../openolat/images/flags/no.png")}.b_flag_et_EE{background-image:url("../openolat/images/flags/ee.png")}.b_flag_bg{background-image:url("../openolat/images/flags/bg.png")}.b_flag_hi_IN_ASIA{background-image:url("../openolat/images/flags/in.png")}.b_flag_ar_LB{background-image:url("../openolat/images/flags/lb.png")}.b_flag_gl_ES{background-image:url("../openolat/images/flags/galicia.png")}.b_filetype_file,.b_filetype_ico{background-image:url("../openolat/images/docs/document_plain.png") !important}.b_filetype_folder{background-image:url("../openolat/images/folder.png") !important}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.b_filetype_folder,.b_filetype_folder_open{background-image:url("../openolat/images/folder_open.png") !important}.b_filetype_zip,.b_filetype_gz,.b_filetype_tar,.b_filetype_tgz{background-image:url("../openolat/images/docs/document-zipper.png") !important}.b_filetype_css,.b_filetype_js,.b_filetype_java,.b_filetype_numbers,.b_filetype_ods,.b_filetype_xml,.b_filetype_xsl{background-image:url("../openolat/images/docs/document_tags.png") !important}.b_filetype_bat_icon,.b_filetype_bat,.b_filetype_exe,.b_filetype_app,.b_filetype_sh{background-image:url("../openolat/images/docs/document-binary.png") !important}.b_filetype_xls,.b_filetype_xlsx{background-image:url("../openolat/images/docs/document-excel.png") !important}.b_filetype_swf,.b_filetype_flv{background-image:url("../openolat/images/docs/document-flash-movie.png") !important}.b_filetype_htm,.b_filetype_html{background-image:url("../openolat/images/docs/document-globe.png") !important}.b_filetype_ai{background-image:url("../openolat/images/docs/document-illustrator.png") !important}.b_filetype_png,.b_filetype_tiff,.b_filetype_webp,.b_filetype_gif,.b_filetype_ico,.b_filetype_jpeg,.b_filetype_bmp,.b_filetype_odg,.b_filetype_eps,.b_filetype_jpg{background-image:url("../openolat/images/docs/document-image.png") !important}.b_filetype_avi_icon,.b_filetype_avi,.b_filetype_dvi,.b_filetype_mp4,.b_filetype_m4v,.b_filetype_webm,.b_filetype_ogg,.b_filetype_video,.b_filetype_mov,.b_filetype_mpeg,.b_filetype_mpg,.b_filetype_qt,.b_filetype_ra,.b_filetype_ram{background-image:url("../openolat/images/docs/document-film.png") !important}.b_filetype_midi,.b_filetype_audio,.b_filetype_mp3,.b_filetype_m3u,.b_filetype_wav{background-image:url("../openolat/images/docs/document-music.png") !important}.b_filetype_ps,.b_filetype_pdf{background-image:url("../openolat/images/docs/document-pdf.png") !important}.b_filetype_psd{background-image:url("../openolat/images/docs/document-photoshop.png") !important}.b_filetype_key,.b_filetype_odp,.b_filetype_ppt,.b_filetype_pptx{background-image:url("../openolat/images/docs/document-powerpoint.png") !important}.b_filetype_odf,.b_filetype_rtf,.b_filetype_readme,.b_filetype_README,.b_filetype_log,.b_filetype_txt{background-image:url("../openolat/images/docs/document-text.png") !important}.b_filetype_pages,.b_filetype_doc,.b_filetype_docx{background-image:url("../openolat/images/docs/document-word.png") !important}.b_large_icon.b_filetype_file{background-image:url("../openolat/images/docs_large/file.png") !important}.b_large_icon.b_filetype_folder{background-image:url("../openolat/images/docs_large/folder.png") !important}.b_large_icon.b_filetype_zip,.b_large_icon.b_filetype_gz,.b_large_icon.b_filetype_tar,.b_large_icon.b_filetype_tgz{background-image:url("../openolat/images/docs_large/compressed.png") !important}.b_large_icon.b_filetype_css{background-image:url("../openolat/images/docs_large/css.png") !important}.b_large_icon.b_filetype_js,.b_large_icon.b_filetype_java,.b_large_icon.b_filetype_xml,.b_large_icon.b_filetype_xsl,.b_large_icon.b_filetype_bat,.b_large_icon.b_filetype_exe,.b_large_icon.b_filetype_app,.b_large_icon.b_filetype_sh{background-image:url("../openolat/images/docs_large/developer.png") !important}.b_large_icon.b_filetype_numbers{background-image:url("../openolat/images/docs_large/numbers.png") !important}.b_large_icon.b_filetype_ods,.b_large_icon.b_filetype_xls,.b_large_icon.b_filetype_xlsx{background-image:url("../openolat/images/docs_large/excel.png") !important}.b_large_icon.b_filetype_swf,.b_large_icon.b_filetype_flv{background-image:url("../openolat/images/docs_large/flash.png") !important}.b_large_icon.b_filetype_htm,.b_large_icon.b_filetype_html{background-image:url("../openolat/images/docs_large/html.png") !important}.b_large_icon.b_filetype_ai{background-image:url("../openolat/images/docs_large/illustrator.png") !important}.b_large_icon.b_filetype_png,.b_large_icon.b_filetype_tiff,.b_large_icon.b_filetype_webp,.b_large_icon.b_filetype_gif,.b_large_icon.b_filetype_ico,.b_large_icon.b_filetype_jpeg,.b_large_icon.b_filetype_bmp,.b_large_icon.b_filetype_odg,.b_large_icon.b_filetype_eps,.b_large_icon.b_filetype_jpg{background-image:url("../openolat/images/docs_large/image.png") !important}.b_large_icon.b_filetype_avi,.b_large_icon.b_filetype_dvi,.b_large_icon.b_filetype_mp4,.b_large_icon.b_filetype_m4v,.b_large_icon.b_filetype_webm,.b_large_icon.b_filetype_ogg,.b_large_icon.b_filetype_video,.b_large_icon.b_filetype_mov,.b_large_icon.b_filetype_mpeg,.b_large_icon.b_filetype_mpg,.b_large_icon.b_filetype_qt,.b_large_icon.b_filetype_ra,.b_large_icon.b_filetype_ram{background-image:url("../openolat/images/docs_large/movie.png") !important}.b_large_icon.b_filetype_midi,.b_large_icon.b_filetype_audio,.b_large_icon.b_filetype_mp3,.b_large_icon.b_filetype_m3u,.b_large_icon.b_filetype_wav{background-image:url("../openolat/images/docs_large/music.png") !important}.b_large_icon.b_filetype_ps,.b_large_icon.b_filetype_pdf{background-image:url("../openolat/images/docs_large/pdf.png") !important}.b_large_icon.b_filetype_psd{background-image:url("../openolat/images/docs_large/photoshop.png") !important}.b_large_icon.b_filetype_key{background-image:url("../openolat/images/docs_large/keynote.png") !important}.b_large_icon.b_filetype_odp,.b_large_icon.b_filetype_ppt,.b_large_icon.b_filetype_pptx{background-image:url("../openolat/images/docs_large/powerpoint.png") !important}.b_large_icon.b_filetype_odf,.b_large_icon.b_filetype_rtf,.b_large_icon.b_filetype_readme,.b_large_icon.b_filetype_README,.b_large_icon.b_filetype_log,.b_large_icon.b_filetype_txt{background-image:url("../openolat/images/docs_large/text.png") !important}.b_large_icon.b_filetype_pages{background-image:url("../openolat/images/docs_large/pages.png") !important}.b_large_icon.b_filetype_doc,.b_large_icon.b_filetype_docx{background-image:url("../openolat/images/docs_large/word.png") !important}li.b_nav_site div,li.b_nav_tab div{background:url("../openolat/images/application.png") no-repeat left 50%;padding-left:18px}li.b_resource_BusinessGroup div,.o_BusinessGroup_icon{background-image:url("../openolat/images/users.png")}li.b_resource_GroupCard div,.o_GroupCard_icon{background-image:url("../openolat/images/users.png")}li.b_resource_CourseModule div,.o_CourseModule_icon{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}.o_CourseModule_icon.b_managed_icon{background-image:url("../openolat/images/le_resources/book-open-text-image_locked.png")}li.b_resource_HOMEPAGECONFIG div,.o_HOMEPAGECONFIG_icon,li.b_resource_Identity div{background-image:url("../openolat/images/card-address.png")}li.b_resource_FileResource-SHAREDFOLDER div,.o_FileResource-SHAREDFOLDER_icon{background-image:url("../openolat/images/folder_shared.png")}li.b_resource_FileResource-WIKI div,.o_FileResource-WIKI_icon{background-image:url("../openolat/images/le_resources/wiki.png")}li.b_resource_FileResource-PODCAST div,.o_FileResource-PODCAST_icon{background-image:url("../openolat/images/le_resources/media-player-cast.png")}li.b_resource_FileResource-BLOG div,.o_FileResource-BLOG_icon{background-image:url("../openolat/images/le_resources/blog.png")}li.b_resource_FileResource-MOVIE div,.o_FileResource-MOVIE_icon{background-image:url("../openolat/images/docs/document-film.png")}li.b_resource_FileResource-PDF div,.o_FileResource-PDF_icon{background-image:url("../openolat/images/docs/document-pdf.png")}li.b_resource_FileResource-PPT div,.o_FileResource-PPT_icon{background-image:url("../openolat/images/docs/document-powerpoint.png")}li.b_resource_FileResource-DOC div,.o_FileResource-DOC_icon{background-image:url("../openolat/images/docs/document-word.png")}li.b_resource_FileResource-IMSCP div,.o_FileResource-IMSCP_icon{background-image:url("../openolat/images/le_resources/box.png")}li.b_resource_FileResource-SCORMCP div,.o_FileResource-SCORMCP_icon{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png")}li.b_resource_FileResource-FILE div,.o_FileResource-FILE_icon{background-image:url("../openolat/images/docs/document_plain.png")}li.b_resource_FileResource-IMAGE div,.o_FileResource-IMAGE_icon{background-image:url("../openolat/images/docs/document-image.png")}li.b_resource_FileResource-SOUND div,.o_FileResource-SOUND_icon{background-image:url("../openolat/images/docs/document-music.png")}li.b_resource_FileResource-XLS div,.o_FileResource-XLS_icon{background-image:url("../openolat/images/docs/document-excel.png")}li.b_resource_FileResource-ANIM div,.o_FileResource-ANIM_icon{background-image:url("../openolat/images/docs/document-image.png")}li.b_resource_FileResource-SURVEY div,.o_FileResource-SURVEY_icon{background-image:url("../openolat/images/le_resources/survey.png")}li.b_resource_FileResource-TEST div,.o_FileResource-TEST_icon{background-image:url("../openolat/images/le_resources/test.png")}li.b_resource_FileResource-GLOSSARY div,.o_FileResource-GLOSSARY_icon{background-image:url("../openolat/images/le_resources/glossary.png")}li.b_resource_org-olat-search-ui-SearchController div,.o_org-olat-search-ui-SearchController_icon{background-image:url("../openolat/images/magnifier-zoom.png")}li.b_resource_EPStructuredMapTemplate div{background-image:url("../openolat/images/le_resources/portfolio.png")}li a.o_toolbox_course{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}li a.o_toolbox_content{background-image:url("../openolat/images/le_resources/box.png")}li a.o_toolbox_scorm{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png")}li a.o_toolbox_test{background-image:url("../openolat/images/le_resources/test.png")}li a.o_toolbox_questionnaire{background-image:url("../openolat/images/le_resources/survey.png")}li a.o_toolbox_wiki{background-image:url("../openolat/images/le_resources/wiki.png")}li a.o_toolbox_podcast{background-image:url("../openolat/images/le_resources/media-player-cast.png")}li a.o_toolbox_blog{background-image:url("../openolat/images/le_resources/blog.png")}li a.o_toolbox_glossary{background-image:url("../openolat/images/le_resources/glossary.png")}li a.o_toolbox_sharedfolder{background-image:url("../openolat/images/folder_shared.png")}li a.o_toolbox_coursefolder{background-image:url("../openolat/images/le_resources/blue-folder.png")}li a.o_toolbox_courseareas{background-image:url("../openolat/images/users.png")}li a.o_toolbox_portfolio{background-image:url("../openolat/images/le_resources/portfolio.png")}li a.b_toolbox_link{background-image:url("../openolat/images/bullet_black.png")}li a.b_toolbox_doc{background-image:url("../openolat/images/docs/document_plain.png")}li a.b_toolbox_preview{background-image:url("../openolat/images/docs/document_preview.png")}li a.b_toolbox_publish{background-image:url("../openolat/images/docs/document_share.png")}li a.b_toolbox_move{background-image:url("../openolat/images/docs/document_move.png")}li a.b_toolbox_close{background-image:url("../openolat/images/close.png")}li a.b_toolbox_delete{background-image:url("../openolat/images/bin-metal-full.png")}li a.b_toolbox_copy,.b_copy_icon{background-image:url("../openolat/images/docs/document-copy.png")}.o_midlock{top:9px;left:9px;background-image:url("../openolat/images/decorator/deco_condition.png")}.o_miderr{top:8px;left:-2px;background-image:url("../openolat/images/decorator/deco_error.png")}.o_midwarn{top:8px;left:-2px;background-image:url("../openolat/images/decorator/deco_warn.png")}.o_midpub{top:-2px;left:9px;background-image:url("../openolat/images/decorator/deco_ok.png")}span.o_passed{background:url(../openolat/images/tick.png) no-repeat right 50%;padding:0 25px 0 0;color:#009900}span.o_notpassed{background:url(../openolat/images/cross.png) no-repeat right 50%;padding:0 25px 0 0;color:#990000}.o_efficiencystatement_icon{background-image:url(../openolat/images/seal.png)}span.o_green_led{background:url(../openolat/images/green_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_yellow_led{background:url(../openolat/images/yellow_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_red_led{background:url(../openolat/images/red_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_black_led{background:url(../openolat/images/black_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_grey_led{background:url(../openolat/images/grey_led.png) no-repeat left 50%;padding:0 0 0 25px}.o_bc_icon{background-image:url("../openolat/images/folder.png") !important}.o_co_icon{background-image:url("../openolat/images/mail.png") !important}.o_cp_icon{background-image:url("../openolat/images/le_resources/box.png") !important}.o_cp_org{background-image:url("../openolat/images/le_resources/box.png") !important}.o_cp_item{background-image:url("../openolat/images/docs/document-text.png") !important}.o_dialog_icon{background-image:url("../openolat/images/docs/document_discuss.png") !important}.o_en_icon{background-image:url("../openolat/images/enrol.png") !important}.o_fo_icon{background-image:url("../openolat/images/forum/forum.png") !important}.o_iqself_icon{background-image:url("../openolat/images/le_resources/selftest.png") !important}.o_iqsurv_icon{background-image:url("../openolat/images/le_resources/survey.png") !important}.o_iqtest_icon{background-image:url("../openolat/images/le_resources/test.png") !important}.o_qitem_icon{background-image:url("../openolat/images//question-octagon-frame.png") !important}.o_ms_icon{background-image:url("../openolat/images/le_resources/thumb-up.png") !important}.o_scorm_icon,.o_scorm_org{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png") !important}.o_scorm_item{background-image:url("../openolat/images/docs/document-text.png") !important}.o_scorm_asset{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png") !important}.o_sp_icon{background-image:url("../openolat/images/docs/document-text.png") !important}.o_st_icon{background-image:url("../openolat/images/node-select-all.png") !important}.o_ta_icon{background-image:url("../openolat/images/docs/document-task.png") !important}.o_tu_icon{background-image:url("../openolat/images/docs/document-import.png") !important}.o_wiki_icon{background-image:url("../openolat/images/le_resources/wiki.png") !important}.o_ll_icon{background-image:url("../openolat/images/docs/document_linklist.png") !important}.o_cl_icon{background-image:url("../openolat/images/clipboard-task.png") !important}.o_den_icon{background-image:url("../openolat/images/clock.png") !important}.o_projectbroker_icon{background-image:url("../openolat/images/projectbroker.png") !important}.o_podcast_icon{background-image:url("../openolat/images/le_resources/media-player-cast.png") !important}.o_blog_icon{background-image:url("../openolat/images/le_resources/blog.png") !important}.o_cal_icon{background-image:url("../openolat/images/calendar.png") !important}.o_lti_icon{background-image:url("../openolat/images/docs/document-node.png") !important}.o_vc_icon{background-image:url("../openolat/images/projection-screen.png") !important}.o_vitero_icon{background-image:url("../openolat/images/vitero.png") !important}.o_openmeetings_icon{background-image:url("../openolat/images/projection-screen-presentation.png") !important}.o_ep_icon{background-image:url("../openolat/images/le_resources/portfolio.png") !important}.o_EPStructuredMapTemplate_icon{background-image:url("../openolat/images/portfolio/briefcase.png") !important}.o_infomsg_icon{background-image:url("../openolat/images/information-button.png") !important}.o_cmembers_icon{background-image:url("../openolat/images/users.png") !important}.fx_members_icon{background-image:url("../openolat/images/users_members.png") !important}body#b_body .o_CourseModule_icon_closed{background-image:url("../openolat/images/le_resources/book-open-text-image_locked.png")}.o_portrait_dummy{background-image:url(../openolat/images/dummy.png);width:100px;height:100px}.o_portrait_dummy_small{background-image:url(../openolat/images/dummy_small.png);width:30px;height:30px}.o_portrait_dummy_female_big{background-image:url(../openolat/images/dummy_female_big.png);width:100px;height:100px}.o_portrait_dummy_female_small{background-image:url(../openolat/images/dummy_female_small.png);width:30px;height:30px}.o_portrait_dummy_male_big{background-image:url(../openolat/images/dummy_male_big.png);width:100px;height:100px}.o_portrait_dummy_male_small{background-image:url(../openolat/images/dummy_male_small.png);width:30px;height:30px}.o_portrait_anonymous{background-image:url(../openolat/images/dummy.png);width:100px;height:100px}.o_portrait_anonymous_small{background-image:url(../openolat/images/dummy_small.png);width:30px;height:30px}@media all{html{min-height:100%}body{min-height:100%;overflow-y:scroll;background:yellow;background:-moz-linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, yellow), color-stop(33%, red), color-stop(66%, blue), color-stop(100%, green));background:-webkit-linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%);background:-o-linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%);background:-ms-linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%);background:linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%)}#b_page_margins{min-width:740px;max-width:1324px;margin:0 auto;width:100%;height:100%;position:relative;z-index:1}#b_main_toolbar{clear:both;height:24px;line-height:24px;vertical-align:middle;margin:0;padding:1px 0 0 0;border-bottom:1px solid #dadada;background-color:white;moz-box-shadow:0 0 14px #d3d3d3;-ms-box-shadow:0 0 14px #d3d3d3;-o-box-shadow:0 0 14px #d3d3d3;-webkit-box-shadow:0 0 14px #d3d3d3;box-shadow:0 0 14px #d3d3d3}#b_main_toolbar ul li a span{line-height:24px}#b_main{background:#fff;min-height:550px;clear:both;moz-box-shadow:0 2px 14px #d3d3d3;-ms-box-shadow:0 2px 14px #d3d3d3;-o-box-shadow:0 2px 14px #d3d3d3;-webkit-box-shadow:0 2px 14px #d3d3d3;box-shadow:0 2px 14px #d3d3d3}#b_page a#b_toplink{position:absolute;bottom:1em;right:1em;background:transparent url(../openolat/images/arrow_up.png) 0 50% no-repeat;padding-left:14px;z-index:5}#b_header,#b_page,#b_col1_content,#b_col2_content,#b_col3_content,#b_col3_content_inner{position:relative}#b_col1{overflow:hidden}#b_col1_content{padding:1em 10px 1em 0px}#b_col3{border-left:1px #DDD dotted;border-right:1px #DDD dotted}#b_col3_content{min-height:550px;padding:20px 20px 30px 20px}#b_col2_content{overflow:hidden;padding:1em 0}.b_hidecol2 #b_col3{margin-right:0 !important;border-right:none}.b_hidecol1 #b_col3{margin-left:0 !important;border-left:none}.b_hideboth #b_col3{margin-left:0 !important;margin-right:0 !important;border-left:none;border-right:none}.b_hideboth #b_col1,.b_hideboth #b_col2,.b_hidecol1 #b_col1,.b_hidecol2 #b_col2,#b_ie_clearing{display:none}.b_c15r,.b_c20r,.b_c80r,.b_c85r{float:right;margin-left:-5px}.b_c15l,.b_c15r{width:15%}.b_c20l,.b_c20r{width:20%}.b_c80l,.b_c80r{width:80%}.b_c85l,.b_c85r{width:85%}.b_subcolumns_oldgecko,.b_c20l,.b_c15l,.b_c80l,.b_c85l{float:left}div.b_iframe_wrapper iframe{width:100%;position:relative;top:0;left:0;border:none;margin:0;padding:0;background:transparent}#b_main.b_exception{padding-left:165px;padding-right:165px}#b_header{height:auto;min-height:30px;overflow:hidden;position:relative}#b_header #b_topnav{position:absolute;font-family:Century Gothic, Apple Gothic, sans-serif;right:0px;top:0px;padding:4px 15px 0px 0px;line-height:1.5em;min-height:1.5em}#b_header #b_topnav ul{margin:0}#b_header #b_topnav li,#b_header #b_topnav div,#b_header #b_topnav span{line-height:1.5em}#b_header #b_topnav .b_with_small_icon_right,#b_header #b_topnav #b_main_toolbar div.b_breadcumb_close .b_close,#b_main_toolbar div.b_breadcumb_close #b_header #b_topnav .b_close{padding:0 20px 0 0}#b_header #b_topnav .b_with_small_icon_left,#b_header #b_topnav div.b_table_wrapper div.b_table_empty,div.b_table_wrapper #b_header #b_topnav div.b_table_empty{padding:0 0 0 20px}#b_header #b_topnav .b_small_icon{height:1.5em}#b_header #b_topnav #o_topnav_langchooser select{font-size:90%}#b_header #b_topnav #o_topnav_search input{font-size:90%;margin:0;width:10em}#b_header #b_topnav #o_topnav_search a.o_fulltext_search_button{height:1.5em;background-position:50% 50%}#b_header #b_topnav #o_topnav_printview a{background:url(../openolat/images/printer.png) no-repeat right 50%;padding:0 20px 0 0;margin:0}#b_header #b_topnav #o_topnav_logout a{background:url("../openolat/images/control/control-power.png") no-repeat right 50%;padding:0 20px 0 0;margin:0;font-weight:bold}#b_header #b_topnav li{float:left;list-style:none;margin-left:1.7em}#b_header #b_topnav li div.b_form_element_wrapper.b_form_horizontal{margin:0}#b_header #b_topnav li#o_topnav_imclient li{margin-left:0.5em}#b_nav_main{float:left;font-family:Century Gothic, Apple Gothic, sans-serif}#b_nav_main ul{padding-left:40px;margin:0}#b_nav_main ul li{float:left;position:relative;list-style:none;margin:0px;padding:4px 3px 4px 12px;margin-right:2px;-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;background:rgba(255, 255, 255, 0.5)}#b_nav_main ul li a{padding:4px 12px 4px 3px}#b_nav_main ul li a:hover{text-decoration:none}#b_nav_main ul li.b_nav_site.b_nav_active,#b_nav_main ul li.b_nav_site:hover,#b_nav_main ul li.b_nav_site.b_exception{moz-box-shadow:0 -4px 8px -1px #d3d3d3;-ms-box-shadow:0 -4px 8px -1px #d3d3d3;-o-box-shadow:0 -4px 8px -1px #d3d3d3;-webkit-box-shadow:0 -4px 8px -1px #d3d3d3;box-shadow:0 -4px 8px -1px #d3d3d3;background:white}#b_nav_main ul li.b_nav_site.b_nav_active a.b_nav_tab_close,#b_nav_main ul li.b_nav_site:hover a.b_nav_tab_close,#b_nav_main ul li.b_nav_site.b_exception a.b_nav_tab_close{background-image:url(../openolat/images/cross_small_trimmed_blue.png)}#b_nav_main ul li.b_nav_site > div{padding-left:16px;background-repeat:no-repeat;background-position:0% 50%;background-image:url("../openolat/images/application.png")}#b_nav_main ul li.b_nav_site.o_site_home > div{background-image:url("../openolat/images/home.png")}#b_nav_main ul li.b_nav_site.o_site_admin > div{background-image:url("../openolat/images/wrench-screwdriver.png")}#b_nav_main ul li.b_nav_site.o_site_useradmin > div{background-image:url("../openolat/images/user_conf.png")}#b_nav_main ul li.b_nav_site.o_site_groupsmanagement > div{background-image:url("../openolat/images/users_conf.png")}#b_nav_main ul li.b_nav_site.o_site_repository > div{background-image:url("../openolat/images/books-stack.png")}#b_nav_main ul li.b_nav_site.o_site_groups > div{background-image:url("../openolat/images/users.png")}#b_nav_main ul li.b_nav_site.o_site_coaching > div{background-image:url("../openolat/images/eye.png")}#b_nav_main ul li.b_nav_site.site_demo_icon > div{background-image:url("../openolat/images/information-white.png")}#b_nav_main ul li.b_nav_site.f_site_library > div{background-image:url("../openolat/images/library.png")}#b_nav_main ul li.b_nav_site.fx_members > div{background-image:url("../openolat/images/users_members.png")}#b_nav_main ul li.b_nav_site.o_site_guidemo div{background-image:url("../openolat/images/light-bulb.png")}#b_nav_main ul li.b_nav_site.b_resource_GroupInfoMainController div{background-image:url(../openolat/images/users.png)}#b_nav_main ul li.b_nav_site.o_site_catalog div{background-image:url(../openolat/images/drawer-open.png)}#b_nav_main ul li.b_nav_site.o_site_qpool div{background-image:url(../openolat/images/qti/pool.png)}#b_nav_main ul li.b_nav_tab{margin-right:4px}#b_nav_main ul li.b_nav_tab a.b_nav_tab_close{position:absolute;top:3px;right:4px;width:13px;height:13px;line-height:0;padding:0;margin:0;background:transparent url(../openolat/images/cross_small_trimmed_grey.png) no-repeat right top}#b_nav_main ul li.b_nav_tab.b_nav_active,#b_nav_main ul li.b_nav_tab:hover{moz-box-shadow:0 -4px 8px -1px #d3d3d3;-ms-box-shadow:0 -4px 8px -1px #d3d3d3;-o-box-shadow:0 -4px 8px -1px #d3d3d3;-webkit-box-shadow:0 -4px 8px -1px #d3d3d3;box-shadow:0 -4px 8px -1px #d3d3d3;background:white}#b_nav_main ul li.b_nav_tab.b_nav_active a.b_nav_tab_close,#b_nav_main ul li.b_nav_tab:hover a.b_nav_tab_close{background-image:url(../openolat/images/cross_small_trimmed_blue.png)}#b_nav_main ul li#b_nav_spacer{background:none;border:none;width:20px;height:1px;padding:0}.b_clickable:hover{cursor:pointer}div.b_tree{position:relative;font-size:100%;font-family:Century Gothic, Apple Gothic, sans-serif;padding:0}div.b_tree ul{position:relative;padding:0;margin:0 0 0 1em;list-style:none;white-space:nowrap}div.b_tree ul li{position:relative;background:transparent;margin-left:0;padding-left:0;line-height:1.7em}div.b_tree ul li a.b_tree_icon{padding-left:20px;padding-top:2px;position:relative;background-position:0 50%;background-repeat:no-repeat}div.b_tree ul li a{color:#555555}div.b_tree ul li a.b_tree_l0{padding-left:16px}div.b_tree ul li .b_tree_oc_l0{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l0,div.b_tree ul li .b_tree_level_close.b_tree_oc_l0{z-index:10}div.b_tree ul li a:focus,div.b_tree ul li a:hover{color:#025d8c;background-color:transparent;text-decoration:underline}div.b_tree ul li a.b_tree_selected,div.b_tree ul li a:active{color:#025d8c;background-color:transparent;text-decoration:none}div.b_tree ul li a.b_tree_selected_parents,div.b_tree ul li strong{color:#025d8c;font-weight:bold}div.b_tree ul li .b_tree_oc_l1{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l1,div.b_tree ul li .b_tree_level_close.b_tree_oc_l1{z-index:10}div.b_tree ul li .b_tree_oc_l2{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l2,div.b_tree ul li .b_tree_level_close.b_tree_oc_l2{z-index:10}div.b_tree ul li .b_tree_oc_l3{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l3,div.b_tree ul li .b_tree_level_close.b_tree_oc_l3{z-index:10}div.b_tree ul li .b_tree_oc_l4{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l4,div.b_tree ul li .b_tree_level_close.b_tree_oc_l4{z-index:10}div.b_tree ul li .b_tree_oc_l5{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l5,div.b_tree ul li .b_tree_level_close.b_tree_oc_l5{z-index:10}div.b_tree ul li .b_tree_oc_l6{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l6,div.b_tree ul li .b_tree_level_close.b_tree_oc_l6{z-index:10}div.b_tree ul li .b_tree_oc_l7{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l7,div.b_tree ul li .b_tree_level_close.b_tree_oc_l7{z-index:10}div.b_tree ul li .b_tree_oc_l8{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l8,div.b_tree ul li .b_tree_level_close.b_tree_oc_l8{z-index:10}div.b_tree ul li .b_tree_oc_l9{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l9,div.b_tree ul li .b_tree_level_close.b_tree_oc_l9{z-index:10}div.b_tree ul li .b_tree_oc_l10{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l10,div.b_tree ul li .b_tree_level_close.b_tree_oc_l10{z-index:10}div.b_tree ul li .b_tree_oc_l11{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l11,div.b_tree ul li .b_tree_level_close.b_tree_oc_l11{z-index:10}div.b_tree ul li a.b_tree_l0{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l1{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l2{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l3{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l4{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l5{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l6{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l7{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l8{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l9{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l10{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l11{padding-left:13px;z-index:9}div.b_tree ul li span.b_tree_icon_decorator{width:12px;height:12px;float:right;display:inline;position:static;z-index:9;background-repeat:no-repeat}div.b_tree ul li.b_deleted{text-decoration:none}div.b_tree ul li.b_deleted a{text-decoration:line-through}div.b_tree ul.b_tree_l0 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l1 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l2 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l3 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l4 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l5 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l6 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l7 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l8 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l9 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l10 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l11 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree.b_tree_root_hidden{margin:0 0 0 1em}div.b_tree.b_tree_root_hidden ul{padding:0}div.b_tree.b_tree_root_hidden ul.b_tree_l0{margin-left:0}div.b_tree.b_tree_root_visible{left:-13px}div.b_tree a.b_tree_level_close,div.b_tree a.b_tree_level_open{background:transparent !important}div.b_tree a.b_tree_level_close span,div.b_tree a.b_tree_level_open span{background-position:0 50%;background-repeat:no-repeat;padding-right:13px}div.b_tree a.b_tree_level_close:hover,div.b_tree a.b_tree_level_open:hover{text-decoration:none}div.b_tree a.b_tree_level_close span{background-image:url("../openolat/images/tree_parent_open.gif")}div.b_tree a.b_tree_level_open span{background-image:url("../openolat/images/tree_parent_closed.gif")}div.b_master_detail div.b_tree ul li{background:url("../openolat/images/detail/detail_separator.png") repeat-y right}div.b_master_detail div.b_tree ul li a.b_tree_l0{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l1{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l2{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l3{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l4{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l5{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l6{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l7{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l8{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l9{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l10{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l11{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_selected{background-image:url("../openolat/images/detail/detail_arrow.png")}div.b_master_detail div.b_tree ul li a.b_tree_selected.b_tree_l0{background-image:none}#b_footer{color:#9D9D9D;padding:0;margin:0;position:relative;min-height:60px}#b_footer a{color:#777777}#b_footer #b_footer_user{position:absolute;top:1em;left:1em;line-height:16px}#b_footer #b_footer_user #b_username{margin-right:1.5em}#b_footer #b_footer_version{position:absolute;top:1em;right:1em}#b_footer #b_footer_powered{padding-top:1em;text-align:center;width:auto;background:none}#b_footer #b_footer_powered a{display:inline}#b_footer #b_footer_powered img{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#b_footer #b_footer_powered img:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#b_footer #b_share{position:absolute;top:2.5em;left:1em;width:250px}#b_footer #b_share a,#b_footer #b_share span{margin:0 3px 0 0;background-repeat:no-repeat;width:16px;height:16px;float:left;display:inline;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#b_footer #b_share a:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#b_footer #b_share #b_facebook{background-image:url(../openolat/images/social/facebook_16.png)}#b_footer #b_share #b_twitter{background-image:url(../openolat/images/social/twitter_16.png)}#b_footer #b_share #b_google{background-image:url(../openolat/images/social/google_16.png)}#b_footer #b_share #b_delicious{background-image:url(../openolat/images/social/delicious_16.png)}#b_footer #b_share #b_digg{background-image:url(../openolat/images/social/digg_16.png)}#b_footer #b_share #b_mail{background-image:url(../openolat/images/social/email_16.png)}#b_footer #b_share #b_link{background-image:url(../openolat/images/social/link_16.png)}#b_footer .fx_footer #b_footer_version > a{display:block;min-height:45px;background:transparent url("../../images/frentix/frentix_logo_grey.png") no-repeat left bottom}#b_footer .fx_footer #b_footer_version > a:hover{background-image:url("../../images/frentix/frentix_logo.png")}#callout_share_link input{width:480px}#b_main.b_menu_toolbar #b_col1_content{padding-top:0;padding-right:0}#b_main.b_menu_toolbar #b_col3_content{padding:0}div.b_menu_toolbar{background:#f9f9f9;background:-moz-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9), color-stop(100%, #d0d0d0));background:-webkit-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-o-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-ms-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);border-bottom:1px solid #7D7D7D;padding:5px 5px 2px 0}div.b_breadcumb_path{padding:0;margin:0;float:left;display:inline}div.b_breadcumb_path ul{padding:0;margin:0;list-style:none;float:left;display:inline}div.b_breadcumb_path ul li{padding:0 7px 0 14px;margin:0;list-style:none;float:left;display:inline;background:url(../openolat/images/breadcrumb-separator.png) no-repeat left 50%}div.b_breadcumb_path ul li.b_first{background:url(../openolat/images/home.png) no-repeat 5px 50%;padding-left:25px}div.b_breadcumb_path ul li a{color:#464444}div.b_breadcumb_path ul li span.b_disabled{color:#000;padding:0 10px 0 0;margin:0}#b_main_toolbar div.b_breadcumb_path ul a{color:#2d2e2d;font-weight:bold}#b_main_toolbar div.b_breadcumb_path ul a:hover{color:#585a58;text-decoration:none}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back{background:transparent;padding:0 7px 0 7px;margin:0 2px 0 0;border-right:1px solid #dadada}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back a{font-type:Arial;color:#2d2e2d;font-weight:normal}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back a:hover{color:#585a58}#b_main_toolbar div.b_breadcumb_close{position:absolute;right:5px;size:80%}#b_main_toolbar div.b_breadcumb_close .b_close{background-image:url("../openolat/images/close.png");color:#2d2e2d}#b_main_toolbar div.b_breadcumb_close .b_close:hover{color:#585a58;text-decoration:none}div.b_breadcumb_content{clear:both;margin-top:0.5em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_toolbar{background:#f9f9f9;background:-moz-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9), color-stop(100%, #d0d0d0));background:-webkit-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-o-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-ms-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);position:relative;padding:10px;height:19px;min-height:19px;border-bottom:1px solid #7D7D7D}div.b_toolbar ul{margin:0;list-style-image:none;list-style-type:none}div.b_toolbar ul li{margin:0px 16px 0px 0px;list-style-image:none;list-style-type:none}div.b_toolbar div.b_toolbar_left{position:absolute;top:7px;left:7px}div.b_toolbar ul.b_toolbar_left li{float:left}div.b_toolbar div.b_toolbar_right{position:absolute;top:7px;right:7px}div.b_toolbar ul.b_toolbar_right li{float:right;margin:0px 2px 0px 2px}div.b_toolbar div.b_toolbar_center{text-align:center}div.b_noti{border:1px solid #E9EAEF;padding:3px 23px 3px 3px;float:right;display:inline;position:relative;right:0;font-size:95%}div.b_noti a.b_contexthelp{position:absolute;top:2px;right:2px}div.b_noti a.b_noti_unsubscribe_link{background:url(../openolat/images/mail--minus.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_noti a.b_noti_subscribe_link{background:url(../openolat/images/mail--plus.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_noti a.b_noti_markedread_link{background:url(../openolat/images/tick.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_titled_wrapper div.b_noti{position:absolute;right:25px;top:0px}div.b_titled_wrapper fieldset div.b_noti{top:12px}h1.b_titled_wrapper span{padding-right:4em;font-style:italic}h2.b_titled_wrapper span{padding-right:4em;font-style:italic}h3.b_titled_wrapper span{padding-right:4em;font-style:italic}h4.b_titled_wrapper span{padding-right:3em;font-style:italic}h5.b_titled_wrapper span{padding-right:3em;font-style:italic}a.b_togglebox_closed{background:url("../openolat/images/tree_parent_closed.gif") no-repeat 0 50%;padding:1px 0 1px 18px;vertical-align:middle}a.b_togglebox_opened{background:url("../openolat/images/tree_parent_open.gif") no-repeat 0 50%;padding:1px 0 1px 18px;vertical-align:middle}div.b_togglebox{margin-top:10px;padding:10px;background:#FAFAFA}div.b_togglebox div.b_togglebox_content{background:transparent;border:0px;padding:0px}div.b_titled_wrapper div.b_togglebox{margin-top:0;padding:0;background:transparent}div.b_titled_wrapper div.b_togglebox div.b_togglebox_content{background:transparent;border:0px;padding:0px}div.b_titled_wrapper_desc a.b_togglebox_opened{z-index:10;display:block;width:20px;height:20px;position:absolute;top:2px;left:5px;background:url(../openolat/images/information-white.png) no-repeat 0 50%}div.b_titled_wrapper_desc a.b_togglebox_closed{display:block;width:20px;height:20px;background:url(../openolat/images/information-white.png) no-repeat top left;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}div.b_titled_wrapper_desc div.b_togglebox div.b_togglebox_content{position:relative;margin-bottom:1em}div.b_titled_wrapper_desc a.b_togglebox_hide span{position:absolute;bottom:0;right:0;padding:0 6px 3px 0}div.b_titled_wrapper_desc a.b_togglebox_hide:hover{text-decoration:underline}div.b_titled_wrapper div.b_togglebox div.b_togglebox_content div.o_course_run_objectives{position:relative}div.o_course_run_dropbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_course_run_returnbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_course_run_solutionbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_catalog div.o_catalog_link_title{margin:2em 0 0 0;border-bottom:1px solid #ccc;padding:0.3em}div.o_catalog fieldset{padding:1em 1em 0.5em 1em}div.o_catalog div.o_catalog_title{display:none}div.o_catalog div.o_catalog_nav{padding:1px 0 2px 22px;border-bottom:1px solid #EEE;background:url(../openolat/images/folder_open.png) 2px 50% no-repeat}div.o_catalog .o_catalog_sub_icon{background-image:url(../openolat/images/folder_small.png)}div.o_catalog div.o_catalog_links{margin-top:1em;padding-top:1em;border-top:1px solid #EEE}div.o_catalog div.o_catalog_itemlist ul{list-style-type:none;margin:0;padding:0}div.o_catalog div.o_catalog_itemlist ul li{margin:0;padding:0 0 0 0.5em;overflow:hidden}div.o_catalog div.o_catalog_itemlist ul a{display:block}div.o_catalog div.o_catalog_desc{margin:0.5em 0 0.5em 0;padding-left:20px;font-style:italic}div.b_ext_elem .x-tree-node-collapsed .x-tree-node-icon.o_catalog_cat_icon,div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_cat_icon{background-image:url(../openolat/images/folder_small.png)}div.b_ext_elem .x-tree-node-collapsed .x-tree-node-icon.o_catalog_cat_noaccess_icon,div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_cat_noaccess_icon{background-image:url(../openolat/images/locked.png)}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.o_catalog_cat_icon{background-image:url(../openolat/folder_open.png)}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.o_catalog_cat_noaccess_icon{background-image:url(../openolat/images/locked.png)}div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_entry_icon{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}.b_float_left{float:left;display:inline;margin-right:1em;margin-bottom:0.15em}.b_float_right{float:right;display:inline;margin-left:1em;margin-bottom:0.15em}.b_center{text-align:center;margin:0.5em auto}.b_floatscrollbox{overflow-x:auto;overflow-y:hidden}.b_overflowscrollbox{overflow:auto}}@media all and (min-width : 1324px){#b_footer #b_share{left:0}#b_footer #b_footer_user{left:0}#b_footer #b_footer_version{right:0}}.b_dd_item{cursor:move;z-index:100}.b_dd_proxy{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4}.b_dd_item.b_dd_over{background-color:#ffff60}.b_dd_sibling{height:3px;width:100%}.b_dd_sibling.b_dd_over{background:transparent url(../openolat/images/arrow_dd.png) top left no-repeat}div.b_dd_ct div.b_dd_sibling_l1{margin-left:0 !important}div.b_dd_ct div.b_dd_sibling_l2{margin-left:1em !important}div.b_dd_ct div.b_dd_sibling_l3{margin-left:2em !important}div.b_dd_ct div.b_dd_sibling_l4{margin-left:3em !important}div.b_dd_ct div.b_dd_sibling_l5{margin-left:4em !important}div.b_dd_ct div.b_dd_sibling_l6{margin-left:5em !important}div.b_dd_ct div.b_dd_sibling_l7{margin-left:6em !important}div.b_dd_ct div.b_dd_sibling_l8{margin-left:7em !important}div.b_dd_ct div.b_dd_sibling_l9{margin-left:8em !important}div.b_dd_ct div.b_dd_sibling_l10{margin-left:9em !important}div.b_dd_ct div.b_dd_sibling_l11{margin-left:10em !important}.b_group_accesscontrolled{background-image:url("../openolat/images/ac/umbrella.png")}.b_order_icon{background-image:url("../openolat/images/ac/shopping-basket.png")}div.b_order_details{margin-top:2em}div.b_order_details label{font-weight:bold}div.b_access_create ul{padding:0;margin-left:0}div.b_access_create li{padding:0;list-style:none}table.b_access_method td{padding:0.2em 1em 0.2em 0}table.b_access_method tr.b_access_desc td{padding:0 1em 1em 20px;font-style:italic}table.b_access_method td div.b_form_element{margin-left:0}div.b_access_method_list div.b_access_method legend{background-repeat:no-repeat;padding-left:20px}table span.b_access_method{padding-right:5px;font-size:90%;vertical-align:bottom;line-height:16px}.b_access_member_icon{background-image:url(../openolat/images/ac/lock-unlock.png)}.b_access_membersonly_icon{background-image:url("../openolat/images/ac/lock.png")}.b_access_method_free_icon{background-image:url("../openolat/images/ac/open-share.png")}.b_group_accesscontrolled.b_access_method_free,b_order_icon.b_access_method_free{background-image:url("../openolat/images/ac/open-share.png")}div.b_access_method_list div.b_access_method_free legend{background-image:url("../openolat/images/ac/open-share.png")}.b_access_method_token_icon{background-image:url("../openolat/images/ac/license-key.png")}.b_group_accesscontrolled.b_access_method_token,b_order_icon.b_access_method_token{background-image:url("../openolat/images/ac/license-key.png")}div.b_access_method_list div.b_access_method_token legend{background-image:url("../openolat/images/ac/license-key.png")}div.b_access_method_list div.b_access_method_token div.b_form_element_wrapper:nth-last-of-type(3) label,table.b_access_method tr.b_access_method_token .b_access_infos{background-image:url("../openolat/images/ac/key.png");background-repeat:no-repeat;padding-left:20px}div.b_access_method_list div.b_form_element_wrapper:nth-last-of-type(4) label{background-image:url("../openolat/images/information-white.png");background-repeat:no-repeat;padding-left:20px}.b_access_method_paypal_icon{background-image:url("../openolat/images/ac/credit-cards.png")}#b_main_access_control{margin:0 20% 0 20%;padding:20px 0 0 20px}.b_order_status_new_icon{background-image:url(../openolat/images/new-text.png)}.b_order_status_prepayment_icon{background-image:url(../openolat/images/ac/prepayment.png)}.b_order_status_payed_icon{background-image:url(../openolat/images/tick.png)}.b_order_status_canceled_icon{background-image:url(../openolat/images/ac/canceled.png)}.b_order_status_error_icon{background-image:url(../images/olat/cross.png)}.b_order_status_warning_icon{background-image:url(../openolat/images/exclamation.png)}.b_transaction_status_success_icon{background-image:url(../openolat/images/tick.png)}.b_transaction_status_waiting_icon{background-image:url(../openolat/images/exclamation.png)}.b_transaction_status_error_icon{background-image:url(../openolat/images/cross.png)}.b_transaction_status_canceled_icon{background-image:url(../openolat/images/ac/canceled.png)}.b_transaction_status_new_icon{background-image:url(../openolat/images/new-text.png)}div.b_form div.b_form_element_wrapper table.b_access_method div.b_form_element{margin-left:0}div.b_form table.b_access_method div.b_form_element span.b_form_datechooser{background-position:0 50%}div.b_layer_1 div.b_modal_area{width:82%;margin:9%}div.b_layer_2 div.b_modal_area{width:76%;margin:12%}div.b_layer_3 div.b_modal_area{width:70%;margin:15%}div.b_layer_5 div.b_modal_area{width:64%;margin:18%}div.b_modal_area{position:absolute;top:0px;left:0px;width:80%;margin:10%;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_modal_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1}div.b_modal_overlay,div.ext-el-mask{background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=25);-moz-opacity:0.25;-khtml-opacity:0.25;opacity:0.25}div.b_window{text-align:left;border:1px solid red;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;background:#fff}div.b_window .b_window_header_wrapper{padding:2px 8px 0px 8px}div.b_window div.b_window_header{position:relative;border-bottom:1px solid #eee}div.b_window div.b_window_header_title{min-height:18px;line-height:18px;vertical-align:middle;padding:2px 5px 2px 5px}div.b_window div.b_window_header_title a.b_link_close{top:4px;right:4px;position:absolute;min-height:16px;min-width:16px;background:transparent url("../openolat/images/close.png") no-repeat center center;display:inline-block}div.b_window div.b_window_header_title a.b_link_close:hover{top:4px;right:4px}div.b_window div.b_window_header_title strong{font-weight:bold}div.b_window div.b_window_content_wrapper{clear:both;width:auto;padding:0 4px 0 4px}div.b_window div.b_window_content{padding:1em}div.b_window div.b_window_content_inner{min-height:200px;position:relative}div.b_window div.b_window_footer_wrapper{height:4px}div.b_callout_area{position:absolute;top:0px;left:0px;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=1);-moz-opacity:0.01;-khtml-opacity:0.01;opacity:0.01}div.b_callout{text-align:left;border:1px solid red;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;background:#fff}div.b_callout_content{max-width:60em;margin:10px;overflow:hidden}.b_callout_top_right_arrow{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #FFF;position:absolute;right:20px;top:-10px;z-index:1001}.b_callout_top_right_arrow-border{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid red;position:absolute;right:20px;top:-11px;z-index:1000}.b_callout_top_left_arrow{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #FFF;position:absolute;left:20px;top:-10px;z-index:1001}.b_callout_top_left_arrow-border{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid red;position:absolute;left:20px;top:-11px;z-index:1000}div.x-tip-tc,div.x-tip-bc{background-repeat:repeat !important}div.x-tip-body p{margin-bottom:0px}div.x-tip-mc{background:#e9f2ff !important}body.b_ajax_busy{cursor:wait}div.b_ajax_busy{position:absolute;z-index:5001;left:50%;top:10px;height:32px;width:32px;background-repeat:no-repeat;background-image:url(../openolat/images/ajax-loader.svg)}html.no-svg div.b_ajax_busy{background-image:url(../openolat/images/ajax-loader.gif)}div.b_msg_dialog{padding:10px 10px 10px 50px;min-height:32px;background:url(../openolat/images/icon_question_32.png) no-repeat 10px 10px}div.b_msg_dialog .b_msg_title{font-weight:bold}#b_msg_sticky,#b_msg_sticky_preview{clear:both;padding:10px 10px 10px 50px;min-height:32px;background:#ffb651 url(../openolat/images/icon_warning_32.png) no-repeat 10px 10px;border:none}div.b_msg-div{left:35%;position:absolute;top:10px;width:30%;z-index:20000;border:1px solid red;background:#FAFAFA;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_msg-div .b_msg_info_winicon{background:transparent url(../openolat/images/icon_info_32.png) no-repeat 10px center}div.b_msg_info_content{padding:10px 10px 10px 50px}div.b_msg_warn_winicon{background:url(../openolat/images/icon_warning_32.png) no-repeat}div.b_msg_error_winicon{background:url(../openolat/images/icon_error_32.png) no-repeat}#b_msg_info{padding:10px 10px 10px 50px;min-height:32px;background:url(../openolat/images/icon_info_32.png) no-repeat 10px 10px}#b_msg_info .b_msg_title{font-weight:bold}.o_infomessage_wrapper{margin:20px 0 20px 0}.o_infomessage_wrapper .o_infomessage{text-align:left}div.b_wizard{background:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border:1px solid red}div.b_wizard div.b_wizard_header_wrapper{background:transparent}div.b_wizard div.b_wizard_header{background:transparent;position:relative}div.b_wizard div.b_wizard_header_title{background:transparent;min-height:18px;line-height:18px;vertical-align:middle;padding:2px 5px 2px 5px}div.b_wizard div.b_wizard_header_title a.b_link_close{top:4px;right:4px;background:url(../openolat/images/close.png);background-repeat:no-repeat}div.b_wizard div.b_wizard_header_title strong{font-weight:bold}div.b_wizard div.b_wizard_steps_wrapper{clear:both;width:auto;padding:0 4px 0 4px;background:transparent}div.b_wizard div.b_wizard_steps_content{background:#fff;border:1px solid #555555;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px}div.b_wizard div.b_wizard_steps_list{width:20em;padding:0;color:#555555}div.b_wizard div.b_wizard_steps_list ol{list-style-type:decimal;z-index:14;font-size:100%;padding:2em 5px 5px}div.b_wizard div.b_wizard_steps_list li{line-height:1.5em;white-space:normal;margin-bottom:1em;list-style:none;padding-left:18px}div.b_wizard div.b_wizard_steps_list li.b_wizard_steps_current{font-weight:bold;background:url(../openolat/images/bullet_go.png) 0% 50% no-repeat;padding-left:18px}div.b_wizard div.b_wizard_steps_list li a{color:#555555}div.b_wizard div.b_wizard_steps_list li a:hover{color:#4F576A;background:transparent;text-decoration:underline}div.b_wizard div.b_wizard_steps_list li .b_disabled{color:#777777;border:0;background:transparent;padding:0;margin:0;white-space:normal;font-style:italic}div.b_wizard div.b_wizard_steps_list li.b_wizard_steps_current .b_disabled{color:#555555;font-style:normal}div.b_wizard div.b_wizard_steps_current{margin-left:20em;padding-top:0.5em;padding-bottom:0.5em}div.b_wizard div.b_wizard_steps_current_inner{padding:1em;border-left:1px solid #ccc}div.b_wizard div.b_wizard_steps_current_content{min-height:300px;position:relative}div.b_wizard div.b_wizard_footer_wrapper{background:transparent}div.b_wizard div.b_wizard_footer div.b_button_group{text-align:left;padding:0.5em 1em 0.5em 21em;margin:0}span.b_wizard_button_prev:before,a.b_wizard_button_prev span:before{content:"\00ab \00a0"}span.b_wizard_button_next:after,a.b_wizard_button_next span:after{content:" \00bb"}a.b_wizard_button_finish,span.b_wizard_button_finish{margin-left:3em}a.b_wizard_button_cancel,span.b_wizard_button_cancel{margin-left:3em}.b_wizard_table_changedcell{font-style:italic;font-weight:bold;background:url(../openolat/images/new-text.png) no-repeat;padding-left:18px}div.b_legacy_wizard_steps{float:right;display:inline}.b_legacy_wizard_step_a1{background-image:url(../openolat/images/wizard/1a.png)}.b_legacy_wizard_step_a2{background-image:url(../openolat/images/wizard/2a.png)}.b_legacy_wizard_step_a3{background-image:url(../openolat/images/wizard/3a.png)}.b_legacy_wizard_step_a4{background-image:url(../openolat/images/wizard/4a.png)}.b_legacy_wizard_step_a5{background-image:url(../openolat/images/wizard/5a.png)}.b_legacy_wizard_step_a6{background-image:url(../openolat/images/wizard/6a.png)}.b_legacy_wizard_step_a7{background-image:url(../openolat/images/wizard/7a.png)}.b_legacy_wizard_step_a8{background-image:url(../openolat/images/wizard/8a.png)}.b_legacy_wizard_step_a9{background-image:url(../openolat/images/wizard/9a.png)}.b_legacy_wizard_step_p1{background-image:url(../openolat/images/wizard/1p.png)}.b_legacy_wizard_step_p2{background-image:url(../openolat/images/wizard/2p.png)}.b_legacy_wizard_step_p3{background-image:url(../openolat/images/wizard/3p.png)}.b_legacy_wizard_step_p4{background-image:url(../openolat/images/wizard/4p.png)}.b_legacy_wizard_step_p5{background-image:url(../openolat/images/wizard/5p.png)}.b_legacy_wizard_step_p6{background-image:url(../openolat/images/wizard/6p.png)}.b_legacy_wizard_step_p7{background-image:url(../openolat/images/wizard/7p.png)}.b_legacy_wizard_step_p8{background-image:url(../openolat/images/wizard/8p.png)}.b_legacy_wizard_step_p9{background-image:url(../openolat/images/wizard/9p.png)}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs{float:left;display:inline-block;margin-bottom:1em}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul{line-height:1em;list-style:none;margin:0;padding:0;white-space:nowrap}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;margin:0;float:left;display:inline;position:relative}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul strong{background:transparent;color:#667;display:block;font-weight:normal;padding:1px 6px 1px 5px;text-decoration:none;text-transform:none}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul > ul a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul > ul strong{width:auto}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:focus,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:hover,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:active{moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:focus,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:hover,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:active{color:#000;text-decoration:none}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active{moz-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-ms-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-o-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-webkit-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);background:#eee;border-color:#ccc}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active strong{color:#000;font-weight:bold}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled{background:white !important}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled strong{color:#8994A9;background:transparent !important;font-weight:normal}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled:hover{moz-box-shadow:0 0 0 white;-ms-box-shadow:0 0 0 white;-o-box-shadow:0 0 0 white;-webkit-box-shadow:0 0 0 white;box-shadow:0 0 0 white}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_first{-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:0px;-webkit-border-bottom-right-radius:0px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-topleft:3px;-moz-border-radius-topright:0px;-moz-border-radius-bottomright:0px;-moz-border-radius-bottomleft:3px;border-top-left-radius:3px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:3px}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_last{-webkit-border-top-left-radius:0px;-webkit-border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:0px;-moz-border-radius-topleft:0px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px;-moz-border-radius-bottomleft:0px;border-top-left-radius:0px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:0px}div.b_tabbedpane_wrapper div.b_tabbedpane_content{clear:both;padding:5px 15px;background:transparent;border:1px solid #d4d4d4}div.b_tabbedpane_wrapper div.b_tabbedpane_content div.b_tabbedpane_content_inner{position:relative;min-height:30em}div.b_segments_container{min-height:25px;padding-top:8px;position:relative;background:url(../openolat/images/divider.png) center top no-repeat}div.b_segments_container div.b_segments{clear:both;position:absolute;left:50%}div.b_segments_container div.b_segments a:hover{text-decoration:none}div.b_segments_container div.b_segments ul{position:relative;left:-50%;list-style-type:none;margin:0}div.b_segments_container div.b_segments ul li{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;margin:0;float:left;display:inline;position:relative}div.b_segments_container div.b_segments ul li a{background:transparent;color:#667;display:block;font-weight:normal;padding:1px 6px 1px 5px;text-decoration:none;text-transform:none}div.b_segments_container div.b_segments ul li a:hover,div.b_segments_container div.b_segments ul li a:active,div.b_segments_container div.b_segments ul li a:focus{text-decoration:none}div.b_segments_container div.b_segments ul li:hover{moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}div.b_segments_container div.b_segments ul li.b_segment_selected{moz-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-ms-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-o-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-webkit-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);background:#eee;border-color:#ccc}div.b_segments_container div.b_segments ul li.b_segment_selected a,div.b_segments_container div.b_segments ul li.b_segment_selected strong{color:#000;font-weight:bold}div.b_segments_container div.b_segments ul li.b_segment_first{-webkit-border-top-left-radius:12px;-webkit-border-top-right-radius:0px;-webkit-border-bottom-right-radius:0px;-webkit-border-bottom-left-radius:12px;-moz-border-radius-topleft:12px;-moz-border-radius-topright:0px;-moz-border-radius-bottomright:0px;-moz-border-radius-bottomleft:12px;border-top-left-radius:12px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:12px}div.b_segments_container div.b_segments ul li.b_segment_last{-webkit-border-top-left-radius:0px;-webkit-border-top-right-radius:12px;-webkit-border-bottom-right-radius:12px;-webkit-border-bottom-left-radius:0px;-moz-border-radius-topleft:0px;-moz-border-radius-topright:12px;-moz-border-radius-bottomright:12px;-moz-border-radius-bottomleft:0px;border-top-left-radius:0px;border-top-right-radius:12px;border-bottom-right-radius:12px;border-bottom-left-radius:0px}div.b_segments_container div.b_segment_content{margin-top:50px;clear:both;padding:5px 15px;background:transparent;border:1px solid #d4d4d4}button{border:none}.b_button{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_button,.b_button span{color:#444;font-size:100%;display:inline-block;padding:0 0.8em;width:auto;line-height:1.9em;text-align:center}.b_button:focus,.b_button:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_button:focus{border:1px solid red}.b_button:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border:1px solid red}.b_button.b_button_preferred{background:#f7d1d1;background:-moz-linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f7d1d1), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);background:linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);border:1px solid red}.b_button:focus,.b_button:hover{border:1px solid #aaa}.b_button_dirty{background:white;background:-moz-linear-gradient(top, white 0%, #fff7e0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #fff7e0));background:-webkit-linear-gradient(top, white 0%, #fff7e0 100%);background:-o-linear-gradient(top, white 0%, #fff7e0 100%);background:-ms-linear-gradient(top, white 0%, #fff7e0 100%);background:linear-gradient(top, white 0%, #fff7e0 100%);border-color:#ff9900}.b_button_dirty:focus,.b_button_dirty:hover{text-decoration:none;border:1px solid #ff9f5b;background:white;background:-moz-linear-gradient(top, white 0%, #fff7e0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #fff7e0));background:-webkit-linear-gradient(top, white 0%, #fff7e0 100%);background:-o-linear-gradient(top, white 0%, #fff7e0 100%);background:-ms-linear-gradient(top, white 0%, #fff7e0 100%);background:linear-gradient(top, white 0%, #fff7e0 100%)}.b_disabled.b_button{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border:1px dotted #ccc;background:#fff}.b_disabled.b_button,.b_disabled.b_button span{color:#444;font-size:100%;display:inline-block;padding:0 0.8em;width:auto;line-height:1.9em;text-align:center;cursor:default !important;color:#888}.b_disabled.b_button:focus,.b_disabled.b_button:hover{moz-box-shadow:0 0 0 transparent;-ms-box-shadow:0 0 0 transparent;-o-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent}div.b_button_group{text-align:center;margin:2em 0 1em 0}div.b_button_group div{display:inline}.b_xsmall,sup,sub{font-size:80%}.b_small,small{font-size:90%}a.b_toggle{white-space:nowrap;margin:0 0.5em 0.2em 0;cursor:default;color:#2C2B2B;border:1px solid #aaa;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;display:inline-block;line-height:1.5em;text-align:center;background:url(../openolat/images/toggle_off.png) top left repeat-x}a.b_toggle span{padding:0 0.8em}a.b_toggle:hover{background:#ddd;text-decoration:none}a.b_toggle.b_on:hover{background:#747474}a.b_toggle.b_on,a.b_toggle:active,a.b_toggle.b_on:active{color:white;border:none;padding:1px;moz-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-ms-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-o-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-webkit-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);text-shadow:1px 1px 2px rgba(0, 0, 0, 0.5)}a.b_toggle:focus,a.b_toggle.b_on:focus{text-decoration:none}a.b_toggle:active,a.b_toggle.b_on:active{background:url(../openolat/images/toggle_active.png) top left repeat-x}a.b_toggle.b_on{background:url(../openolat/images/toggle_on.png) top left repeat-x}span.b_toggle.b_disabled{white-space:nowrap;margin:0 0.5em 0.2em 0;padding:0 0.8em;color:#667;border:1px solid #DDD;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;display:inline-block;line-height:1.5em;text-align:center;background:url(../openolat/images/toggle_dis.png) top left repeat-x}a.b_toggle_slide{background:url(../openolat/images/handle.png) -63px 0px no-repeat;height:25px;width:85px;white-space:nowrap;margin:0 0.2em 0.2em 0.2em;color:#2C2B2B;border:1px solid #aaa;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;display:inline-block;text-align:center;vertical-align:middle;position:relative}a.b_toggle_slide span{position:absolute;top:-25px;left:0}a.b_toggle_slide:hover,a.b_toggle_slide:focus,a.b_toggle_slide:active,a.b_toggle_slide.b_on:hover,a.b_toggle_slide.b_on:focus,a.b_toggle_slide.b_on:active{border:1px solid #868686;text-decoration:none}a.b_toggle_slide.b_on{background-position:-16px 0px}a.b_toggle_slide.b_disabled{background:url(../openolat/images/handle_dis.png) -63px 0px no-repeat;height:25px;width:85px;white-space:nowrap;margin:0 0.5em 0.2em 0;color:#2C2B2B;border:1px solid #aaa;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;display:inline-block;text-align:center;vertical-align:middle}a.b_toggle_slide.b_small{background:url(../openolat/images/handle_small.png) -41px 0px no-repeat;height:16px;width:55px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}a.b_toggle_slide span{position:absolute;top:-16px}a.b_toggle_slide.b_small.b_on{background-position:-9px 0px}span.b_toggle_slide.b_disabled{background:url(../openolat/images/handle_small_dis.png) -41px 0px no-repeat;height:16px;width:55px;white-space:nowrap;margin:0 0.5em 0.2em 0;color:#2C2B2B;border:1px solid #aaa;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;display:inline-block;text-align:center;vertical-align:middle}span.b_toggle_slide_legend{font-size:90%}.b_link_back{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_link_back > span{padding:0px 8px 0px 25px;background:transparent url("../openolat/images/arrow_left_big.png") no-repeat 4px center}.b_link_back:focus,.b_link_back:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_link_back:focus{border-color:red}.b_link_back:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border-color:red}.b_link_left_icon{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_link_left_icon > span{padding:2px 8px 0px 25px;background-color:transparent;background-repeat:no-repeat;background-position:4px center}.b_link_left_icon:focus,.b_link_left_icon:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_link_left_icon:focus{border-color:red}.b_link_left_icon:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border-color:red}.b_link_to_home > span{background-image:url("../openolat/images/card-address.png")}.b_link_course > span{background-image:url("../openolat/images/book-open-next.png")}.b_link_group > span{background-image:url("../openolat/images/document-page-next.png")}.b_link_mail > span{background-image:url("../openolat/images/mail.png")}.b_link_assessment > span{background-image:url("../openolat/images/le_resources/thumb-up.png")}.b_link_ok > span{background-image:url("../openolat/images/tick.png")}.b_link_nok > span{background-image:url("../openolat/images/cross.png")}.b_link_edit > span{background-image:url("../openolat/images/docs/document--pencil.png")}.b_move_left_icon > span{background-image:url("../openolat/images/arrow_left_big.png")}.b_move_right_icon > span{background-image:url("../openolat/images/arrow_right_big.png")}.b_remove_icon > span{background-image:url("../openolat/images/cross_small.png")}.b_deletableentry_wrapper .b_link_left_icon{border:none;background:inherit;margin:0}.b_deletableentry_wrapper .b_link_left_icon:focus,.b_deletableentry_wrapper .b_link_left_icon:hover,.b_deletableentry_wrapper .b_link_left_icon:focus,.b_deletableentry_wrapper .b_link_left_icon:active{text-decoration:none;border:none;moz-box-shadow:0 0 0 transparent;-ms-box-shadow:0 0 0 transparent;-o-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent}div.o_login div.o_login_form{margin-bottom:2em}div.o_login div.o_login_form li{list-style:none}div.o_login div.o_login_form fieldset legend{display:none}div.o_login div.o_login_form input{width:15em;padding:2px 3px 2px 3px}div.b_form div.b_form_desc{padding-bottom:1em;font-style:italic}input,select,textarea{border:1px solid #ACAAAA;background:#F6F6F6;line-height:1.3em;margin:0}textarea{font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{background:#fff;border:1px solid #504D4E}input.b_checkbox,input.b_radio{height:1em;width:1em;border:0;margin:0 2px 0 0}label.b_checkbox_label,label.b_radio_label{padding-left:0.5em}.b_inline_editable{padding:1px 20px 1px 0;vertical-align:middle;min-height:16px}.b_inline_editable:hover{background-position:100% 50%;background-repeat:no-repeat;background-image:url(../openolat/images/pencil-small.png)}span.b_inline_editable:hover{cursor:text !important}fieldset{position:relative;padding:1em;padding-top:1.5em;border:none;border-top:1px solid #ff6666}fieldset legend{font-family:Comic Sans, Comic Sans MS, cursive;padding:0 5px;font-size:120%;font-weight:bold}div.b_form div.b_form_desc{padding-bottom:1em;font-style:italic}div.b_form div.b_form_general_error{padding:10px 10px 10px 50px;margin-bottom:20px;text-align:left;background:url(../openolat/images/icon_error_32.png) no-repeat 10px 10px;min-height:32px;border:1px solid #990000;color:#990000;font-style:italic}div.b_form div.b_form_spacer{margin:10px 0}div.b_form hr.b_form_spacer{margin:10px 0;border-bottom:1px solid #eee;padding:0}div.b_form hr.b_form_spacer.b_form_horizontal{display:inline-block;width:2em}div.b_form hr.b_form_spacer.b_form_spacer_noline{margin:10px 0;border-bottom:0;padding:0}div.b_form div.b_form_element_wrapper{vertical-align:middle;margin:0.5em 0}div.b_form div.b_form_element_wrapper.b_form_horizontal{vertical-align:middle;margin:0.5em 1em 0.5em 0;float:left;display:inline}div.b_form div.b_form_element_wrapper.b_form_vertical{vertical-align:middle;margin:0.5em 0;float:none;display:block}div.b_form div.b_form_element_wrapper div.b_form_element_label{width:20%;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element_label label{float:left;display:inline;line-height:1.3em}div.b_form div.b_form_element_wrapper div.b_form_element_label span.b_form_mandatory{background:url(../openolat/images/star-small.png) no-repeat;padding-left:16px;height:16px}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_horizontal{width:auto;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_vertical{width:auto;float:none;display:block;margin-top:1em;margin-bottom:0.3em}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_vertical label{float:none}div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:25%;padding:0 2px 0 12px}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_horizontal{margin-left:0;padding-left:0;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_horizontal .b_button{float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_vertical{margin-left:0;margin-top:0.5em;padding-left:0;float:none;display:block;clear:both}div.b_form div.b_form_element_wrapper.b_form_error input,div.b_form div.b_form_element_wrapper.b_form_error select{border:1px solid #990000;background:#ebcccc}div.b_form div.b_form_element_wrapper div.b_form_error_msg{clear:both;color:#990000;font-style:italic;display:block}div.b_form div.b_form_element_wrapper div.b_form_element_wrapper{margin:0}div.b_form div.b_button_group{margin-left:0%;padding-left:0px;text-align:left}div.b_form.b_form_vertical div.b_button_group{text-align:left}div.b_form div.b_form_element div.b_form_example{display:inline;font-size:80%;color:#504D4E}div.b_form div.b_form_element div.b_inline_elements div{display:inline}div.b_form div.b_form_element .b_form_disabled{color:#504D4E}div.b_form div.b_form_element .b_form_element_disabled{color:#9E9C9C;background:#EEEEEE;border:1px solid #CDCBCB}div.b_form div.b_form_element span.b_form_datechooser{background:url(../openolat/images/calendar.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px;padding-top:3px}div.b_form div.b_form_element a.b_form_groupchooser{background:url(../openolat/images/users.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}div.b_form div.b_form_element a.b_form_genericchooser{background:url(../openolat/images/users.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}div.b_form div.b_form_element a.b_form_wikitext{background-repeat:no-repeat;padding-left:12px;line-height:1.5em;font-style:italic}div.b_form div.b_form_element a.b_form_wikitext,div.b_form div.b_form_element .b_wiki_icon{background-image:url(../openolat/images/wiki/wiki_small_9px.png)}div.b_labels_minified div.b_form div.b_form_element_wrapper div.b_form_element_label{width:10%}div.b_labels_minified div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:12%}div.form_shift_left{left:-25%}div.b_button_group div.b_form_element_wrapper{vertical-align:middle;margin:0.5em 0;float:none;display:block}div.b_button_group div.b_form_element_wrapper div.b_form_element_label{width:auto;float:none;display:block}div.b_button_group div.b_form_element_wrapper div.b_form_element{margin-left:0}.b_subcolumns{display:table;width:100%;table-layout:fixed}.b_c25l input,.b_c25r input{max-width:93%}div.calendar{z-index:10000 !important}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element{margin:0;float:left}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element_label{float:none;width:auto;display:block;padding-left:2.5em}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element_label label{float:none}div.b_form_subform{padding-left:2.5em}div.b_form_selection_vertical div.b_form_selection_element{vertical-align:middle;line-height:1.3em;position:relative}div.b_form_selection_vertical div.b_form_selection_element input{vertical-align:middle;line-height:1.3em}div.b_form_selection_horizontal div.b_form_selection_element{float:left;display:inline;padding-right:1em}div.b_form_selection_horizontal div.b_form_selection_element input{vertical-align:middle}div.b_form div.b_form_element div.b_form_togglecheck{font-size:95%;display:block;vertical-align:middle;line-height:16px;margin-top:0.5em}div.b_form div.b_form_element div.b_form_togglecheck input{height:1em;width:1em}div.o_form_wrapper fieldset{min-width:60em}div.form_shift_left{position:inherit;left:-20%}div.mceExternalToolbar{background:#f0f0ee !important;overflow:auto}table.b_choice{padding:0;margin:0}table.b_choice td{padding:0.1em;margin:0}table.b_choice td.b_togglecheck{padding-top:1em}table.b_choice td.b_togglecheck div.b_togglecheck{display:inline;border-top:1px solid #eee}table.b_choice td.b_togglecheck input{margin:0 7px 0 2px}div.b_fileinput{position:relative}div.b_fileinput div.b_fileinput_fakechooser{position:relative;top:0px;left:0px;z-index:1;display:inline;white-space:nowrap}div.b_fileinput div.b_fileinput_fakechooser a{margin-left:5px}div.b_fileinput span.b_fileinput_maxsize{padding:1px 0 1px 1em;font-style:italic;min-height:16px;vertical-align:middle}div.b_fileinput input.b_fileinput_realchooser{position:absolute;top:0;left:0;height:1.8em;z-index:2;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0}div.b_fileinput div.b_button_group{text-align:left;padding-left:0;margin-left:0}.b_fileinput_icon{background-image:url(../openolat/images/drive.png)}div.b_progress div.b_progress_bar{height:12px;border:1px solid #bfbfbf;background:#ffcccc}div.b_progress div.b_progress_bar div{height:12px;background:#ff6666;background:-moz-linear-gradient(top, #ff6666 0%, red 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ff6666), color-stop(100%, red));background:-webkit-linear-gradient(top, #ff6666 0%, red 100%);background:-o-linear-gradient(top, #ff6666 0%, red 100%);background:-ms-linear-gradient(top, #ff6666 0%, red 100%);background:linear-gradient(top, #ff6666 0%, red 100%)}.b_mark_set{background-image:url("../openolat/images/flag.png") !important}.b_mark_not_set{background-image:url("../openolat/images/flag_off.png") !important}div.b_mark{width:20px;height:20px}div.b_mark div.b_form_element_wrapper{margin:0}div.b_mark div.b_form_element_wrapper div.b_form_element{margin:0;padding:0}div.b_mark a{background-position:center right;background-repeat:no-repeat;display:block;width:20px;height:20px}div.b_mark a span{display:block;width:19px;height:19px}div.b_mark a:hover{text-decoration:none}button::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,input[type="button"]::-moz-focus-inner,input[type="submit"]::-moz-focus-inner,input[type="file"] > input[type="button"]::-moz-focus-inner{padding:0;border:0}table{border-collapse:collapse;margin-bottom:0.5em;border-top:0px solid white;border-bottom:0px solid white}table caption{font-variant:small-caps}table.fixed{table-layout:fixed}table th,table td{padding:0.3em}table thead th{color:inherit;border-bottom:1px solid #ccc}table tbody tr.b_table_odd td{background:#eee}table tbody tr.b_row_selected td{background:#ff9f5b}div.b_table_drag{padding:5px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border:1px solid red;moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}div.b_table_wrapper table{width:99.5%;margin-left:1px;border:1px solid #eeeeee}div.b_table_wrapper table thead,div.b_table_wrapper table thead a{color:#025d8c}div.b_table_wrapper table tbody tr:hover td{background:#ffdbc1}div.b_table_wrapper table tbody tr.b_row_selected:hover td{background:#ff9f5b}div.b_table_wrapper table tbody a{color:#025d8c}div.b_table_wrapper table tbody a:hover{color:#025d8c}div.b_table_wrapper div.b_table_filter{float:left;display:inline;font-size:95%;margin:7px 10px 2px 0}div.b_table_wrapper div.b_table_filter label{font-style:italic;margin:5px 0 2px 0}div.b_table_wrapper div.b_table_filter select{border:1px solid #ACAAAA}div.b_table_wrapper div.b_clearfix div.b_floatbox{margin:5px 0 0 0}div.b_table_wrapper div.b_table_count{font-size:95%;float:left;line-height:16px;vertical-align:bottom;margin:3px;font-size:95%}div.b_table_wrapper a.b_table_prefs,div.b_table_wrapper a.b_table_download{float:right;display:block;background-repeat:no-repeat;background-position:top left;width:16px;height:16px;margin:3px}div.b_table_wrapper a.b_table_prefs{background-image:url(../openolat/images/table_gear.png)}div.b_table_wrapper a.b_table_download{background-image:url(../openolat/images/table_download.png)}div.b_table_wrapper div.b_table_buttons{text-align:center;margin:1.5em 0 1em 0}div.b_table_wrapper div.b_table_empty{margin:1em 0}div.b_table_wrapper div.b_table_footer{float:left;margin:5px 0 0 10px}div.b_table_wrapper div.dataTables_info{float:left;margin:5px 0 0 0}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_previous{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_previous:hover{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_disabled_previous{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_next{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_next:hover{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .paginate_disabled_next{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .sorting{background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_asc{background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_desc{background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_asc_disabled{background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_desc_disabled{background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper div.dataTables_scrollBody table.dataTable{border-top:none}div.b_table_wrapper .dataTables_wrapper div.dataTables_scrollBody table.dataTable thead th{border:none}div.b_table_wrapper .dataTables_wrapper table.dataTable thead th{border-bottom:1px solid #ccc;color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tbody a{color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tbody a:hover{color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.even td.sorting_1{background:#eee}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.odd{background-color:#fff}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.odd td.sorting_1{background:#fff}div.b_table_page{font-size:95%;text-align:center}div.b_table_page a{margin:0;padding:2px}div.b_table_page a.b_table_page_active{font-weight:bold;color:#000}div.b_table_page a.b_table_backward{background:url(../openolat/images/arrow_left.png) no-repeat center left;padding-left:16px}div.b_table_page a.b_table_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}div.b_table_page a.b_table_first_page{background:url(../openolat/images/home.png) no-repeat center left;padding-left:18px}div.b_table_page_all{font-size:95%;text-align:center}a.b_dev{position:absolute;left:0;top:0;z-index:4000;background:red url("../openolat/images/bug.png") no-repeat;width:16px;height:16px;border:1px solid #000}#b_devcon_main{background-color:#ccddff;position:absolute;z-index:4000;top:10px;left:5%;width:90%;text-align:left;border:1px solid #000}#b_devcon_handle{cursor:move;background:blue url(../openolat/images/bug.png) no-repeat 4px 50%;line-height:2em;padding-left:24px;color:white}a#b_devcon_handle_collapse{cursor:pointer;background:url("../openolat/images/tree_parent_open.gif") no-repeat;width:15px;height:15px;float:right;margin:3px}a#b_devcon_handle_expand{cursor:pointer;background:url("../openolat/images/tree_parent_closed.gif") no-repeat;width:15px;height:15px;float:right;margin:3px}a.b_devcon_handle_close{cursor:pointer;background:url(../openolat/images/close.png) no-repeat;width:15px;height:15px;float:right;margin:3px}#b_devcon_content{font-size:90%;padding:5px;border-top:0px solid #000;background:transparent}#b_devcon_content ul{float:left;margin:0;padding:0;list-style:none;white-space:nowrap}#b_devcon_content li{margin:0;padding:0 10px 0 0;float:left}#b_devcon_content fieldset{border-top:1px solid #ccc;margin:0;padding:8px}#b_devcon_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}#b_js_log textarea#o_debug_cons{width:99%;height:15em;font-family:monospace;font-size:110%;margin:5px 0 5px 0}iframe.o_debug_json{position:fixed;width:90%;margin-left:5%;bottom:4px;height:300px;background:white;border:2px solid #ccd8e7;z-index:90000}div.b_briefcase div.b_briefcase_foldercomp{margin-top:0.5em}div.b_briefcase_foldercomp div.b_briefcase_createactions{margin:0.5em 0}div.b_briefcase_foldercomp div.b_briefcase_createactions ul{list-style:none;margin:0;padding:0;white-space:nowrap;font-size:95%}div.b_briefcase_foldercomp div.b_briefcase_createactions ul li{float:right;display:inline;margin:0 0 0 1em;padding:0 0 0 3px;position:relative}div.b_briefcase_foldercomp div.b_briefcase_createactions ul li a{background-position:0 50%;background-repeat:no-repeat;padding:2px 0 2px 20px}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_upload{background-image:url(../openolat/images/docs/document_upload.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_newfolder{background-image:url(../openolat/images/folder_new.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_newfile{background-image:url(../openolat/images/docs/document_add.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_deletedfiles{background-image:url(../openolat/images/docs/document_remove.png)}div.b_briefcase_foldercomp div.b_briefcase_breadcrumb{clear:both;padding:1px 0 1px 20px;margin:0.5em 0 0 0;background:url(../openolat/images/folder_open.png) no-repeat 0 50%}div.b_briefcase_foldercomp div.b_briefcase_empty{clear:both;margin-top:0.5em;font-style:italic}div.b_briefcase_foldercomp table.b_briefcase_filetable{clear:both;border-collapse:collapse;margin-bottom:0.5em;background:#fff;width:99.9%;border:1px solid #eee}div.b_briefcase_foldercomp table.b_briefcase_filetable thead{color:#000}div.b_briefcase_foldercomp table.b_briefcase_filetable thead a,div.b_briefcase_foldercomp table.b_briefcase_filetable thead span{color:#4F576A;font-weight:bold}div.b_briefcase_foldercomp table.b_briefcase_filetable thead a:hover,div.b_briefcase_foldercomp table.b_briefcase_filetable thead a:focus{color:#000000;text-decoration:none;background-color:transparent}div.b_briefcase_foldercomp table.b_briefcase_filetable th,div.b_briefcase_foldercomp table.b_briefcase_filetable td{white-space:nowrap;text-align:right;padding-right:1em}div.b_briefcase_foldercomp table.b_briefcase_filetable th.b_last_child,div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_last_child{padding-right:0}div.b_briefcase_foldercomp table.b_briefcase_filetable th.b_first_child,div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_first_child{width:60%;text-align:left}div.b_briefcase_foldercomp table.b_briefcase_filetable td input.b_checkbox{margin:0 4px 0 0}div.b_briefcase_foldercomp table.b_briefcase_filetable td a:hover,div.b_briefcase_foldercomp table.b_briefcase_filetable td a:focus{background-color:transparent}div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_last_child{padding-left:0}div.b_briefcase_foldercomp table.b_briefcase_filetable tr:hover td{background:#ffdbc1}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions{border:0;padding:0;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions td{border:0;padding:0 0 0 3px;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions tr{border:0;padding:0;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_edit_file_icon{background-image:url(../openolat/images/docs/document--pencil.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_edit_meta_icon{background-image:url(../openolat/images/docs/document_metadata_edit.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_edit_meta_dis_icon{background-image:url(../openolat/images/docs/document_metadata_edit.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_versions_icon{background-image:url(../openolat/images/docs/document_versions.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_versions_dis_icon{background-image:url(../openolat/images/docs/document_versions.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_locked_file_icon{background-image:url(../openolat/images/locked.png)}div.b_briefcase_preview{background-color:white;width:200px;height:200px;border:1px solid #8EAACE;margin-top:2px}div.b_briefcase div.b_briefcase_searchcomp{float:left;display:inline;margin:0.5em 0;width:14em}div.b_briefcase div.b_briefcase_searchcomp input{width:10em}div.b_briefcase div.b_briefcase_searchcomp div.b_form_element_wrapper.b_form_horizontal{margin:0}div.b_briefcase div.b_briefcase_commandbuttons{margin:1em 0}div.b_briefcase div.b_briefcase_webdav{margin:0.5em 0}div.b_briefcase div.b_briefcase_quota{clear:both;margin-top:1em;padding-top:1em;border-top:1px solid #000}div.b_briefcase_meta{size:0.8em}div.b_briefcase_meta p{font-style:italic;margin:0;padding-top:2px}div.b_send_documents ol.textbox-outer{margin-left:0;border:1px solid #ACAAAA;background:#F6F6F6;line-height:1.3em}div.b_send_documents ol li{margin-left:0}div.b_send_documents textarea{overflow:auto;resize:none}@media all{div.o_wiki_wrapper{clear:both}div.o_wiki_wrapper div.o_wikimod_btn{position:relative}div.o_wiki_wrapper div.o_wikimod_btn a{margin-bottom:9px;background-repeat:no-repeat;background-position:center center;width:20px;height:19px;float:left;display:inline;padding-left:2px;border:1px solid #ccc;background-color:#eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;margin-right:2px}div.o_wiki_wrapper div.o_wikimod_btn a:hover{border:1px solid red}div.o_wiki_wrapper div.o_wikimod_btn div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:0;right:0}div.o_wiki_wrapper a.o_wikimod_btn_bold{background-image:url(../openolat/images/wiki/edit-bold.png)}div.o_wiki_wrapper a.o_wikimod_btn_italic{background-image:url(../openolat/images/wiki/edit-italic.png)}div.o_wiki_wrapper a.o_wikimod_btn_link{background:url(../openolat/images/wiki/chain.png)}div.o_wiki_wrapper a.o_wikimod_btn_extlink{background:url(../openolat/images/wiki/chain--arrow.png)}div.o_wiki_wrapper a.o_wikimod_btn_headline{background:url(../openolat/images/wiki/edit-heading.png)}div.o_wiki_wrapper a.o_wikimod_btn_image{background:url(../openolat/images/wiki/image-medium.png)}div.o_wiki_wrapper a.o_wikimod_btn_media{background:url(../openolat/images/music-beam.png)}div.o_wiki_wrapper a.o_wikimod_btn_math{background:url(../openolat/images/wiki/edit-math.png)}div.o_wiki_wrapper a.o_wikimod_btn_nowiki{background:url(../openolat/images/wiki/edit-nowiki.png)}div.o_wiki_wrapper a.o_wikimod_btn_hr{background:url(../openolat/images/wiki/edit-hr.png)}div.o_wiki_wrapper a.o_wikimod_btn_list{background:url(../openolat/images/wiki/edit-list.png)}div.o_wiki_wrapper a.o_wikimod_btn_numlist{background:url(../openolat/images/wiki/edit-list-order.png)}div.o_wiki_wrapper .b_eportfolio_add,div.o_wiki_wrapper .b_eportfolio_add_again{position:absolute;top:28px;right:3px;z-index:99}div.o_wiki_wrapper h1{font-size:1.6em}div.o_wiki_wrapper h2{font-size:1.4em}div.o_wiki_wrapper h3{font-size:1.2em}div.o_wiki_wrapper h4{font-size:1.1em}div.o_wiki_wrapper h5{font-size:1.0em}div.o_wikimod_linkchooser{clear:both;float:left;display:inline}div.o_wikimod_filechooser{margin:0 2em;float:left;display:inline}div.o_wikimod_nav{font-size:90%;padding-top:1.5em}div.o_wikimod_nav legend{font-size:95%}div.o_wikimod_nav fieldset{padding:0.5em}div.o_wikimod_nav input{width:99%}div.o_wikimod_nav ul{margin:0;padding:0}div.o_wikimod_nav div.b_button_group{margin:0.5em 0;text-align:left}div.o_wikimod_nav div.b_form div.b_form_element_wrapper.b_form_horizontal{margin:0}div.o_wikimod_nav .b_form_element_wrapper .b_form_element{padding:0}div.o_wikimod_nav div.b_form_element_wrapper div.b_form_element.b_form_horizontal .b_button{margin:0.5em 0}div.o_wikimod_editform_wrapper{clear:both;padding:0.5em 0 0 0}div.o_wikimod_editform_wrapper div.b_form div.b_form_element_wrapper div.b_form_element_label{display:none}div.o_wikimod_editform_wrapper div.b_form div.b_form_element_wrapper div.b_form_element{clear:both;margin-left:0;padding:0 5px 0 0}div.o_wikimod_editform_wrapper div.b_form div.b_button_group{margin-left:0;text-align:center}div.o_wikimod-article-box table[border="1"]{border-collapse:collapse;border:1px solid #BFBFBF}h1.o_wikimod_heading,h3.o_wikimod_heading{margin:0 0 1em 0;padding:.5em 0 .17em 0;border-bottom:1px solid #BFBFBF}#o_wikimod_uploader{margin:1em 0 0 0}.o_wikimod_version{border:1px solid #BFBFBF;padding:4px;margin-top:5px}.o_wikimod_diff{border:1px solid #BFBFBF;padding:4px;margin:0px}.o_wikimod_warn{color:#DF9719}.o_wiki_error{background-color:#DF9719}.o_wikimod_ins{background-color:#A4DCA4}.o_wikimod_old{background-color:#FFCCCC}.o_wikimod_new{background-color:#A4DCA4}.o_wikimod_del{background-color:#FFCCCC}.wiki-image{float:right;padding:10px;clear:right}.wiki-file-deleted{text-decoration:line-through}img.wikiimg{border:0px}a.wikiimg{text-decoration:none;color:inherit;font-weight:inherit}div.imgcaption{padding:0.3em 0em 0.2em 0.3em}div.imgleft{clear:left;float:left;margin:0.3em 0.3em 0.3em 0em;text-align:left}div.imgright{clear:right;float:right;margin:0.3em 0em 0.3em 0.3em;text-align:right}div.o_wikimod-article-box div{width:auto !important}div.imgcenter{clear:both;overflow:hidden;text-align:center;margin:0.3em 0em 0.3em 0em}div.imgthumb{border:1px solid #bbbbbb;padding:0.3em}table.gallery{border:1px solid #B8B8DB;margin:2px;padding:2px;background-color:white}table.gallery tr{vertical-align:middle}table.gallery td{background-color:#EEEEEE;border:solid 2px #B8B8DB;text-align:center;vertical-align:middle;width:150px}img.gallery{border:1px solid #B8B8DB;padding:0.3em}a.edit{font-style:italic;color:#E98F8F}a.externallink:before{content:url("../openolat/images/external_link.png");padding-right:2px}pre{padding:1em;border:1px dashed #B8B8DB;color:black;background-color:#EEEEEE;line-height:1.1em}}div.o_forum div.o_forum_switch{font-size:90%}div.o_forum div.o_forum_message{margin:1em 0 1em 0;padding:0.5em;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;background:#eeeeee}div.o_forum div.o_forum_message_header_wrapper{min-height:24px}div.o_forum div.o_forum_message_header_wrapper div.o_forum_message_header{min-height:24px}div.o_forum div.o_forum_message_title{vertical-align:middle;padding:2px 5px 2px 5px;min-height:24px}div.o_forum div.o_forum_message_title strong{font-weight:bold}div.o_forum div.o_forum_message_new div.o_forum_message_title strong{background:url(../openolat/images/new-text.png) no-repeat top right;padding-right:20px}div.o_forum div.o_forum_message_creator{width:100px;padding:0.5em 12px 0px 21px;font-size:95%;color:#4F576A;float:right;border-left:1px solid #fff}div.o_forum div.o_forum_message_creator strong{font-weight:normal}div.o_forum div.o_forum_message_creator img{border:1px solid #4F576A}div.o_forum div.o_forum_message_body{padding:0.5em;background:transparent;margin-right:155px}div.o_forum div.o_forum_message_attachments{margin:2em 0 0.5em 0;border-top:1px solid #555555;font-size:95%}div.o_forum div.o_forum_message_attachments strong{display:block;margin:0.5em 0;font-weight:normal;font-style:italic}div.o_forum div.o_forum_message_attachments ul{list-style:none;margin:0;padding:0}div.o_forum div.o_forum_message_attachments li{margin:0;padding:0}div.o_forum div.o_forum_message_attachments a{background-repeat:no-repeat;background-position:0 50%;padding-left:20px;padding-top:2px;padding-bottom:2px}div.o_forum div.o_forum_message_modified{clear:both;border-top:1px solid #506D90;padding:0.5em 0 0 0;font-size:95%;font-style:italic;text-align:center;color:#98221F}div.o_forum div.o_forum_message_actions{text-align:center;padding:0.2em 1em;padding-top:0.8em}span.o_forum_thread_sticky{font-weight:bold}span.o_forum_status_thread_icon{background-image:url(../openolat/images/forum/forum.png)}span.o_forum_status_sticky_closed_icon{background-image:url(../openolat/images/forum/sticky-note-pin_locked.png)}span.o_forum_status_sticky_icon{background-image:url(../openolat/images/forum/sticky-note-pin.png)}span.o_forum_status_closed_icon{background-image:url(../openolat/images/forum/forum_locked.png)}.b_quote_wrapper{position:relative;margin:20px}.b_quote_author{background:url(../openolat/images/forum/quote.gif) no-repeat left bottom;padding:10px 5px 15px 11px;position:relative;top:1px;font-style:italic;color:#A2A2A2}blockquote.b_quote{margin:0;border:1px solid #e5e5e5;padding:8px 10px 6px;color:#646464;background:#fff;font-size:100%}div.o_forum_peekview{margin:1em 0 1em 0}div.o_forum_peekview h5{font-size:1em;position:relative;left:-20px}div.o_forum_peekview div.o_forum_peekview_message{padding-left:20px;padding-bottom:15px}div.o_forum_peekview div.b_quote_wrapper{display:none}.o_forum_message_icon{background-image:url(../openolat/images/forum/balloon-white-left.png)}div.o_forum_toolbar{float:left;display:inline;width:75%}div#o_forum_fulltextsearch{float:right;display:inline}div#o_forum_fulltextsearch input{width:10em}div#o_forum_fulltextsearch div.b_form_element_wrapper.b_form_horizontal{margin:0}div.b_struct_edit_btn{float:right;display:inline}div.o_ep_struct_editor div.b_subcr{min-height:35em;background:white;padding-right:1em;overflow-x:auto}.b_artefact{margin:5px;border:1px solid #ddd;padding:1em;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 2px lightGrey;-ms-box-shadow:0 1px 2px lightGrey;-o-box-shadow:0 1px 2px lightGrey;-webkit-box-shadow:0 1px 2px lightGrey;box-shadow:0 1px 2px lightGrey;background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%)}div.o_ep_toc_editor div.b_subcl{min-height:35em}div.o_ep_struct_editor div.b_subcr{min-height:35em;background:#FFF;padding-right:1em;overflow-x:auto}div.b_struct_edit_btn{float:right;display:inline}div.b_struct_submit_assess_btn{float:right;display:inline}.b_artefact div.b_actions{margin-top:2em}.b_artefact div.b_desc{font-style:italic;margin:1em 0}.b_ep_artAttribLink{background-image:url(../openolat/images/table_gear.png)}div.b_artefact_closed{font-size:25px;float:right;background:url(../openolat/images/locked.png) top right no-repeat}div.b_eportfolio_preview_c100l .b_artefact{margin:3px}div.b_eportfolio_preview_c33l .b_artefact{font-size:85%;margin:3px}.b_ep_nolink{color:#000000}.b_ep_nolink:hover{color:#000000;text-decoration:none}.b_ep_multiartefacts div.b_ep_add_message_with_arrow{position:relative;top:-50px}.b_ep_multiartefacts div.b_artefact_count{margin:1em 0 1em 0}a.b_ep_options{background:url(../openolat/images/gear.png) top left no-repeat;width:16px;height:16px;display:block}.b_ep_liveblog_icon{background-image:url(../openolat/images/portfolio/ep_liveblog_icon.png)}div.b_portfolio_toc ul{margin:0}div.b_portfolio_toc li{list-style-type:none}div.b_portfolio_toc li a{font-size:0.8em;text-decoration:none}div.b_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}div.b_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}div.b_portfolio_toc li.level3{padding-left:40px}div.b_portfolio_toc .link{float:right;margin-right:0px}div.b_portfolio_toc .commentlink{float:right;margin-right:10%}div.b_portfolio_toc .type_artefact{font-style:italic}div.b_portfolio_toc .type_map,div.b_portfolio_toc .type_page,div.b_portfolio_toc .type_struct,div.b_portfolio_toc .type_artefact{background-position:center left;background-repeat:no-repeat;padding-left:20px}a.b_eportfolio_add{background:url(../openolat/images/portfolio/ep_add_icon.png) top left no-repeat;display:block;width:16px;height:16px}td a.b_eportfolio_add{float:right;padding-right:2px}a.b_eportfolio_add_again,span.b_eportfolio_add_again{background:url(../openolat/images/portfolio/ep_add_again_icon.png) top left no-repeat;display:block;width:16px;height:16px}.o_efficiencystatement a.b_eportfolio_add_again{float:right}a.b_eportfolio_link{background:url(../openolat/images/portfolio/ep_link_icon.png) top left no-repeat;display:block;width:16px;height:16px}.b_eportfolio_link{background-image:url(../openolat/images/portfolio/ep_link_icon.png)}ul.b_eportfolio_maps{margin:0;padding:0}ul.b_eportfolio_maps li{display:block;float:left;position:relative;width:195px;height:320px;padding:60px 60px 40px 65px;margin:0.5em;background:url(../openolat/images/portfolio/eportfolio_map_default.png) top left no-repeat;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:14px;-webkit-border-bottom-right-radius:14px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-topright:14px;-moz-border-radius-bottomright:14px;-moz-border-radius-bottomleft:4px;border-top-left-radius:4px;border-top-right-radius:14px;border-bottom-right-radius:14px;border-bottom-left-radius:4px;moz-box-shadow:0 1px 3px lightgray;-ms-box-shadow:0 1px 3px lightgray;-o-box-shadow:0 1px 3px lightgray;-webkit-box-shadow:0 1px 3px lightgray;box-shadow:0 1px 3px lightgray}ul.b_eportfolio_maps li .b_map_info{position:absolute;bottom:40px;width:inherit;font-size:0.9em}ul.b_eportfolio_maps li .b_map_info a.b_open_icon{font-size:1.2em;position:absolute;bottom:170px;right:-10px}.b_eportfolio_changelog .b_form{margin-top:20px;margin-bottom:20px}.b_eportfolio_changelog li{list-style:none}.b_eportfolio_changelog h5{margin-top:16px}.b_eportfolio_mapowner{font-style:italic;margin-bottom:8px}.b_eportfolio_mapowner div{display:inline}div.b_eportfolio_share_with_user{clear:both}div.b_eportfolio_share_with_user p{vertical-align:middle}div.b_eportfolio_share_with_user p span{float:none}@media all{.epmst-green{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green,ul.b_eportfolio_maps li.template.epmst-green{background:#ecf69a;background:#ecf69a -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ecf69a), to(#ecf69a));background:#ecf69a -moz-linear-gradient(43% 71% 101deg, #ecf69a, #ecf69a);background:#ecf69a -o-linear-gradient(#ecf69a, #ecf69a);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ecf69a', EndColorStr='#ecf69a');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-green > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green{margin-top:6px;background:#ecf69a;background:#ecf69a -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ecf69a), to(#ecf69a));background:#ecf69a -moz-linear-gradient(43% 71% 101deg, #ecf69a, #ecf69a);background:#ecf69a -o-linear-gradient(#ecf69a, #ecf69a);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ecf69a', EndColorStr='#ecf69a');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green div.b_map_header h4{color:#444444}.epmst-green div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green div.b_ep_actualpage h1,.epmst-green div.b_ep_actualpage h4{color:#444444}.epmst-green div.b_pagination{float:none;position:static;width:100%}.epmst-green div.b_pagination ul{margin:0}.epmst-green div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green div.b_pagination li span,.epmst-green div.b_pagination li a,.epmst-green div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green div.b_eportfolio_page,.epmst-green div.b_portfolio_toc,.epmst-green div.b_eportfolio_edit{background-image:none}.epmst-green div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green2,ul.b_eportfolio_maps li.template.epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #99e44d, #cbf1a5);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green2{margin-top:6px;background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #99e44d, #cbf1a5);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green2 div.b_map_header h4{color:#555555}.epmst-green2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green2 div.b_ep_actualpage h1,.epmst-green2 div.b_ep_actualpage h4{color:#555555}.epmst-green2 div.b_pagination{float:none;position:static;width:100%}.epmst-green2 div.b_pagination ul{margin:0}.epmst-green2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green2 div.b_pagination li span,.epmst-green2 div.b_pagination li a,.epmst-green2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green2 div.b_eportfolio_page,.epmst-green2 div.b_portfolio_toc,.epmst-green2 div.b_eportfolio_edit{background-image:none}.epmst-green2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green3,ul.b_eportfolio_maps li.template.epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #dff0c1, #a0d346);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green3{margin-top:6px;background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #dff0c1, #a0d346);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green3 div.b_map_header h4{color:#555555}.epmst-green3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green3 div.b_ep_actualpage h1,.epmst-green3 div.b_ep_actualpage h4{color:#555555}.epmst-green3 div.b_pagination{float:none;position:static;width:100%}.epmst-green3 div.b_pagination ul{margin:0}.epmst-green3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green3 div.b_pagination li span,.epmst-green3 div.b_pagination li a,.epmst-green3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green3 div.b_eportfolio_page,.epmst-green3 div.b_portfolio_toc,.epmst-green3 div.b_eportfolio_edit{background-image:none}.epmst-green3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green4,ul.b_eportfolio_maps li.template.epmst-green4{background:#d7dbb5;background:#d7dbb5 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#d7dbb5), to(#d7dbb5));background:#d7dbb5 -moz-linear-gradient(43% 71% 101deg, #d7dbb5, #d7dbb5);background:#d7dbb5 -o-linear-gradient(#d7dbb5, #d7dbb5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#d7dbb5', EndColorStr='#d7dbb5');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green4{margin-top:6px;background:#d7dbb5;background:#d7dbb5 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#d7dbb5), to(#d7dbb5));background:#d7dbb5 -moz-linear-gradient(43% 71% 101deg, #d7dbb5, #d7dbb5);background:#d7dbb5 -o-linear-gradient(#d7dbb5, #d7dbb5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#d7dbb5', EndColorStr='#d7dbb5');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green4 div.b_map_header h4{color:#555555}.epmst-green4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green4 div.b_ep_actualpage h1,.epmst-green4 div.b_ep_actualpage h4{color:#555555}.epmst-green4 div.b_pagination{float:none;position:static;width:100%}.epmst-green4 div.b_pagination ul{margin:0}.epmst-green4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green4 div.b_pagination li span,.epmst-green4 div.b_pagination li a,.epmst-green4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green4 div.b_eportfolio_page,.epmst-green4 div.b_portfolio_toc,.epmst-green4 div.b_eportfolio_edit{background-image:none}.epmst-green4 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red,ul.b_eportfolio_maps li.template.epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba71, #ffba99);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red{margin-top:6px;background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba71, #ffba99);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red div.b_map_header h4{color:#444444}.epmst-red div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red div.b_ep_actualpage h1,.epmst-red div.b_ep_actualpage h4{color:#444444}.epmst-red div.b_pagination{float:none;position:static;width:100%}.epmst-red div.b_pagination ul{margin:0}.epmst-red div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red div.b_pagination li span,.epmst-red div.b_pagination li a,.epmst-red div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red div.b_eportfolio_page,.epmst-red div.b_portfolio_toc,.epmst-red div.b_eportfolio_edit{background-image:none}.epmst-red div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red2,ul.b_eportfolio_maps li.template.epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9772, #ff9780);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red2{margin-top:6px;background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9772, #ff9780);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red2 div.b_map_header h4{color:#444444}.epmst-red2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red2 div.b_ep_actualpage h1,.epmst-red2 div.b_ep_actualpage h4{color:#444444}.epmst-red2 div.b_pagination{float:none;position:static;width:100%}.epmst-red2 div.b_pagination ul{margin:0}.epmst-red2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red2 div.b_pagination li span,.epmst-red2 div.b_pagination li a,.epmst-red2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red2 div.b_eportfolio_page,.epmst-red2 div.b_portfolio_toc,.epmst-red2 div.b_eportfolio_edit{background-image:none}.epmst-red2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red3,ul.b_eportfolio_maps li.template.epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afbb, #e8afa0);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red3{margin-top:6px;background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afbb, #e8afa0);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red3 div.b_map_header h4{color:#444444}.epmst-red3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red3 div.b_ep_actualpage h1,.epmst-red3 div.b_ep_actualpage h4{color:#444444}.epmst-red3 div.b_pagination{float:none;position:static;width:100%}.epmst-red3 div.b_pagination ul{margin:0}.epmst-red3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red3 div.b_pagination li span,.epmst-red3 div.b_pagination li a,.epmst-red3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red3 div.b_eportfolio_page,.epmst-red3 div.b_portfolio_toc,.epmst-red3 div.b_eportfolio_edit{background-image:none}.epmst-red3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red4,ul.b_eportfolio_maps li.template.epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffa800, #ffaf00);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red4{margin-top:6px;background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffa800, #ffaf00);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red4 div.b_map_header h4{color:#444444}.epmst-red4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red4 div.b_ep_actualpage h1,.epmst-red4 div.b_ep_actualpage h4{color:#444444}.epmst-red4 div.b_pagination{float:none;position:static;width:100%}.epmst-red4 div.b_pagination ul{margin:0}.epmst-red4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red4 div.b_pagination li span,.epmst-red4 div.b_pagination li a,.epmst-red4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red4 div.b_eportfolio_page,.epmst-red4 div.b_portfolio_toc,.epmst-red4 div.b_eportfolio_edit{background-image:none}.epmst-red4 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue,ul.b_eportfolio_maps li.template.epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #00d2f8, #4a9ead);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue{margin-top:6px;background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #00d2f8, #4a9ead);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue div.b_map_header h4{color:#444444}.epmst-blue div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue div.b_ep_actualpage h1,.epmst-blue div.b_ep_actualpage h4{color:#444444}.epmst-blue div.b_pagination{float:none;position:static;width:100%}.epmst-blue div.b_pagination ul{margin:0}.epmst-blue div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue div.b_pagination li span,.epmst-blue div.b_pagination li a,.epmst-blue div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue div.b_eportfolio_page,.epmst-blue div.b_portfolio_toc,.epmst-blue div.b_eportfolio_edit{background-image:none}.epmst-blue div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue2,ul.b_eportfolio_maps li.template.epmst-blue2{background:#c4f6ff;background:#c4f6ff -webkit-gradient(linear, 37% 20%, 53% 100%, from(#c4f6ff), to(#c4f6ff));background:#c4f6ff -moz-linear-gradient(43% 71% 101deg, #c4f6ff, #c4f6ff);background:#c4f6ff -o-linear-gradient(#c4f6ff, #c4f6ff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#c4f6ff', EndColorStr='#c4f6ff');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue2{margin-top:6px;background:#c4f6ff;background:#c4f6ff -webkit-gradient(linear, 37% 20%, 53% 100%, from(#c4f6ff), to(#c4f6ff));background:#c4f6ff -moz-linear-gradient(43% 71% 101deg, #c4f6ff, #c4f6ff);background:#c4f6ff -o-linear-gradient(#c4f6ff, #c4f6ff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#c4f6ff', EndColorStr='#c4f6ff');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue2 div.b_map_header h4{color:#444444}.epmst-blue2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue2 div.b_ep_actualpage h1,.epmst-blue2 div.b_ep_actualpage h4{color:#444444}.epmst-blue2 div.b_pagination{float:none;position:static;width:100%}.epmst-blue2 div.b_pagination ul{margin:0}.epmst-blue2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue2 div.b_pagination li span,.epmst-blue2 div.b_pagination li a,.epmst-blue2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue2 div.b_eportfolio_page,.epmst-blue2 div.b_portfolio_toc,.epmst-blue2 div.b_eportfolio_edit{background-image:none}.epmst-blue2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue3,ul.b_eportfolio_maps li.template.epmst-blue3{background:#b3e2f7;background:#b3e2f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#b3e2f7), to(#b3e2f7));background:#b3e2f7 -moz-linear-gradient(43% 71% 101deg, #b3e2f7, #b3e2f7);background:#b3e2f7 -o-linear-gradient(#b3e2f7, #b3e2f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#b3e2f7', EndColorStr='#b3e2f7');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue3{margin-top:6px;background:#b3e2f7;background:#b3e2f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#b3e2f7), to(#b3e2f7));background:#b3e2f7 -moz-linear-gradient(43% 71% 101deg, #b3e2f7, #b3e2f7);background:#b3e2f7 -o-linear-gradient(#b3e2f7, #b3e2f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#b3e2f7', EndColorStr='#b3e2f7');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue3 div.b_map_header h4{color:#444444}.epmst-blue3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue3 div.b_ep_actualpage h1,.epmst-blue3 div.b_ep_actualpage h4{color:#444444}.epmst-blue3 div.b_pagination{float:none;position:static;width:100%}.epmst-blue3 div.b_pagination ul{margin:0}.epmst-blue3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue3 div.b_pagination li span,.epmst-blue3 div.b_pagination li a,.epmst-blue3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue3 div.b_eportfolio_page,.epmst-blue3 div.b_portfolio_toc,.epmst-blue3 div.b_eportfolio_edit{background-image:none}.epmst-blue3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue4,ul.b_eportfolio_maps li.template.epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #dee7f7, #c1e9fd);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue4{margin-top:6px;background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #dee7f7, #c1e9fd);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue4 div.b_map_header h4{color:#444444}.epmst-blue4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue4 div.b_ep_actualpage h1,.epmst-blue4 div.b_ep_actualpage h4{color:#444444}.epmst-blue4 div.b_pagination{float:none;position:static;width:100%}.epmst-blue4 div.b_pagination ul{margin:0}.epmst-blue4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue4 div.b_pagination li span,.epmst-blue4 div.b_pagination li a,.epmst-blue4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue4 div.b_eportfolio_page,.epmst-blue4 div.b_portfolio_toc,.epmst-blue4 div.b_eportfolio_edit{background-image:none}.epmst-blue4 div.b_pagination li.b_changelog{float:right}}li.default .b_map_info p{color:#bbb}li.comic .b_map_info p{color:#88a5c4}li.leather .b_map_info p{color:#C2A074}.b_map_page{text-align:center;clear:left}.b_map_page_all{text-align:center}.b_map_page > span{padding-right:3px}.b_map_page a.b_map_page_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}ul.b_eportfolio_maps li.leather{background:url(../openolat/images/portfolio/eportfolio_map_leather.png) top left no-repeat;border:none}ul.b_eportfolio_maps li.leather a{color:#fad9a4}ul.b_eportfolio_maps li.comic{background:url(../openolat/images/portfolio/eportfolio_map_comic.png) top left no-repeat;border:none}ul.b_eportfolio_maps li.template.default{background-image:url(../openolat/images/portfolio/eportfolio_map_default_template.png)}ul.b_eportfolio_maps li.template.comic{background-image:url(../openolat/images/portfolio/eportfolio_map_comic_template.png)}ul.b_eportfolio_maps li.template.leather{background-image:url(../openolat/images/portfolio/eportfolio_map_leather_template.png)}.b_map_page{text-align:center;clear:left}.b_map_page_all{text-align:center}.b_map_page > span{padding-right:3px}.b_map_page a.b_map_page_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}.b_eportfolio_map{background:white;padding:1.5em;min-height:30em}.b_eportfolio_map .b_ep_relative{position:relative}.b_eportfolio_toolbar div{display:inline}.b_eportfolio_toolbar{text-align:right;width:100%;border-bottom:1px solid #acaaaa;padding:1px 2px 4px 2px;margin-bottom:6px}.b_eportfolio_map a.b_eportfolio_add_link,.b_eportfolio_map a.b_eportfolio_del_link{float:right;display:inline;background-repeat:no-repeat;margin-left:0.5em;width:16px;height:16px;text-decoration:none}.b_eportfolio_toolbar a.b_eportfolio_add_link,.b_eportfolio_map a.b_eportfolio_del_link{float:none;display:inline-block;background-repeat:no-repeat;margin-left:0;margin-right:0.5em;width:16px;height:16px;text-decoration:none}.b_eportfolio_map div.b_eportfolio_add_link{float:left;display:inline;margin-top:2px}.o_ep_toc_editor .b_eportfolio_add_link{float:left}.b_eportfolio_map .b_eportfolio_add_link:hover{text-decoration:none}.b_eportfolio_map .b_eportfolio_comment_link{float:right;display:inline;margin-right:5px}.b_ep_tag_cloud{padding:1em 0 1em 0;border-bottom:1px solid #ccc}.b_eportfolio_page,.b_portfolio_toc,.b_eportfolio_edit,.b_eportfolio_changelog{min-height:40em;background:#f4f4f4 url(../openolat/images/portfolio/eportfolio_page_corner.png) top right no-repeat;padding:1em;-webkit-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);-moz-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);-o-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2)}.b_eportfolio_page .b_eportfolio_structure > h5{border-bottom:1px solid #ddd;margin-top:1.2em}.b_eportfolio_edit{margin-top:1.5em}.b_eportfolio.b_artefacts hr.b_ep_filter_spacer{height:10px;background:url(../openolat/images/portfolio/divider-arrow-down.png) 25px -12px no-repeat;border:none;border-top:1px solid #ccc;margin:2em 0 1em}.b_eportfolio.b_artefacts .b_ep_content{background:white;padding:0 1em 1em 1em;margin-top:1.5em}.b_eportfolio.b_artefacts .b_ep_content .b_ep_filter{padding:0;width:80%}.b_ep_filter{float:left}.b_ep_viewmode{float:right;width:15%}.b_ep_add_artefact{float:right}.b_ep_content div.b_ep_viewmode div.b_form_element_label{width:auto}.b_eportfolio.b_artefacts div.b_segments_container{top:-20px;margin-bottom:-20px}.b_ep_tagbrowser{width:30%;margin-right:0px}.b_ep_tagbrowser_view{width:68%;margin-left:0px}.b_ep_collection_icon{background-image:url(../openolat/images/portfolio/ep_collection.png) !important}.b_ep_map_icon,.b_portfolio_toc .type_map{background-image:url(../openolat/images/portfolio/briefcase.png) !important}.b_ep_page_icon,.b_portfolio_toc .type_page{background-image:url(../openolat/images/portfolio/ep_page.png) !important}.b_ep_page_icon.b_eportfolio_add_link{background-image:url(../openolat/images/portfolio/ep_page_add.png) !important}.b_ep_struct_icon,.b_portfolio_toc .type_struct{background-image:url(../openolat/images/portfolio/ep_struct.png) !important}.b_ep_struct_icon.b_eportfolio_add_link{background-image:url(../openolat/images/portfolio/ep_struct_add.png) !important}.type_artefact{background-image:url(../openolat/images/le_resources/portfolio.png) !important}div.b_eportfolio_collect_restriction{margin-top:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_el{float:left;margin-right:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link{float:left;margin-right:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link a{padding-left:0px;text-decoration:none}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link a:hover{text-decoration:none}div.b_form.b_eportfolio_tag_selector{min-width:40em}div.b_eportfolio_restriction_wrapper a.b_togglebox_opened{z-index:10;display:block;width:20px;height:20px;padding:0;margin-left:12px}div.b_eportfolio_restriction_wrapper a.b_togglebox_closed{display:block;width:20px;height:20px;padding:0;margin-left:12px}div.b_eportfolio_restriction_wrapper p{padding:0 0 0 15px;margin:0}div.b_eportfolio_restriction_wrapper div.b_togglebox div.b_togglebox_content{padding:3px 3px 3px 3px;margin:0;border:1px solid red;background-image:none;background-color:transparent;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px}div.b_eportfolio_restriction_error div.b_tooglebox_opened div.b_togglebox_content{border:1px solid #FF9900 !important;background:#fff5cc url(../openolat/images/decorator/deco_warn.png) no-repeat 3px 7px !important}div.b_eportfolio_restriction_passed div.b_tooglebox_opened div.b_togglebox_content{border:1px solid #F0F0F0 !important;background:#fcfcfc url(../openolat/images/decorator/deco_ok.png) no-repeat 3px 7px !important}div.b_eportfolio_restriction_error div.b_togglebox_closed{background:transparent url(../openolat/images/decorator/deco_warn.png) no-repeat 3px 5px !important}div.b_eportfolio_restriction_passed div.b_togglebox_closed{background:transparent url(../openolat/images/decorator/deco_ok.png) no-repeat 3px 5px !important}div.b_eportfolio_restriction_wrapper div.b_togglebox div.b_togglebox_content .b_togglebox_hide{display:none}.b_eportfolio_deadline_callout{width:300px}.b_ep_multiartefacts .b_c50l{clear:both}.b_eportfolio_fulltextsearch{float:left}.b_eportfolio_share_policy_wrapper{margin:5px;border:1px solid #ddd;padding:1em;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-ms-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-o-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%)}.b_eportfolio_share_policy_wrapper .b_float_right{text-align:right}.b_eportfolio_share_policy_wrapper a.bit-input{text-decoration:none}.b_eportfolio_share_policy div input,.b_eportfolio_share_policy div span,.b_eportfolio_share_policy div select{float:left;margin-right:5px;padding-right:5px}.b_eportfolio_share_policy div span.b_form_datechooser{background:url(../openolat/images/calendar.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}.b_eportfolio_share_policy .b_ep_share_date span{float:left}.b_eportfolio_share_policy_wrapper .b_eportfolio_share_policy{padding-left:20px;background:url(../openolat/images/user.png) top left no-repeat}.b_eportfolio_share_policy_wrapper.policytype_group .b_eportfolio_share_policy{background-image:url(../openolat/images/users.png)}.b_eportfolio_share_policy_wrapper.policytype_invitation .b_eportfolio_share_policy{background-image:url(../openolat/images/share.png)}.b_eportfolio_share_policy_wrapper.policytype_allusers .b_eportfolio_share_policy{background-image:url(../openolat/images/users.png)}div.b_ep_inline div input,div.b_ep_inline div span,div.b_ep_inline div select{float:left;margin-right:5px;padding-right:5px}.default div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.default div.b_pagination{float:none;position:static;width:100%}.default div.b_pagination ul{margin:0}.default div.b_pagination li{float:left;display:inline;width:auto;margin:2px 2px 2px 0;padding:0;background:#FAFAFA;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:7px;border-top-right-radius:7px;border-bottom-right-radius:0;border-bottom-left-radius:0}.default div.b_pagination li a{padding:1em;padding:5px 8px}.default div.b_pagination li,.default div.b_pagination li span,.default div.b_pagination li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.default div.b_pagination li.b_disabled{padding-bottom:2px;margin-bottom:0;background:#f4f4f4}.default div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.default div.b_pagination li.b_changelog{float:right}.default div.b_eportfolio_page,.default div.b_portfolio_toc,.default div.b_eportfolio_edit,.default div.b_eportfolio_changelog{background-image:none}.b_eportfolio_map.comic{background:#a2c3e8 none;padding:30px;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:10px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-topright:10px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:0;border-top-right-radius:10px;border-bottom-right-radius:0;border-bottom-left-radius:0}.comic{font-family:'Comic Sans MS', 'Comic Sans', fantasy}.comic div.b_pagination{position:absolute;right:0;width:16%;max-height:100%;overflow-x:hidden;overflow-y:auto;z-index:100}.comic .b_ep_relative > div:last-child{position:relative}.comic div.b_ep_actualpage{width:85%;margin-top:1em}.comic div.b_pagination ul{margin-top:30px;margin-left:0px;z-index:1}.comic div.b_pagination li{width:87%;background:url(../openolat/images/portfolio/postit.png) center right;padding:0;margin-bottom:1em;margin-left:8%;list-style-type:none}.comic div.b_pagination li span.b_disabled,.comic div.b_pagination li a span{display:block;padding:20px 15px 20px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.comic div.b_pagination li,.comic div.b_pagination li span,.comic div.b_pagination li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.comic div.b_pagination li.b_disabled{z-index:101;margin-left:0;width:100%}.comic div.b_pagination li .b_disabled{color:black;font-weight:bold}.comic div.b_pagination li.b_toc,.comic div.b_pagination li.b_changelog{background-image:url(../openolat/images/portfolio/postit_pink.png)}.b_eportfolio_map.leather{background:url(../openolat/images/portfolio/light-leather-tile.jpg)}.leather{font-family:Palatino, Georgia, serif}.leather div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.leather .b_map_header h4,.leather .b_map_header p,.leather .b_map_header a.b_eportfolio_add_link,.leather .b_map_header a.b_eportfolio_comment_link{color:white}.leather .b_eportfolio_mapowner{color:#fff}.leather div.b_pagination{float:none;position:static;width:100%}.leather div.b_pagination ul{margin:0}.leather div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:7px;border-top-right-radius:7px;border-bottom-right-radius:0;border-bottom-left-radius:0}.leather div.b_pagination li a{padding:1em;padding:5px 8px}.leather div.b_pagination li,.leather div.b_pagination li span,.leather div.b_pagination li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.leather div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.leather div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.leather div.b_pagination li.b_changelog{float:right}.leather div.b_eportfolio_page,.leather div.b_portfolio_toc,.leather div.b_eportfolio_edit,.leather div.b_eportfolio_changelog{background-image:none}div.o_module_cp_wrapper a.b_content_download{background:url("../openolat/images/drive-download.png") no-repeat top left;padding-left:20px;margin:3px;display:block;min-height:16px}div.o_module_cp_wrapper div#o_local_fulltextsearch{position:absolute;top:0;right:0;z-index:10}div.o_module_cp_wrapper div#o_local_fulltextsearch div.b_form_element_wrapper.b_form_horizontal{margin:0}div.o_module_cp_wrapper div.o_cp_navigation{float:right;display:inline;padding:3px 0 3px 3px;background:#ebebeb;border:1px solid #ddd;white-space:nowrap;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;moz-box-shadow:0 1px 2px lightGrey;-ms-box-shadow:0 1px 2px lightGrey;-o-box-shadow:0 1px 2px lightGrey;-webkit-box-shadow:0 1px 2px lightGrey;box-shadow:0 1px 2px lightGrey}div.o_module_cp_wrapper div span a{margin:0 2px}div.o_module_cp_wrapper div span.b_disabled{display:none}div.o_module_cp_wrapper div span a.o_cp_previous_icon{background-image:url("../openolat/images/arrow_left_big.png");text-decoration:none}div.o_module_cp_wrapper div span a.o_cp_previous_icon span{display:none}div.o_module_cp_wrapper div span a.o_cp_next_icon{background-image:url("../openolat/images/arrow_right_big.png")}div.o_module_cp_wrapper div span a.o_cp_next_icon span{display:none}div.o_module_cp_wrapper div span a.o_cp_print_icon{background-image:url("../openolat/images/printer.png")}div.o_module_cp_wrapper div span a.o_cp_print_icon span{display:none}div.o_module_cp_wrapper div.o_cp_navigation div,div.o_module_cp_wrapper div.o_cp_navigation form{display:inline}div.o_module_cp_wrapper div.o_cp_navigation div.b_clearfix{display:inline;clear:none}div.o_module_cp_wrapper div.o_cp_navigation div.b_clearfix:after{display:inline;height:0;clear:none;visibility:hidden}#o_cpeditor_menu div.o_cpeditor_menu_tree{padding:10px 0 0 0}#b_col1 div.b_menu_toolbar a,#b_col3 div.b_menu_toolbar a{width:16px;height:16px;margin:3px;float:right;display:inline;background-repeat:no-repeat}a.o_cpeditor_import{background-image:url("../openolat/images/docs/document_upload.png")}a.o_cpeditor_new{background-image:url("../openolat/images/docs/document_add.png")}a.o_cpeditor_copy{background-image:url("../openolat/images/docs/document_copy.png")}a.o_cpeditor_delete{background-image:url("../openolat/images/docs/document_remove.png")}a.o_cpeditor_edit{background-image:url(../openolat/images/docs/document_metadata_edit.png)}a.o_cpeditor_preview{background-image:url(../openolat/images/docs/document_preview.png)}#o_cpeditor_content div.o_cpeditor_message{padding:20px}div.o_qpool_button_bar{padding:15px 0 0 0;text-align:center}div.o_qpool_toolbar{padding:3px;text-align:right}.o_sel_qpool_pool{background-image:url("../openolat/images/qti/pool-share.png") !important}.o_sel_qpool_my_items{background-image:url("../openolat/images/user.png") !important}.o_sel_qpool_favorits{background-image:url("../openolat/images/flag.png") !important}.o_sel_qpool_share{background-image:url("../openolat/images/users.png") !important}.o_sel_qpool_collection{background-image:url("../openolat/images/document-list.png") !important}.o_readwrite{background-image:url("../openolat/images/pencil.png")}.o_readonly{background-image:url("../openolat/images/pencil-prohibition.png")}.o_public,.o_exportable{background-image:url("../openolat/images/tick.png")}.o_private,.o_unexportable{background-image:url("../openolat/images/cross.png")}.o_qpool_edit_learning_time div{float:left}.o_qpool_edit_learning_time div input,.o_qpool_edit_learning_time div select,.o_qpool_edit_learning_time div span.o_qpool_edit_learning_time_label{margin-right:5px;padding-right:5px}div.o_sel_qpool_edit_content{float:right}div.o_sel_qpool_edit_content .b_link_edit{margin-right:20px}div.o_sel_qpool_presentation div.b_c33l li{padding-right:15px}div.o_sel_qpool_presentation h5{margin:0.5em 0 0.5em 0}#qpoolcontainer div.b_table_wrapper a.b_table_prefs{position:relative;top:1.5em;left:19px}#qpoolcontainer div.b_table_wrapper div.dataTables_wrapper{margin-top:1em}div.o_qpool_metadata_sharing h5{margin-top:1em}div.o_qpool_metadata_sharing table td.b_first_child{width:15%}a.o_print_icon{background-image:url("../openolat/images/printer.png")}a.o_print_icon span{display:none}.d3chart .bar_green{fill:#9dd53a}.d3chart .bar_green:hover{fill:#7cbc0a}.d3chart .bar_red{fill:#f85032}.d3chart .bar_red:hover{fill:#e73827}.d3chart .bar_grey{fill:lightgrey}.d3chart .bar_grey:hover{fill:grey}div.o_qti_statistics{padding-top:20px;padding-left:40px;padding-right:5%}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0}div.o_qti_statistics li{padding-left:22px}div.o_qti_statistics li.o_qti_statistics-survey-item{padding-left:0px}div.o_qti_statistics li.o_qti_statistics-ncorrect{background:url(../img/decorator_error.png) no-repeat 5px 4px}div.o_qti_statistics li.o_qti_statistics-correct{background:url(../img/decorator_ok.png) no-repeat 5px 2px}div.o_qti_statistics h4{padding-left:20px}div.o_qti_statistics h4.qti-qtype1{background:url(../img/scItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype2{background:url(../img/mcItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype3{background:url(../img/fibItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype4{background:url(../img/essayItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype5{background:url(../img/kprimItem.png) no-repeat}#o_qti_run div.b_button_group{text-align:left}#o_qti_run_title{text-align:right}#o_qti_run_title strong{float:left;display:inline}#o_qti_run.o_qti_survey #o_qti_run_title strong{background:url(../openolat/images/le_resources/survey.png) no-repeat left 50%;padding-left:20px}#o_qti_run.o_qti_test #o_qti_run_title strong{background:url(../openolat/images/le_resources/test.png) no-repeat left 50%;padding-left:20px;padding-top:2px;padding-bottom:2px}#o_qti_scoreinfo{float:left;display:inline;padding:.3em;border:1px solid silver;margin-right:1em}#o_qti_run_score{clear:both;margin:1em 0;padding:0 0 1.5em 0;font-size:90%}#o_qti_run_scoreinfo{float:left;display:inline}#o_qti_run_scoreprogress{float:left;display:inline;margin-left:1em}#o_qti_questioninfo{float:left;display:inline;padding:.3em;border:1px solid silver}#o_qti_run_questioninfo{float:left;display:inline;margin-left:1em}#o_qti_run_questionprogress{float:left;display:inline;margin-left:1em}#o_qti_run_status{clear:both}#o_qti_run_main{clear:both;border-top:1px solid #504D4E;margin:0.5em 0;padding:1em 0}#o_qti_run_menu_inner h4{font-size:100%}#o_qti_run_menu_inner ul{padding:0;margin:0;list-style:none}#o_qti_run_menu_inner li{clear:both;padding:0;margin:0;white-space:normal}#o_qti_run_menu_inner li.o_qti_menu_section{padding:1em 0}#o_qti_run_menu_inner li div.o_qti_menu_item,#o_qti_run_menu li div.o_qti_menu_section{float:left;display:inline;margin-right:10px}#o_qti_results td{padding:0}#b_main.o_editor_qti_correct{background-image:url(../openolat/images/qti/correct_bg.png);background-position:top left}#b_main.o_editor_qti{background-image:url(../openolat/images/edit_bg.png);background-position:top left}#o_qti_hints,#o_qti_solutions{margin:1em 0}#o_qti_hints a{background:url(../openolat/images/light-bulb.png) no-repeat left 50%;cursor:help;padding-left:20px}#o_qti_solutions a{background:url(../openolat/images/magnifier-zoom.png) no-repeat left 50%;cursor:help;padding-left:20px}.qti_response_level_feedback_label{margin-top:1em;font-style:italic}.qti_edit_layout{position:relative;padding-right:30px;margin-bottom:0.6em}.qti_edit_layout .edit_link{position:absolute;top:10px;right:0px}div.o_qti_item{margin-bottom:2em;margin-top:2em;line-height:2em}div.o_qti_item input.b_radio,div.o_qti_item input.b_checkbox{margin-left:1em}div.o_qti_item textarea{width:99%}img.o_qti_item_matimage{vertical-align:middle}div.o_qti_item_choice{display:table;margin:1em 0}div.o_qti_item_choice_option{display:table;padding:.5em;border:1px solid transparent}div.o_qti_item_choice_option_flow{display:table-cell;padding:.5em;border:1px solid transparent}div.o_qti_item_choice_option:hover{border:1px solid silver}div.o_qti_item_choice_option_flow:hover{border:1px solid silver}div.o_qti_item_choice_option_input{display:table-cell;vertical-align:middle;padding-right:.5em}div.o_qti_item_choice_option_input input{vertical-align:middle}div.o_qti_item_choice_option_value{display:table-cell}div.o_qti_item_choice_option_autoenum{display:table-cell;line-height:1.5em;width:1em;overflow:hidden;vertical-align:middle;color:silver;border:0;padding:0;margin:0}#o_qti_menu a{text-decoration:none}.o_qti_menu_section{padding:.3em;border-top:1px solid #ff6666}.o_qti_menu_section_clickable{padding:.3em;border:1px solid transparent;display:inline-block}.o_qti_menu_section_clickable:hover{padding:.3em;border:1px solid silver;display:inline-block}.o_qti_menu_section_active{padding:.3em;border:1px dashed silver;display:inline-block}.o_qti_menu_item{padding:.3em;border:1px solid transparent;display:inline-block}.o_qti_menu_item_active{padding:.3em;border:1px dashed silver;display:inline-block}.o_qti_menu_item_active:hover{border:1px solid silver}.o_qti_menu_item_inactive{padding:.3em;border:1px solid transparent}.o_qti_menu_item:hover{border:1px solid silver}.o_qti_menu_item_closed{padding:.3em;border:1px solid transparent}.o_qti_menu_item_attempts,.o_qti_menu_item_attempts_marked{color:#666;padding:.2em .4em;border:1px solid transparent;background-position:center right;background-repeat:no-repeat;display:block;width:20px;height:12px}.o_qti_menu_item_attempts{background-image:url(../openolat/images/flag_off.png)}.o_qti_menu_item_attempts:hover,.o_qti_menu_item_attempts_marked:hover{border:1px solid silver;cursor:pointer}.o_qti_menu_item_attempts_marked{background-image:url(../openolat/images/flag.png)}#o_qti_item_note{padding:0;margin:0;border:0;color:#666;font-family:inherit;font-size:1em;background:inherit;overflow:hidden}.o_qti_item_note_box{border:1px dashed silver;padding:.1em;margin:0;padding-left:.5em}div.o_qti_item_note_box_title{color:#666}div.o_qti_item_itemfeedback,div.o_qti_item_assessfeedback,div.o_qti_item_o_qti_item_sectionfeedback{margin:1em 0;background:url(../openolat/images/lightning.png) no-repeat left 50%;padding-left:20px}div.o_qti_item_objectives{margin:1em 0;background:url(../openolat/images/information-white.png) no-repeat left 50%;padding-left:20px;line-height:2em}.o_qti_timelimit_icon{background-image:url(../openolat/images/qti/time.png)}.o_qti_attemptslimit_icon{background-image:url(../openolat/images/qti/tries.png)}.o_qti_closed_icon{background-image:url(../openolat/images/qti/closed.png)}.o_mi_qtialientitem{background-image:url(../openolat/images/docs/document_plain.png)}.o_mi_qtisc{background-image:url(../openolat/images/qti/scItem.png)}.o_mi_qtimc{background-image:url(../openolat/images/qti/mcItem.png)}.o_mi_qtikprim{background-image:url(../openolat/images/qti/kprimItem.png)}.o_mi_qtifib{background-image:url(../openolat/images/qti/fibItem.png)}.o_mi_qtiessay{background-image:url(../openolat/images/qti/essayItem.png)}.o_mi_qtisection{background-image:url(../openolat/images/qti/section.png)}.o_mi_qpool_import{background-image:url(../openolat/images/qti/pool.png)}.o_mi_qpool_export{background-image:url(../openolat/images/qti/pool.png)}.o_mi_docx_export{background-image:url(../openolat/images/docs/document-word.png)}.o_mi_iqtest{background-image:url(../openolat/images/le_resources/test.png)}.o_mi_iqsurv{background-image:url(../openolat/images/le_resources/survey.png)}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}div.b_translation_start div.b_translation_start_body,div.b_translation_edit div.b_translation_edit_body{margin-top:0.5em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_list div.b_translation_list_package{margin-bottom:0.5em;padding:1em 0 0.5em 0;border-bottom:1px solid #ACAAAA}div.b_translation_list div.b_translation_list_package div.b_translation_package_icon{margin-bottom:0.5em;border-bottom:1px solid #ACAAAA}div.b_translation_edit div.b_button_group{text-align:center;margin:1em 0 0 0}div.b_translation_edit div.b_translation_edit_head div.b_progress div.b_progress_bar{float:left;display:inline}div.b_translation_edit div.b_translation_edit_head div.b_progress div.b_progress_label{float:left;display:inline;padding:0 0 0 1em;font-size:90%;font-style:italic}div.b_translation_edit div.b_translation_edit_body textarea{width:99%}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_annotation{margin-top:1em}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_compare{margin-top:1em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_target{margin-top:1em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_edit div.b_form_element textarea.b_form_element_disabled{color:#000;background:#EEEEEE;border:1px solid #CDCBCB}div.b_translation_edit div.b_translation_edit_annotation h5{font-weight:normal;font-size:100%;font-style:italic}div.b_translation_edit div.b_translation_edit_annotation textarea{font-style:italic}div.b_translation_edit div.b_translation_refKey{background-image:url(../openolat/images/magnifier-zoom.png);vertical-align:middle;background-color:#eee;border:1px solid #ACAAAA;margin-right:1%}div.b_translation_edit div.b_translation_refKey code{line-height:1em;vertical-align:middle}div.b_translation_edit div.b_translation_refKey span{line-height:1em;font-style:italic}div.b_translation_config span.b_translation_status,ul.b_translation_status span.b_translation_status{position:absolute;right:1em}ul.b_translation_status{column-count:2;-moz-column-count:2;list-style:none}ul.b_translation_status li{position:relative}.b_translation_package_icon{background-image:url(../openolat/images/folder_open.png) !important}.b_translation_item_icon{background-image:url(../openolat/images/docs/document-node.png) !important}.b_translation_search_icon{background-image:url(../openolat/images/magnifier-zoom.png) !important}span.b_translation_i18nitem{position:relative !important}span.b_translation_i18nitem a.b_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:16px !important;height:16px !important;top:0 !important;left:5px !important;background:#eeeeee url(../openolat/images/docs/document_metadata_edit.png) no-repeat !important;border:1px solid #6e6e6e !important;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;padding:0 !important}div.b_selectiontree{font-size:95%}div.b_selectiontree div.b_selectiontree_item{clear:both;position:relative;top:0;left:0;vertical-align:middle;height:16px;width:auto}div.b_selectiontree div.b_selectiontree_item div{width:16px;height:16px;float:left;display:inline;background-repeat:no-repeat}div.b_selectiontree div.b_selectiontree_item div.b_selectiontree_content{float:left;display:inline;margin-left:0.5em;width:auto;white-space:nowrap}div.b_selectiontree div.b_selectiontree_content{width:auto}div.b_selectiontree div.b_selectiontree_content div{width:auto}div.b_selectiontree div.b_selectiontree_content input{width:1em;height:1em;padding:0;margin:0 0.5em;vertical-align:middle}div.b_selectiontree div.b_selectiontree_content input.b_radio{margin:0}div.b_selectiontree .b_selectiontree_line{background-image:url(../openolat/images/tree/dots.gif)}div.b_selectiontree .b_selectiontree_space{background-image:url(../openolat/images/tree/dots_spacer.gif)}div.b_selectiontree .b_selectiontree_junction{background-image:url(../openolat/images/tree/dots_nt.gif)}div.b_selectiontree .b_selectiontree_end{background-image:url(../openolat/images/tree/dots_nl.gif)}#b_main.o_editor #b_col3{background-image:url(../openolat/images/edit_bg.png);background-position:top left;background-repeat:repeat}#b_main.o_editor div.b_tabbedpane_wrapper div.b_tabbedpane_content{background:#fff}#b_main_toolbar.o_course_breadcumbs div.b_breadcumb_path ul li.b_first{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}a.b_preview{background-image:url(../openolat/images/docs/document_preview.png);background-repeat:no-repeat;background-position:left;padding:2px 0 2px 20px}fieldset a.b_preview,div.b_tabbedpane_wrapper a.b_preview{position:absolute}div.b_module_singlepage_wrapper a.b_content_edit{position:absolute;top:0;right:20px;display:inline;background:url(../openolat/images/docs/document--pencil.png) no-repeat top left;width:16px;height:16px;margin:3px}div.b_module_singlepage_wrapper a.b_content_download{position:absolute;top:0;z-index:10;background:url(../openolat/images/docs/document_download.png) no-repeat top left;padding-left:20px;margin-top:3px;min-height:19px;height:19px}div.b_titled_wrapper div.b_module_singlepage_wrapper a.b_content_download{position:relative;padding-bottom:3px}div.b_titled_wrapper div.b_module_singlepage_wrapper div.b_iframe_wrapper{margin-top:3px}div.b_lti_edit_wrapper div.o_buttons_box_right{z-index:10;top:13px;right:20px}#b_content_popup{float:right;background:url(../openolat/images/applications.png) no-repeat top left;width:16px;height:16px;margin:3px}#o_course_editor_errorbox{font-size:90%;padding:3px 2px 2px 25px;margin:0 0 1em 0}div.o_courseeditor_legend{margin-top:3em}div.o_courseeditor_legend strong{font-weight:bold}div.o_courseeditor_legend div{top:0;left:0;padding-left:12px;background-repeat:no-repeat;background-position:0 50%}div.o_buttons_box_right{position:absolute;top:0;right:0}fieldset div.o_buttons_box_right{top:1em}div.b_box_with_chelp div.o_buttons_box_right{right:20px}div.o_course_run div.o_course_run_displaytitle{font-style:italic}div.o_course_run div.o_course_run_objectives{background-color:#E9EAEF;padding:5px 5px 5px 25px;margin:0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_scoreinfo{background:#e9eaef url(../openolat/images/seal.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_disclaimer{background:#e9eaef url(../openolat/images/information-white.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_groupinfo{background:#e9eaef url(../openolat/images/users.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_statusinfo{background:url(../openolat/images/bullet_go.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_returnbox{background:#e9eaef url(../openolat/images/box_return.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_dropbox{background:#e9eaef url(../openolat/images/box_drop.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_solutionbox{background:#e9eaef url(../openolat/images/box_solution.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_task{background:#e9eaef url(../openolat/images/assign.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_disclaimer h4,div.o_course_run div.o_course_run_objectives h4,div.o_course_run div.o_course_run_scoreinfo h4,div.o_course_run div.o_course_run_returnbox h4,div.o_course_run div.o_course_run_dropbox h4,div.o_course_run div.o_course_run_solutionbox h4,div.o_course_run div.o_course_run_task h4,div.o_course_run div.o_course_run_log h4{font-size:100%;margin:0 0 1em 0}div.o_course_run div.o_course_run_scoreinfo_noinfo{font-style:italic;font-weight:bold}div.o_course_run div.o_course_run_toc{margin:1em 0 0 0}div.o_course_run div.o_course_run_toc div.o_course_run_toc_entry{margin:0 0 1em 0;padding:1em 20px 0 0}div.o_course_run div.o_course_run_toc div.o_course_run_shorttitle{border-bottom:1px solid #ACAAAA}div.o_course_run div.o_course_run_toc div.o_course_run_displaytitle{margin-top:0.5em;color:#aaaaaa}div.o_course_run div.o_course_run_toc div.o_course_run_objectives{margin:1em 0 1em 0;border:0;background:none}div.o_course_run div.o_course_run_toc div.o_course_run_toc_entry{background:#FBFBFB;padding:5px;border:1px solid #eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run #b_content_popup{position:absolute;top:0;right:0}div.o_sp_peekview{margin:1em 0 1em 0}div.o_sp_peekview ul{list-style:none}div.o_sp_peekview li{margin-top:0.5em}div.o_peekview_author{padding:3px 0 5px 0;font-style:italic;color:#aaaaaa;font-size:90%}#b_preview_wrapper{clear:both;padding:10px;background:#fff;border-bottom:1px solid #ff6666}#b_main.b_preview{moz-box-shadow:0 0 0 white;-ms-box-shadow:0 0 0 white;-o-box-shadow:0 0 0 white;-webkit-box-shadow:0 0 0 white;box-shadow:0 0 0 white;background:white url(../openolat/images/prevbg.png) repeat}body.b_full_screen{background-color:white;background-image:none}body.b_full_screen #b_page_margins{display:none}body.b_full_screen div.b_modal_area{margin:2%;width:96%}body.b_full_screen div#b_preview_wrapper{margin:0;border:0;padding:0;background:#5e5e5e;background:-moz-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5e5e5e), color-stop(50%, #444444), color-stop(51%, #222222), color-stop(100%, #3c3c3c));background:-webkit-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-o-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-ms-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%)}body.b_full_screen div#b_preview_wrapper div.b_preview_link{border:none}body.b_full_screen div#b_preview_wrapper div.b_preview_link a.b_link_back{margin:0.5em}body.b_full_screen div#b_preview_wrapper div.b_preview_link div.b_preview_wrapper_loading{background:transparent url(../openolat/images/ajax-loader.gif) no-repeat top left}div#b_preview_wrapper div#b_preview_wrapper_message{float:right;padding-left:16px;width:100px}div.o_scorm a.b_link_close{padding-right:20px}div.o_scorm div.o_scorm_navigation{float:right;display:inline;padding:3px;background:#fefefe;background:-moz-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fefefe), color-stop(50%, #e3e3e3), color-stop(51%, #cfcfcf), color-stop(100%, #f3f3f3));background:-webkit-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-o-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-ms-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);border:1px solid #504D4E;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;margin:0.2em}div.o_scorm div.o_scorm_navigation a{margin:0 2px}div.o_scorm div.o_scorm_navigation a.o_scorm_previous_icon{background-image:url(../openolat/images/arrow_left_big.png)}div.o_scorm div.o_scorm_navigation a.o_scorm_next_icon{background-image:url(../openolat/images/arrow_right_big.png)}div.o_scorm div.o_scorm_navigation a.hover{background-color:none}.o_scorm_completed,.o_scorm_passed{top:6px;left:6px;background-image:url("../openolat/images/decorator/deco_ok.png")}.o_scorm_failed{top:6px;left:6px !important;background-image:url("../openolat/images/decorator/deco_error.png")}.o_scorm_incomplete{top:6px;left:6px;background-image:url("../openolat/images/decorator/deco_warn.png")}.o_scorm_not_attempted{top:6px;left:6px;background-image:none}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#ffcccc}.d3chart .bar_default_light:hover{fill:#ff6666}.d3chart .bar_default{fill:#ff6666}.d3chart .bar_default:hover{fill:red}.d3chart .bar_default_dark{fill:red}.d3chart .bar_default_dark:hover{fill:black}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.d3chart .x.axis path{display:none}div.o_members_search{padding-top:10px;padding-left:10px}div.filters{text-align:center;padding-top:1.5em}div.o_members_search div.searchitem{margin-bottom:0.5em}div.searchitem select,div.searchitem input{width:250px}.o_members_register{margin-bottom:5px}.o_members_register_active{font-weight:bold;font-size:120%}div.o_members_paging{width:100%;padding-bottom:1em;padding-top:0.5em;text-align:center}div.o_members_paging div{padding-left:1em;padding-right:1em;display:inline}div.o_bcard{background-color:#eee;margin-top:10px;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-o-border-radius:6px}div.o_bcard_header,div.o_members_header{padding:6px;border-bottom:1px solid #fff}div.o_bcard_portrait{float:left;display:inline;width:100px;height:100px;margin:10px}div.o_bcard_portrait img{border:1px #d3d3d3 solid}div.o_bcard_portrait_group{background-image:url(../openolat/images/group_100x100.png);border:1px #d3d3d3 solid}div.o_bcard_text{margin-left:120px;margin-top:10px;line-height:150%}div.o_bcard_footer{text-align:right;clear:both;font-size:95%;color:#1f49b3;padding:5px}div.o_visitingcard h4{background:url("../openolat/images/card-address.png") 0 50% no-repeat;padding-left:20px;margin-bottom:1em}div.o_visitingcard table th{width:20%}.popup_iframe{width:100%;height:100%;border:none;min-height:60em}div.o_reservation{position:relative;margin-top:2em;padding:1em;background:#F7F7F7;border:1px solid #eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_reservation span.o_reservation_name{font-weight:bold;line-height:2em}div.o_reservation span.o_reservation_role_coach{margin-left:1em}div.o_reservation span.o_reservation_accepted{margin-left:2em;background:transparent url(../openolat/images/tick.png) 0 50% no-repeat;color:#009900;padding-left:20px;font-style:italic;line-height:2em}div.o_reservation span.o_reservation_refused{margin-left:2em;background:transparent url(../openolat/images/cross.png) 0 50% no-repeat;color:#990000;padding-left:20px;font-style:italic;line-height:2em}div.o_reservation a.o_reservation_details_link{padding:0 1em}div.o_reservation div.o_reservation_details{padding:1em 0 0 0}div.o_reservation ul{list-style:none;padding:0;margin:0}div.o_reservation ul li{background-repeat:no-repeat;padding:0;margin:0}div.o_infomsgs{padding-top:5px}div.o_infomsgs div.b_datecomp{top:2px;float:left;display:inline}div.o_infomsgs div.o_infomsg{margin-bottom:1em;padding:10px 0 0 0}div.o_infomsgs .b_year{display:none}div.o_infomsgs .o_item_info{color:#7D7D7D;font-size:90%}div.o_infomsgs .o_item_info .o_item_info_mod{color:#98221F}div.b_table_wrapper td a.o_peekview_infomsg_link{display:inline}div.o_infomsgs_config{padding-bottom:5px}div.o_infomsgs_config div{display:inline}.o_infomsg_icon{background-image:url(../openolat/images/information-button.png)}.o_infomsg_create_button{position:absolute;top:0;right:250px}.b_mail_icon{background-image:url(../openolat/images/mail.png)}div.b_mail_message div.b_form_element_wrapper:first-child div.b_form_element{font-weight:bold}.b_mail_new{width:20px !important;background-image:url(../openolat/images/new-text.png)}.b_table_wrapper span.b_mail_unread{display:block;display:inline-block;width:16px;height:16px;background:transparent url(../openolat/images/bullet_black.png) top left no-repeat}.b_table_wrapper span.b_mail_read{display:block;display:inline-block;width:16px;height:16px}.b_table_wrapper span.b_mail_marked{display:block;display:inline-block;width:16px;height:16px;background:transparent url(../openolat/images/flag.png) top left no-repeat}.b_table_wrapper span.b_mail_unmarked{display:block;display:inline-block;width:16px;height:16px}.b_table_wrapper .b_marked{font-weight:bold}ul.b_mail_attachments{list-style:none;margin:0;padding:0}ul.b_mail_attachments li{margin:0}div.o_cmembers div.b_clearfix{margin-bottom:1.5em}div.o_cmembers div.o_cmember{float:left;position:relative;width:30%;height:30px;overflow:hidden;margin:5px 5px 5px 0;padding:8px;border:1px solid #ddd;background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 2px #d3d3d3;-ms-box-shadow:0 1px 2px #d3d3d3;-o-box-shadow:0 1px 2px #d3d3d3;-webkit-box-shadow:0 1px 2px #d3d3d3;box-shadow:0 1px 2px #d3d3d3}div.o_cmembers div.o_cmember div.o_cmember_portrait_wrapper{position:absolute}div.o_cmembers div.o_cmember div.o_cmember_portrait_wrapper div.o_cmember_portrait{top:3px;left:3px;border:1px solid #bbb;width:30px;height:30px;background-color:#fff;background-repeat:no-repeat;background-position:50% 50%}div.o_cmembers div.o_cmember div.o_cmember_info_wrapper{padding-left:35px;line-height:30px;vertical-align:middle}div.o_cmembers a.o_cmembers_mail{float:none;margin-left:5px;padding-left:20px;background-image:url(../openolat/images/mail.png)}div.o_cmembers a.o_cmembers_mail span{display:none}div.o_cmembers h4{padding:7px 0 0 0;clear:both}div.o_ll_container ul li{list-style:circle;margin:1em}div.o_ll_container ul li div{font-style:italic}a.o_ll_browse span{display:block;width:20px;height:18px;background:url(../openolat/images/library.png) top left no-repeat;margin-left:1px}div.b_contexthelp_wrapper{position:relative}a.b_contexthelp{display:block;width:16px;height:16px;background:url(../openolat/images/help.png) no-repeat;line-height:0;cursor:help}div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:0;right:0}fieldset a.b_contexthelp,fieldset div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:-1.5em;right:-0.8em}#b_contexthelp_content{padding:0}#b_ch_topnav_search div.b_form_element_wrapper.b_form_horizontal{margin:2px 0 0 0}#b_contexthelp_rating{text-align:center;margin-top:20px;padding:10px;border-top:1px #ACAAAA solid}#b_contexthelp_rating h4{font-size:90%;margin:0;font-style:italic}#b_contexthelp_rating table{display:inline-block}#b_contexthelp_rating table td{width:50%}.b_contexthelp_icon{background-image:url(../openolat/images/help.png)}div.b_ratings_and_comments{margin:4em 0 1.5em 0;padding-bottom:0.5em;border-bottom:1px solid #eee;font-size:0.9em;position:relative}div.b_ratings_and_comments div.b_rating_wrapper{position:absolute;right:0;bottom:0;width:150px;height:4em}div.b_ratings_and_comments div.b_rating{background:none;border:none;padding:0;margin:0;position:absolute;left:0;bottom:2px;width:100%}div.b_ratings_and_comments div.b_rating_personal{background:#fff;z-index:5}div.b_ratings_and_comments a.b_comments,div.b_eportfolio_map a.b_comments{background:url(../openolat/images/comment.png) 3px 50% no-repeat;padding:3px 0 1px 23px;vertical-align:middle;min-height:18px}div.b_comments{font-size:0.9em}div.b_comments div.b_comment_wrapper{border:1px solid #eee;padding:10px 10px 5px 10px;margin-bottom:2em;background:#fbfbfb;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_comments div.b_comment_wrapper div.b_avatar img{border:1px solid #aaa}div.b_comments div.b_comment_wrapper h5{font-size:1em;background:url(../openolat/images/user.png) 0 50% no-repeat;padding:1px 0 1px 20px;vertical-align:middle;min-height:16px}div.b_comments div.b_comment_wrapper span.b_date{color:#aaaaaa;font-weight:normal;display:block;margin-top:5px}div.b_comments div.b_comment_wrapper div.b_comment_wrapper{margin-left:7px;background:#fff}div.b_comments div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper{background:#fbfbfb}div.b_comments div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper{background:#fff}div.b_comments blockquote.b_comment{padding:3px 0 0 0px;margin:0}div.b_comments div.b_form{padding:10px;border:1px solid #eee;margin:2em 0 2em 0;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_comments div.b_form h5{font-size:1em;margin-bottom:0.5em}div.b_comments div.b_form div.b_button_group{text-align:center}.b_comment_icon{background-image:url(../openolat/images/comment.png)}#b_comment_form_link{font-size:0.9em;position:relative;top:-15px;left:23px}div.b_rating{margin:10px;padding:5px;font-size:80%;white-space:nowrap;text-align:left;background:#EEE;border:1px solid #ACAAAA;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_rating div.b_rating_title{font-weight:bold}div.b_rating div.b_rating_items{vertical-align:middle;line-height:18px}div.b_rating div.b_rating_items a{float:left;display:inline;width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;margin:1px 4px 1px 0}div.b_rating div.b_rating_items a.b_rating_item_on{background-image:url(../openolat/images/star.png)}div.b_rating div.b_rating_items a.b_rating_item_off{background-image:url(../openolat/images/star_grey.png)}div.b_rating div.b_rating_items a:hover{cursor:default}div.b_rating div.b_rating_items.b_enabled a:hover{cursor:pointer}div.b_rating div.b_rating_items.b_enabled a.b_rating_item_off:hover{background-image:url(../openolat/images/star.png)}div.b_rating div.b_rating_explanation{clear:both;font-size:90%}div.b_datecomp{width:2.5em;height:3em;position:relative;margin-right:5px;font-weight:normal;color:white;text-align:center;vertical-align:middle;border:1px solid #000;font-size:85%}div.b_datecomp div{width:100%;position:absolute;left:0}div.b_datecomp div.b_year{height:1em;top:-1.5em;font-size:80%;font-weight:normal;color:#000}div.b_datecomp div.b_month{background:#BE5B5D;height:40%;top:0;font-size:80%;font-weight:normal;color:white}div.b_datecomp div.b_day{background:#fff;height:60%;bottom:0;font-size:120%;font-weight:bold;color:#000;border-top:1px solid #000;border-bottom:1px solid #aaaaaa}.b_content_download{background:url("../openolat/images/drive-download.png") no-repeat top left;padding-left:20px;margin:3px;display:block;min-height:16px}ul.o_sel_repository_owners{list-style:none;margin:0;padding:0;white-space:nowrap}ul.o_sel_repository_owners li{margin:0}div.fx_portal_admin{margin-top:10px}div.fx_portlets_column{width:30%;float:left;margin-right:10px}div.fx_portlets_column div.b_portlet{min-height:1em}div.fx_portlets_column_name{padding:5px 5px 0px 5px}div.fx_portlets_column_name span{color:#4F576A;font-weight:bold;text-deocration:underline}ul.fx_portlets_column_portlets{border:1px solid #eee;padding:0;margin:0;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%)}ul.fx_portlets_column_portlets li{margin-left:0}div.fx_available_portlets{width:28%;float:right}div.fx_available_portlets div.b_portlet{min-height:1em}div.fx_portlets_admin_column{min-height:12em}div.fx_site_admin_column{float:left}div.fx_site_admin_column div.fx_site_definition{min-height:1em}div.o_notifications_news_datechooser{border-bottom:1px solid #bbb;padding:1em 0 1em 0}div.o_notifications_news_datechooser label{padding-right:1em}div.o_notifications_news_subscription{margin:1.5em 0 2em 0}div.o_notifications_news_subscription h4{font-size:110%}div.o_notifications_news_subscription h4.o_returnbox_icon{background-image:url(../openolat/images/box_return.png) !important}div.o_notifications_news_context{color:#7D7D7D;font-size:90%}div.o_notifications_news_content{margin:0.5em 0 0.5em 0}div.o_notifications_news_content ul{list-style-type:none;margin:0}#o_search_form{margin:5px;position:relative}#o_search_form_toggler{background-image:url(../openolat/images/magnifier-zoom.png);cursor:pointer}#o_search_form_content div.b_form div.b_form_element_wrapper div.b_form_element_wrapper{margin:0.5em 0}#o_search_form div.b_contexthelp_wrapper a.b_contexthelp{right:0}#o_search_results{border-top:1px solid #eee;margin:5px}#o_search_results_header{line-height:16px;vertical-align:middle;background:url(../openolat/images/magnifier-zoom.png) no-repeat center left #f8f8f8;padding:2px 2px 2px 20px;margin-bottom:5px}#o_search_results_header div.o_search_results_stats{float:right;display:inline;font-size:90%}#o_search_results_header span.o_search_highlight{padding-left:2em}#o_search_results_header.o_search_did_you_mean,#o_search_results_header.o_search_no_results{background-image:url(../openolat/images/exclamation.png);color:#990000}#o_search_results_header.o_search_did_you_mean span.o_search_did_you_mean_words{color:#000;font-weight:bold}#o_search_results_header #o_search_pageing{padding-left:2em;display:inline}#o_search_pageing_bottom{text-align:center;background:#F8F8F8;border-bottom:1px solid #eee;padding:3px}#o_search_results_toomany{background:url(../openolat/images/exclamation.png) no-repeat center left #f8f8f8;color:#990000;padding:5px 0 3px 20px;position:relative;top:-5px;margin-bottom:5px}div.o_search_result{margin:0 0 1em 0;padding:1em 0 0 0}div.o_search_result_title a{font-weight:bold}div.o_search_result_title a.o_search_result_details_link{margin-left:1em;font-weight:normal;font-size:90%;vertical-align:bottom}div.o_search_result_excerpt{padding:2px 0 1px 0;font-size:95%;max-width:60em}div.o_search_result_excerpt span.o_search_result_highlight{font-weight:bold;background-color:#FFFF80}div.o_search_result_context,div.o_search_result_author,div.o_search_result_lastmod,div.o_search_result_type,div.o_search_result_desc{padding:1px 0;font-size:90%;color:#667}a.o_fulltext_search_button{background:url(../openolat/images/magnifier-zoom.png) top left no-repeat}div.error-box{width:400px;margin:30px auto;padding:20px;border:2px solid red;border-radius:6px;background:white;moz-box-shadow:0 2px 4px #cccccc;-ms-box-shadow:0 2px 4px #cccccc;-o-box-shadow:0 2px 4px #cccccc;-webkit-box-shadow:0 2px 4px #cccccc;box-shadow:0 2px 4px #cccccc;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-o-border-radius:6px}div.error-box h1{background-image:url(../openolat/images/icon_warning_32.png);background-repeat:no-repeat;padding-left:30px;font-size:14pt;font-weight:bold}.b_tag_list{background:url(../openolat/images/tag-label-yellow.png) 0px 3px no-repeat !important}.b_tag_icon{background-image:url(../openolat/images/tag-label-yellow.png)}div.b_tags{margin:2em 0}div.b_tags div{padding:0.5em 0 0 20px}div.b_tags span.b_tag{font-size:80%;padding:5px 2px 5px 2px;line-height:3em;white-space:nowrap}*:first-child + html div.holder{padding-bottom:2px}* html div.holder{padding-bottom:2px}.textbox-outer{list-style-type:none;margin-left:0em}a.bit-box,span.b_tag{-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border:1px solid #CAD8F3;background:#DEE7F8;padding:1px 5px 2px;padding-right:15px;position:relative}div.holder{font-size:80%;min-width:200px;width:auto;margin:0;overflow:hidden;height:auto !important;height:1%;padding:0px 0px 0;cursor:text}div.holder a{float:left;margin:0 5px 4px 0}div.holder a.bit{text-decoration:none;color:black}div.holder a.bit:active,div.holder a.bit:focus{outline:none}div.holder a.bit-box-focus{border-color:#598BEC;background:#598BEC;color:#fff}div.holder a.bit-input .maininput{border:1px solid #eeeeee}div.holder a.bit-input input{width:100px;margin:0;border:none;background:white;outline:0;padding:3px 0 2px}div.holder a.bit-input input.smallinput{width:20px}div.holder a.bit-hover{background:#BBCEF1;border:1px solid #6D95E0}div.holder a.bit-box-focus{background:#598BEC;color:#fff}div.holder a.bit-box a.closebutton{position:absolute;right:0;top:5px;display:block;width:7px;height:7px;font-size:1px;background:url("../openolat/images/tag_x.gif")}div.holder a.bit-box a.closebutton:hover{background-position:7px}div.holder a.bit-box a.closebutton:active{outline:none}div.holder a.bit-box-focus a.closebutton,div.holder a.bit-box-focus a.closebutton:hover{background-position:bottom}ol.textbox-outer{margin:0;padding:0}.textboxlist-auto{position:absolute;width:300px;overflow:visible;display:none;background:#eee;z-index:2}.textboxlist-auto .default{padding:5px 7px;border:1px solid #ccc;border-width:0 1px 1px}.textboxlist-auto ul{display:none;margin:0;padding:0;overflow:auto}.textboxlist-auto ul li{padding:5px 12px;z-index:1000;cursor:pointer;margin:0;list-style-type:none;border:1px solid #ccc;border-width:0 1px 1px}.textboxlist-auto ul li.loading-indicator{padding-left:30px;background-position:5px center;cursor:defat;font-size:100.01% !important;line-height:1.5em}.textboxlist-auto ul li.more-indicator{cursor:defat;font-style:italic}.textboxlist-auto ul li em{font-weight:bold;font-style:normal;background:#ccc}.textboxlist-auto ul li.auto-focus{background:#4173CC;color:#fff}.textboxlist-auto ul li.auto-focus em{background:none}input.inputMessage{color:#AAA;font-size:11px}.b_wizard .textbox-outer{background:url(../openolat/images/tag-label-yellow.png) top left no-repeat}.b_wizard .textbox-outer li{margin-left:18px}.b_wizard .textboxlist-auto ul li{margin-left:0}.b_wizard div.holder a.bit-input input{background:#f8f8f8;padding:0.4em}.clgen_font_arial{font-family:arial,helvetica}.clgen_font_arial_black{font-family:arial black,avant garde}.clgen_font_comic{font-family:comic sans ms,sans-serif}.clgen_font_courier{font-family:courier new,courier}.clgen_font_georgia{font-family:georgia,serif}.clgen_font_impact{font-family:impact,chicago}.clgen_font_lucida{font-family:lucida console,monaco,monospace}.clgen_font_palatino{font-family:palatino linotype,book antiqua,palatino,serif}.clgen_font_times{font-family:times new roman,times}.clgen_font_verdana{font-family:verdana,geneva,sans-serif}.clgen_font_xxlarge{font-size:130%}.clgen_font_xxsmall{font-size:70%}option.Black{background-color:Black}option.Navy{background-color:Navy}option.DarkBlue{background-color:DarkBlue}option.MediumBlue{background-color:MediumBlue}option.Blue{background-color:Blue}option.DarkGreen{background-color:DarkGreen}option.Green{background-color:Green}option.Teal{background-color:Teal}option.DarkCyan{background-color:DarkCyan}option.DeepSkyBlue{background-color:DeepSkyBlue}option.DarkTurquoise{background-color:DarkTurquoise}option.MediumSpringGreen{background-color:MediumSpringGreen}option.Lime{background-color:Lime}option.SpringGreen{background-color:SpringGreen}option.Aqua{background-color:Aqua}option.Cyan{background-color:Cyan}option.MidnightBlue{background-color:MidnightBlue}option.DodgerBlue{background-color:DodgerBlue}option.LightSeaGreen{background-color:LightSeaGreen}option.ForestGreen{background-color:ForestGreen}option.SeaGreen{background-color:SeaGreen}option.DarkSlateGray{background-color:DarkSlateGray}option.DarkSlateGrey{background-color:DarkSlateGrey}option.LimeGreen{background-color:LimeGreen}option.MediumSeaGreen{background-color:MediumSeaGreen}option.Turquoise{background-color:Turquoise}option.RoyalBlue{background-color:RoyalBlue}option.SteelBlue{background-color:SteelBlue}option.DarkSlateBlue{background-color:DarkSlateBlue}option.MediumTurquoise{background-color:MediumTurquoise}option.Indigo{background-color:Indigo}option.DarkOliveGreen{background-color:DarkOliveGreen}option.CadetBlue{background-color:CadetBlue}option.CornflowerBlue{background-color:CornflowerBlue}option.MediumAquaMarine{background-color:MediumAquaMarine}option.DimGray{background-color:DimGray}option.DimGrey{background-color:DimGrey}option.SlateBlue{background-color:SlateBlue}option.OliveDrab{background-color:OliveDrab}option.SlateGray{background-color:SlateGray}option.SlateGrey{background-color:SlateGrey}option.LightSlateGray{background-color:LightSlateGray}option.LightSlateGrey{background-color:LightSlateGrey}option.MediumSlateBlue{background-color:MediumSlateBlue}option.LawnGreen{background-color:LawnGreen}option.Chartreuse{background-color:Chartreuse}option.Aquamarine{background-color:Aquamarine}option.Maroon{background-color:Maroon}option.Purple{background-color:Purple}option.Olive{background-color:Olive}option.Gray{background-color:Gray}option.Grey{background-color:Grey}option.SkyBlue{background-color:SkyBlue}option.LightSkyBlue{background-color:LightSkyBlue}option.BlueViolet{background-color:BlueViolet}option.DarkRed{background-color:DarkRed}option.DarkMagenta{background-color:DarkMagenta}option.SaddleBrown{background-color:SaddleBrown}option.DarkSeaGreen{background-color:DarkSeaGreen}option.LightGreen{background-color:LightGreen}option.MediumPurple{background-color:MediumPurple}option.DarkViolet{background-color:DarkViolet}option.PaleGreen{background-color:PaleGreen}option.DarkOrchid{background-color:DarkOrchid}option.YellowGreen{background-color:YellowGreen}option.Sienna{background-color:Sienna}option.Brown{background-color:Brown}option.DarkGray{background-color:DarkGray}option.DarkGrey{background-color:DarkGrey}option.LightBlue{background-color:LightBlue}option.GreenYellow{background-color:GreenYellow}option.PaleTurquoise{background-color:PaleTurquoise}option.LightSteelBlue{background-color:LightSteelBlue}option.PowderBlue{background-color:PowderBlue}option.FireBrick{background-color:FireBrick}option.DarkGoldenRod{background-color:DarkGoldenRod}option.MediumOrchid{background-color:MediumOrchid}option.RosyBrown{background-color:RosyBrown}option.DarkKhaki{background-color:DarkKhaki}option.Silver{background-color:Silver}option.MediumVioletRed{background-color:MediumVioletRed}option.IndianRed{background-color:IndianRed}option.Peru{background-color:Peru}option.Chocolate{background-color:Chocolate}option.Tan{background-color:Tan}option.LightGray{background-color:LightGray}option.LightGrey{background-color:LightGrey}option.PaleVioletRed{background-color:PaleVioletRed}option.Thistle{background-color:Thistle}option.Orchid{background-color:Orchid}option.GoldenRod{background-color:GoldenRod}option.Crimson{background-color:Crimson}option.Gainsboro{background-color:Gainsboro}option.Plum{background-color:Plum}option.BurlyWood{background-color:BurlyWood}option.LightCyan{background-color:LightCyan}option.Lavender{background-color:Lavender}option.DarkSalmon{background-color:DarkSalmon}option.Violet{background-color:Violet}option.PaleGoldenRod{background-color:PaleGoldenRod}option.LightCoral{background-color:LightCoral}option.Khaki{background-color:Khaki}option.AliceBlue{background-color:AliceBlue}option.HoneyDew{background-color:HoneyDew}option.Azure{background-color:Azure}option.SandyBrown{background-color:SandyBrown}option.Wheat{background-color:Wheat}option.Beige{background-color:Beige}option.WhiteSmoke{background-color:WhiteSmoke}option.MintCream{background-color:MintCream}option.GhostWhite{background-color:GhostWhite}option.Salmon{background-color:Salmon}option.AntiqueWhite{background-color:AntiqueWhite}option.Linen{background-color:Linen}option.LightGoldenRodYellow{background-color:LightGoldenRodYellow}option.OldLace{background-color:OldLace}option.Red{background-color:Red}option.Fuchsia{background-color:Fuchsia}option.Magenta{background-color:Magenta}option.DeepPink{background-color:DeepPink}option.OrangeRed{background-color:OrangeRed}option.Tomato{background-color:Tomato}option.HotPink{background-color:HotPink}option.Coral{background-color:Coral}option.Darkorange{background-color:Darkorange}option.LightSalmon{background-color:LightSalmon}option.Orange{background-color:Orange}option.LightPink{background-color:LightPink}option.Pink{background-color:Pink}option.Gold{background-color:Gold}option.PeachPuff{background-color:PeachPuff}option.NavajoWhite{background-color:NavajoWhite}option.Moccasin{background-color:Moccasin}option.Bisque{background-color:Bisque}option.MistyRose{background-color:MistyRose}option.BlanchedAlmond{background-color:BlanchedAlmond}option.PapayaWhip{background-color:PapayaWhip}option.LavenderBlush{background-color:LavenderBlush}option.SeaShell{background-color:SeaShell}option.Cornsilk{background-color:Cornsilk}option.LemonChiffon{background-color:LemonChiffon}option.FloralWhite{background-color:FloralWhite}option.Snow{background-color:Snow}option.Yellow{background-color:Yellow}option.LightYellow{background-color:LightYellow}option.Ivory{background-color:Ivory}option.White{background-color:White}@media all{.fc-button-print span{background:url(../openolat/images/printer.png) no-repeat right 50%;padding:0 20px 0 0}#o_cal_manage_calendars{float:right;margin-right:10px;margin-top:5px}#o_cal_config_below_cal_container{padding:6px;position:relative;overflow:hidden}#o_cal_config_below_cal_container div.b_contexthelp_wrapper a.b_contexthelp{top:0;right:0}.o_cal_embedded_course_container{padding-top:6px}.o_cal_embedded_course_container #b_content_popup{position:absolute;top:0;right:0}.o_course_run_peekview .o_cal_peekview ul li{list-style:none}#o_cal_wv_actions{vertical-align:middle;line-height:16px;padding-right:30px;float:right;display:inline;position:relative}#o_cal_wv_nav{text-align:left;vertical-align:middle;line-height:16px;float:left;display:inline;position:absolute;top:5px;left:5px}.o_cal_wv_prev,.o_cal_wv_next{margin-left:0 !important;margin-right:0 !important}.o_cal_wv_prev span{width:20px;height:20px;float:left;background:transparent url(arrow_left_big.png) no-repeat center center}.o_cal_wv_next span{width:20px;height:20px;float:left;background:transparent url(arrow_right_big.png) no-repeat center center}#o_cal_wv{padding:0 0px 5px 0px;position:relative;width:auto}#o_cal_wv_header_wrapper{padding-top:10px;position:relative;clear:both}#o_cal_wv_header{border:1px solid #888;position:relative;height:20px;margin-bottom:2px;background:#FFF}.o_cal_wv_grid_wrapper{position:relative;border:1px solid #888;background:#FFF;padding-bottom:1px}.o_cal_wv_grid{position:relative;width:auto;height:600px;overflow:scroll !important;overflow-x:hidden !important}#o_cal_wv_daylong{border:1px solid #888;position:relative;width:auto;overflow:visible;margin-bottom:2px;background:#FFF}.o_cal_wv_dlday{border-left:1px solid #888;position:absolute;width:13%;background:#FFF}.o_cal_wv_time{position:absolute;width:9%}.o_cal_wv_legend_hours{margin:0;padding:0;height:20px;text-align:center;color:#888}.o_cal_wv_legend_hour{border-bottom:1px solid #DDD;margin:0;padding:0;height:39px}.o_cal_wv_legend_hour div{padding:3px 3px 0 3px;text-align:center;color:#444;overflow:hidden;height:16px}.o_cal_wv_day{border-left:1px solid #888;position:absolute;width:13%;border-collapse:collapse;background:#FFF}.o_cal_wv_legend_day{margin:0;padding:0;height:20px}.o_cal_wv_legend_day div{padding:3px 3px 0px 3px;height:15px;overflow:hidden;text-align:center;color:#888}.o_cal_wv_hour{border-bottom:1px dotted #DDD;margin:0;padding:0;height:19px}.o_cal_wv_half_hour{border-bottom:1px solid #DDD;margin:0;padding:0;height:19px}.o_cal_wv_half_hour:hover{background:#DCDDE0}.o_cal_wv_hour:hover{background:#DCDDE0}.o_cal_wv_row0{left:0}.o_cal_wv_row1{left:9%}.o_cal_wv_row2{left:22%}.o_cal_wv_row3{left:35%}.o_cal_wv_row4{left:48%}.o_cal_wv_row5{left:61%}.o_cal_wv_row6{left:74%}.o_cal_wv_row7{left:87%}.o_cal_wv_holiday{background:#eee}.o_cal_wv_today{background:#fff5cc}.o_cal_wv_lastday{border-right:1px solid #888}.o_cal_wv_lasthour{border-bottom:0}.o_cal_wv_event_wrapper{padding:0;margin:0;padding-bottom:2px;position:absolute;overflow:hidden;z-index:10}.o_cal_wv_event{border:1px solid;padding:0;margin:0;position:relative;overflow:hidden;z-index:10}.o_cal_wv_event_overflow{position:absolute;right:2px;z-index:20}.o_cal_wv_event:hover{border-color:#000;z-index:11}.o_cal_wv_event_header{height:1em;overflow:hidden;padding:0px 2px 3px 2px;font-weight:bold;vertical-align:bottom}.o_cal_wv_event_content{padding:1px 2px 1px 2px}.o_cal_toptoolbar{margin-bottom:0.8em;min-width:707px;padding-bottom:8px;border-bottom:1px solid #eee}.o_cal_toptoolbar .o_cal_pagination{float:left;height:2em;width:235px}.o_cal_toptoolbar .o_cal_gotodate{float:left;height:2em;width:350px}.o_cal_gotodate div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:0}.o_cal_toptoolbar .o_cal_search{float:left;height:2em}.o_cal_wv_devent_wrapper{padding:0;margin:0;position:relative;top:-1px;left:-1px;width:auto;height:20px}.o_cal_wv_devent{border:1px solid;padding:0;margin:0;width:100%;height:19px;overflow:hidden;z-index:11}.o_cal_wv_devent:hover{border-color:#000;z-index:12}.o_cal_wv_devent_content{padding:1px 2px 1px 2px}.o_cal_config{margin:2em 0;position:relative;padding:5px}.o_cal_manage_config{position:relative;padding:5px}.o_cal_manage_config fieldset{position:relative;display:inline}.o_cal_config fieldset{position:relative;display:inline}.o_cal_config_scrollwrapper{width:400px;height:100px;overflow:scroll;overflow-x:hidden;border:1px solid #BFBFBF;position:relative}.o_cal_config_row{clear:both;padding:2px 15px 0 0}.o_cal_config_enabled{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/check_on.png) no-repeat;float:left;display:inline}a.o_cal_config_enabled:hover{background:url(../openolat/images/cal/check_on_over.png) no-repeat}.o_cal_config_disabled{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/check_off.png) no-repeat;float:left;display:inline}.o_cal_config_calendar{border:1px solid;padding:0;margin:0;padding:1px 6px 1px 4px;position:relative;height:14px;width:200px;overflow:hidden;float:left;display:inline}.o_cal_config_chosecolor{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/color.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_subscribeical{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_remove_subscribeical{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export_remove.png) no-repeat 0 0;float:left;display:inline}a.o_cal_config_unsubscribe{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_remove.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_regenerate_link{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export_regen.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_remove_cal{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/delete.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_addevent{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--plus.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_importevent{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--arrow.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_readonly{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--plus.png) no-repeat 0 0;opacity:0.6;float:left;display:inline}#o_cal_colorchooser{background:#DCDDE0;border:1px solid #999999;float:left;display:inline;padding:3px;position:relative}#o_cal_colorchooser div{position:relative;border:1px solid #FFF;margin:5px;float:left;display:inline}#o_cal_colorchooser div:hover{border:1px solid #000}#o_cal_colorchooser a{position:relative;width:20px;height:20px;float:left;display:inline}.o_cal_colorchooser_selected{background:url(../openolat/images/cal/selectedcolor.gif) no-repeat 2px 2px}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5d5d5d !important}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:white !important}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:white !important}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5d5d5d !important}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:white !important}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:white !important}div.o_cal_gotodate div.b_form_element{margin-left:0%;margin-top:-4px}div.o_cal_search_subscribe{float:right;margin-right:20px}div.o_cal_week_year_label{font-weight:bold;margin-top:8px}.o_cal_config_regenerate_link{position:relative;float:left;display:inline}.o_cal_wv_event_tooltip{display:none}.o_cal_tooltip_buttons{text-align:right}.o_cal_wv .x-tip-body div{padding:0.2em 0}div.o_cal_wv_event_tooltip_content{padding-top:1em}div.o_cal_tooltip_buttons{padding-top:1em}body.o_cal_print{background:white}body.o_cal_print .o_cal_toptoolbar.b_clearfix{display:none}body.o_cal_print .o_cal_wv{display:none}body.o_cal_print .o_cal_wv_print{display:block}body.o_cal_print #o_cal_config .b_float_right{display:none}body.o_cal_print #o_cal_config_below_cal_container .b_subcolumns{display:none}body.o_cal_print .o_cal_wv_print ul{list-style-type:none;margin:0 0 0 0;padding:0 0 0 0}body.o_cal_print .o_cal_event{clear:left;margin:0.2em 0}body.o_cal_print .o_cal_wv_list *{float:left;width:100%}body.o_cal_print .o_cal_event span{padding:0 0.4em;display:block}body.o_cal_print .o_cal_date{font-weight:bold}body.o_cal_print .o_cal_time{width:25%}body.o_cal_print .o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick;background:white}body.o_cal_print .o_cal_subject p{padding:0 0.4em;margin:0;color:black}body.o_cal_print .o_cal_location{float:right;width:34%}body.o_cal_print .o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}body.o_cal_print .o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block;color:black;background:white}}.o_glossary{margin:0 100px 0 100px}.o_glossary_entry{margin:0px 0 0px 0;padding:10px;border-top:1px solid #DCDDE0;border-left:1px solid #DCDDE0;border-right:1px solid #DCDDE0}.o_glossary_commands{float:right}.o_glossary_addcommand{float:right}.o_glossary dt{font-weight:bold}dt span.o_glossary_author{font-weight:normal}dt span.o_glossary_modifier{font-weight:normal;color:#98221F}dt span.o_glossary_modifier a,dt span.o_glossary_modifier a:hover{color:#98221F}dt o_glossary_synonym{font-size:80%;font-variant:small-caps;font-style:italic}dd{padding-left:20px;clear:both}.o_glossary_register{margin-bottom:10px}.o_glossary_register_active{font-weight:bold;background-color:lightgrey;font-size:120%}.o_tm_glossary{border-bottom:1px dotted #666699}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}@media print{.o_cal_toptoolbar.b_clearfix{display:none}.o_cal_wv{display:none}.o_cal_wv_print{display:block}#o_cal_config .b_float_right{display:none}#o_cal_config_below_cal_container .b_subcolumns{display:none}.o_cal_wv_print ul{list-style-type:none;margin-left:0}.o_cal_event{clear:left;margin:0.2em 0}.o_cal_wv_list *{float:left;width:100%}.o_cal_event span{padding:0 0.4em;display:block}.o_cal_date{font-weight:bold}.o_cal_time{width:25%}.o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick}.o_cal_subject p{padding:0 0.4em;margin:0}.o_cal_location{float:right;width:34%}.o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}.o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block}#o_cal_config_below_cal_container{border:none;background:none;overflow:visible}#o_cal_config_below_cal_container *{background:none;color:black}#o_cal_config_below_cal_container fieldset{border:none}#o_cal_config_below_cal_container fieldset legend{font-weight:bold}}#o_feed .o_box{border:1px solid #eee;padding:0.8em;margin-bottom:2em;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}#o_feed div.o_feed_edit{float:right;position:relative;top:0.2em;margin-right:0}#o_feed #o_link_container{margin-bottom:0.8em}#o_feed #o_link_container div.o_home{text-align:center}#o_feed #o_link_container div.o_older_items{float:left;display:inline}#o_feed #o_link_container div.o_newer_items{float:right;display:inline}#o_feed .b_year_navigation{text-align:center}#o_feed .b_year_navigation .b_months{border-top:1px solid #eee;padding-top:1em;margin-top:0.5em;clear:both;list-style:none}#o_feed .b_year_navigation span.b_disabled{background-image:none}div.o_feed_peekview{margin:1em 0 1em 0}div.o_feed_peekview h5{font-size:1em;position:relative;left:-20px}div.o_feed_peekview div.o_feed_peekview_item{padding-left:20px}#o_feed div.b_datecomp{top:2px;float:left;display:inline}#o_feed p.o_podcast_date{font-size:80%;color:#aaaaaa}#o_feed div.o_podcast_info img.icon{float:left;margin:0 1.5em 1.5em 0;max-width:120px;max-height:120px}#o_feed div.o_podcast_no_image{float:left;margin:0 1em 1em 0;width:100px;height:100px;color:#dfdfdf;background:white;text-align:center;padding:20px;border:2px dashed #dfdfdf;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}#o_feed div.o_podcast_no_image span{vertical-align:middle}#o_feed div.o_podcast_subscription{clear:both}#o_feed div.o_podcast_subscription a.o_podcast_rss_link{display:block;float:right;width:16px;height:16px;background:url(../openolat/images/feed.png) no-repeat}#o_feed div.o_podcast_episode{padding:10px;margin-top:20px;border:1px solid #dfdfdf;background-color:#fdfdfd;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}#o_feed div.o_podcast_episode div.b_ratings_and_comments{margin:2em 0 0 0;padding-bottom:0;border-bottom:0}#o_feed div.o_podcast_episode div.o_podcast_audio{margin-bottom:3px}#o_feed div.o_podcast_episode div.o_podcast_audio embed{width:200px;height:24px}#o_feed div.o_podcast_episode div.o_podcast_video{margin-bottom:3px}#o_feed div.o_podcast_episode div.o_podcast_video embed{width:200px;height:157px}#o_feed .back_link.o_podcast{margin-bottom:1.5em}div.o_podcast_peekview div.o_feed_peekview_item a.o_feed_item_icon{background-image:url(../openolat/images/control/speaker-volume.png)}#o_feed .o_blog_posts .o_post,#o_feed .o_blog_post .o_post{margin-bottom:1em;padding:10px;border:1px solid #dfdfdf;background-color:#fdfdfd;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}.o_post-readmorelinks{margin-top:1em;list-style:none}.o_post-readmorelinks,.o_post-readmorelinks li{margin-left:0;padding-left:0}#o_feed .o_blog_posts .o_draft{padding:0.8em;background-color:#fcf7ac;border:1px solid #fddc55}#o_feed .o_blog_posts .o_scheduled{padding:0.8em;background-color:#d9ffd0;border:1px solid #beffae}#o_feed div.o_blog_info div.o_blog_subscription{min-height:16px;padding-left:20px;background:url(../openolat/images/feed.png) no-repeat}#o_feed .o_blog_info .o_author,#o_feed .o_blog_posts .o_item_info{color:#7D7D7D;font-size:90%;margin:0}#o_feed .o_blog_posts p.o_item_info span.o_item_info_mod{color:#98221F}#o_feed .o_blog_post .back_link{margin-bottom:1.5em}div.o_blog_peekview div.o_feed_peekview_item a.o_feed_item_icon{background-image:url(../openolat/images/comment.png)}#o_instantmessaging_status_changer{padding:1em 0 0 0;margin:0}#o_instantmessaging_status_changer a.b_contexthelp{margin-top:5px;padding-right:5px}#o_instantmessaging_status_changer ul{list-style-type:none;padding:0;margin:0}#o_instantmessaging_status_changer li{padding:0;margin:0}#o_instantmessaging_status_changer li a{padding:0.1em 0 0.1em 20px;background-repeat:no-repeat;background-position:0 50%}.o_instantmessaging_chat_history{border:1px solid #ACAAAA;height:170px;font-size:90%;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_instantmessaging_chat_history div.o_instantmessaging_message_group{border-top:1px solid #eee;padding:3px 3px 3px 40px;min-height:40px;position:relative;background:#fff}.o_instantmessaging_chat_history div.o_instantmessaging_message_group.o_odd{background:#F4F4F4}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_avatar{position:absolute;top:3px;left:3px;border:1px solid #bbb;width:30px;height:30px;background-color:#fff;background-repeat:no-repeat;background-position:50% 50%}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_from{text-align:left;color:#999;text-decoration:none;font-weight:500}.o_instantmessaging_chat_history div.o_instantmessaging_message_group a:hover{color:#000;text-decoration:none}.o_instantmessaging_chat_history div.o_instantmessaging_message_group a:hover div.o_instantmessaging_from{color:#000}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_body{padding:3px 0 3px 0}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_body span.o_instantmessaging_date{text-align:right;color:#999;font-size:90%;font-weight:200}.o_instantmessaging_chat_form input{width:99%}.o_instantmessaging_chat_form div.b_button_group{margin-top:1em}#o_instantmessages_buddieslist{font-size:90%;padding:1em 0 0 0;margin:0}#o_instantmessages_buddieslist a.b_contexthelp{margin-top:5px;padding-right:5px}#o_instantmessages_buddieslist ul{list-style-type:none;padding:0;margin:0}#o_instantmessages_buddieslist li{margin:0;padding:0}#o_instantmessages_buddieslist li.o_instantmessaging_group{padding-bottom:0.5em}#o_instantmessages_buddieslist li.o_instantmessaging_group div.o_instantmessaging_groupname{padding:0 0 0 20px;background:url(../openolat/images/users.png) no-repeat 0 50%}#o_instantmessages_buddieslist a.o_instantmessaging_vip span{font-weight:bold}#o_instantmessages_buddieslist li a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler{border-bottom:1px #eee solid;margin:0 0 0.5em 0;padding:0 0 0.5em 0}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler span{white-space:nowrap}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%;margin-right:1em}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_showgroupswitch{background-image:url(../openolat/images/users_conf.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_hidegroupswitch{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6;background-image:url(../openolat/images/users_conf.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_showofflineswitch{background-image:url(../openolat/images/im/status-offline.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_hideofflineswitch{background-image:url(../openolat/images/im/status.png)}#o_instantmessages_buddy{margin:1em 0 2em 0}#o_instantmessages_buddy a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%}div.o_groupchat_roster{margin:0}div.o_groupchat_roster ul{list-style-type:none;margin:0;padding:0}div.o_groupchat_roster ul li{font-size:90%;margin:0;padding:0 0 0 20px;background:url(../openolat/images/user.png) no-repeat 0 50%}div.o_groupchat_roster ul li.o_instantmessaging_anonymous{background-image:url(../openolat/images/user_silhouette.png)}div.o_groupchat_roster ul li.o_instantmessaging_vip{font-weight:bold}div.o_groupchat_roster ul li.o_instantmessaging_vip.o_instantmessaging_anonymous{font-weight:normal}.o_instantmessaging_available_icon{background-image:url(../openolat/images/im/status.png)}.o_instantmessaging_dnd_icon{background-image:url(../openolat/images/im/status-away.png)}.o_instantmessaging_unavailable_icon{background-image:url(../openolat/images/im/status-offline.png)}.o_instantmessaging_new_msg_icon{background-image:url(../openolat/images/im/new_message.png)}.o_instantmessaging_chat_icon{background-image:url(../openolat/images/im/balloon-white-left.png)}.o_instantmessaging_refresh_icon{background-image:url(../openolat/images/qti/tries.png)}div.o_home_portaleditlink{position:absolute;top:1em;right:0.6em}.o_home_main{text-align:center}div.o_home_rsslink{clear:both;float:right;display:inline;margin:10px 0}div.o_home_rsslink a{float:right;display:inline}div.o_home_rsslink a.o_home_rsslink{background:url(../openolat/images/feed.png) no-repeat;width:16px;display:block;height:16px;line-height:0}.b_portlet{position:relative;margin:10px;min-height:13em}.b_portlet .b_portlet_showall{font-size:95%;position:absolute;right:0;top:0}.b_portlet .b_portlet_header{border-bottom:1px solid #ff6666;white-space:nowrap;overflow-y:hidden !important;overflow-x:hidden !important}.b_portlet .b_portlet_content{position:relative;padding:1em 0 0 0}.b_portlet div.b_portlet_table table{background:none;border:none}.b_portlet div.b_portlet_table table th,.b_portlet div.b_portlet_table table td{padding:0}.b_portlet div.b_portlet_table table tbody tr{background:transparent}.b_portlet div.b_portlet_table table tbody tr.b_table_odd td{background:transparent}.b_portlet div.b_portlet_table table tbody tr td{border:0 !important}.b_portlet div.b_portlet_table table tbody tr:hover,.b_portlet div.b_portlet_table table tbody tr:hover td,.b_portlet div.b_portlet_table table tbody tr:focus,.b_portlet div.b_portlet_table table tbody tr:focus td{background:transparent}.b_portlet div.b_portlet_table div.b_table_empty{background:none;padding:0;margin:0}div.o_portlet_repository_student td.b_first_child{width:24px}div.o_portlet_repository_teacher td.b_first_child{width:24px}.b_portlet .b_portlet_header{background-repeat:no-repeat;background-position:0% 50%;padding-left:27px;padding-top:5px;padding-bottom:5px}div.o_portlet_calendar div.b_portlet_header{background-image:url(../openolat/images/calendar_empty.png);padding-left:2px;padding-top:8px}div.o_portlet_calendar.o_day_1 div.b_portlet_header strong:before{content:"1";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_2 div.b_portlet_header strong:before{content:"2";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_3 div.b_portlet_header strong:before{content:"3";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_4 div.b_portlet_header strong:before{content:"4";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_5 div.b_portlet_header strong:before{content:"5";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_6 div.b_portlet_header strong:before{content:"6";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_7 div.b_portlet_header strong:before{content:"7";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_8 div.b_portlet_header strong:before{content:"8";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_9 div.b_portlet_header strong:before{content:"9";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_10 div.b_portlet_header strong:before{content:"10";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_11 div.b_portlet_header strong:before{content:"11";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_12 div.b_portlet_header strong:before{content:"12";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_13 div.b_portlet_header strong:before{content:"13";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_14 div.b_portlet_header strong:before{content:"14";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_15 div.b_portlet_header strong:before{content:"15";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_16 div.b_portlet_header strong:before{content:"16";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_17 div.b_portlet_header strong:before{content:"17";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_18 div.b_portlet_header strong:before{content:"18";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_19 div.b_portlet_header strong:before{content:"19";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_20 div.b_portlet_header strong:before{content:"20";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_21 div.b_portlet_header strong:before{content:"21";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_22 div.b_portlet_header strong:before{content:"22";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_23 div.b_portlet_header strong:before{content:"23";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_24 div.b_portlet_header strong:before{content:"24";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_25 div.b_portlet_header strong:before{content:"25";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_26 div.b_portlet_header strong:before{content:"26";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_27 div.b_portlet_header strong:before{content:"27";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_28 div.b_portlet_header strong:before{content:"28";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_29 div.b_portlet_header strong:before{content:"29";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_30 div.b_portlet_header strong:before{content:"30";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_31 div.b_portlet_header strong:before{content:"31";font-size:smaller;padding-right:16px}div.o_portlet_infomsg div.b_portlet_header{background-image:url(../openolat/images/comment.png)}div.o_portlet_quickstart div.b_portlet_header{background-image:url(../openolat/images/mouse.png)}div.o_portlet_bookmark div.b_portlet_header{background-image:url(../openolat/images/book-open-bookmark.png)}div.o_portlet_groups div.b_portlet_header{background-image:url(../openolat/images/users.png)}div.o_portlet_notes div.b_portlet_header{background-image:url(../openolat/images/sticky-note--pencil.png)}div.o_portlet_noti div.b_portlet_header{background-image:url(../openolat/images/mail.png)}div.o_portlet_eff div.b_portlet_header{background-image:url(../openolat/images/script-stamp.png)}div.o_portlet_repository_student div.b_portlet_header{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}div.o_portlet_repository_teacher div.b_portlet_header{background-image:url(../openolat/images/le_resources/book-open-text-image-red.png)}div.b_portlet_iframe div.b_portlet_header{background-image:url(../openolat/images/layer.png)}div.b_portlet_sysinfo div.b_portlet_header{background-image:url(../openolat/images/exclamation.png)}div.b_portlet_dyk div.b_portlet_header{background-image:url(../openolat/images/light-bulb.png)}div.o_portlet_infomessages div.b_portlet_header{background-image:url(../openolat/images/information-button.png)}div.b_portlet.o_pt_w_if div.b_portlet_header{background-image:url(../openolat/images/globe.png)}div.b_portlet.b_portlet_edit{background:#FFE793;border:1px solid #FF9E3E;padding:2px}div.b_portlet.b_portlet_edit .b_portlet_header{height:23px}div.b_portlet_toolbox{position:absolute;top:0;right:0;padding:2px;height:20px;overflow-y:hidden !important;overflow-x:hidden !important}div.b_portlet_toolbox a,div.b_portlet_toolbox span.b_disabled{background-repeat:no-repeat;background-position:1px 1px;float:right;width:18px;height:18px;overflow:hidden}div.b_portlet_toolbox div{display:inline}div.b_portlet_toolbox > a,div.b_portlet_toolbox > span{border:1px solid #888;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;background:#eee;background-repeat:no-repeat;background-position:center}div.b_portlet_toolbox a.b_portlet_edit_left{background-image:url(../openolat/images/arrow_left_big.png)}div.b_portlet_toolbox a.b_portlet_edit_right{background-image:url(../openolat/images/arrow_right_big.png)}div.b_portlet_toolbox a.b_portlet_edit_down{background-image:url(../openolat/images/arrow_down_big.png)}div.b_portlet_toolbox a.b_portlet_edit_up{background-image:url(../openolat/images/arrow_up_big.png)}div.b_portlet_toolbox a.b_portlet_edit_delete{background-image:url(../openolat/images/bin-metal-full.png)}div.b_portlet_toolbox a.b_portlet_edit_sort_auto{background-image:url(../openolat/images/table_sort.png)}div.b_portlet_toolbox a.b_portlet_edit_sort_manual{background-image:url(../openolat/images/table_gear.png)}div.b_portlet_toolbox span.b_portlet_edit_left_disabled{background-image:url(../openolat/images/arrow_left_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_right_disabled{background-image:url(../openolat/images/arrow_right_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_down_disabled{background-image:url(../openolat/images/arrow_down_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_up_disabled{background-image:url(../openolat/images/arrow_up_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_sort_auto_disabled{background-image:url(../openolat/images/table_sort.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_sort_manual_disabled{background-image:url(../openolat/images/table_gear.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}.b_toolboxes{padding:6px}.b_toolboxes .b_toolbox{margin-bottom:20px}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper{border-bottom:1px solid #ff6666;background:inherit}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head{vertical-align:top}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head strong{font-weight:bold}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head_icon{background:transparent no-repeat 3px 50%;padding-left:19px;line-height:1.2em;color:black}.b_toolboxes .b_toolbox .b_toolbox_content ul{padding:0 0 0 6px;margin:0;list-style:none}.b_toolboxes .b_toolbox .b_toolbox_content li{padding:0;margin:0;line-height:1.7em;white-space:nowrap}.b_toolboxes .b_toolbox .b_toolbox_content li a{color:#667;background-repeat:no-repeat;background-position:0 50%;padding-left:20px;display:block}.b_toolboxes .b_toolbox .b_toolbox_content li a:focus,.b_toolboxes .b_toolbox .b_toolbox_content li a:hover,.b_toolboxes .b_toolbox .b_toolbox_content li a:active{color:#504D4E;text-decoration:underline}.b_toolboxes .b_toolbox .b_toolbox_content li div.b_note,.b_toolboxes .b_toolbox .b_toolbox_content li div.b_important,.b_toolboxes .b_toolbox .b_toolbox_content li div.b_warning{padding:0 0 0 20px;margin:0;border-bottom:0}.b_toolboxes .b_toolbox .b_toolbox_content li a.b_toolbox_toggle{padding-left:0;display:inline}.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_toggle_wrapper{float:right;font-size:90%}.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_link.b_disabled,.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_disabled{color:#999;background:no-repeat 0 50% url(../openolat/images/bullet_white.png);padding-left:18px;display:block}div.b_portlet.o_pt_w_if div.b_portlet_header{background-image:url(../openolat/images/globe.png)}div.b_portlet p{margin-bottom:0}div.b_portlet_dyk_q{font-weight:bold}div.b_portlet_dyk_a{padding-top:5px}div.b_portlet_dyk_next{text-align:right}div.f_library_catalog div.b_tree ul{white-space:normal}div.f_library_catalog div.b_tree ul.b_tree_l1 li a.b_tree_icon{background-image:none !important}div.f_library_catalog div.f_metadata{background-color:#fcfcfc;margin-left:20px;padding:4px}div.f_library_catalog h4{padding-left:25px;background-repeat:no-repeat;background-position:center left}div.f_library_catalog div.f_folder_info div.f_metadata{margin-bottom:1.5em}div.f_library_catalog div.b_noti{right:90px}div.f_library_catalog div.f_thumbnails_switch{border:1px solid #E9EAEF;display:inline;position:absolute;top:0px;right:0px;float:right;padding:3px 3px 3px 23px}div.f_library_catalog div.f_thumbnails_on{background:url(../openolat/images/docs/document_preview.png) no-repeat 3px 50%}div.f_library_catalog div.f_thumbnails_off{background:url(../openolat/images/docs/document_preview.png) no-repeat 3px 50%;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=70);-moz-opacity:0.7;-khtml-opacity:0.7;opacity:0.7}div.f_library_catalog th,div.f_library_catalog td{text-align:left;font-size:0.9em;color:#999;margin:0;padding:0;border:0}div.f_library_catalog th{font-weight:bold;width:14em;vertical-align:top}div.f_library_catalog h3.b_filetype_folder{margin-top:20px}div.f_library_catalog div.f_item{margin-bottom:1em;padding:0.5em}div.f_library_catalog div.f_item div.f_item_thumbnail{width:200px;height:200px;float:left;margin-right:20px}div.f_library_catalog div.f_item div.f_item_links a{background-repeat:no-repeat}div.f_library_catalog div.f_item div.f_item_links a.b_filetype_file{display:block;width:70%;float:left;padding:2px 10px 2px 20px;background-repeat:no-repeat;margin:0}div.f_library_catalog div.f_item div.f_item_links a.f_permalink{text-decoration:none;display:block;width:9px;height:9px;float:right;padding:4px 2px 2px 2px;margin:0;background-position:center center}div.f_library_catalog div.f_item div.f_item_links span a.f_sendmail{text-decoration:none;background:url(../openolat/images/mail.png) no-repeat top left;display:block;width:16px;height:16px;float:right;padding:0 0 0 2px;margin:0}div.f_library_catalog div.f_item div.f_metadata{position:relative;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;moz-box-shadow:0 1px 2px #d3d3d3;-ms-box-shadow:0 1px 2px #d3d3d3;-o-box-shadow:0 1px 2px #d3d3d3;-webkit-box-shadow:0 1px 2px #d3d3d3;box-shadow:0 1px 2px #d3d3d3}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail{float:left;border-right:1px solid #eeeeee;margin-right:1em}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail_inner{width:200px;height:200px}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail_unavailable{width:200px;height:200px;background-repeat:no-repeat;background-position:50% 50%}div.f_library_catalog div.f_item div.f_metadata div.f_metadata_text{padding-bottom:35px}div.f_library_catalog div.f_item div.f_metadata div.f_metadata_text_inner{width:100%}div.f_library_catalog div.f_item div.f_metadata div.f_item_ratings{position:absolute;bottom:3px;right:3px;width:300px}div.f_library_catalog div.f_item div.f_metadata div.f_item_ratings div.b_ratings_and_comments{margin:0;border:none}div.f_library_catalog div.f_item_selected div.f_metadata{background-color:#F0F0F0 !important;moz-box-shadow:1 1px 4px #d3d3d3;-ms-box-shadow:1 1px 4px #d3d3d3;-o-box-shadow:1 1px 4px #d3d3d3;-webkit-box-shadow:1 1px 4px #d3d3d3;box-shadow:1 1px 4px #d3d3d3}div.f_library_catalog h3.f_search_results{background-image:url(../openolat/images/magnifier-zoom.png) !important}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox input{line-height:1.3em;margin:0;width:10em}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox input:focus{border:1px solid #504D4E}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox button{width:16px;height:16px;background:url(../openolat/images/magnifier-zoom.png) no-repeat;border:0;vertical-align:top}div.f_library_catalog_wide div.f_metadata{background-color:#fcfcfc}div.f_library_catalog_wide th,div.f_library_catalog_wide td{text-align:left;font-size:0.9em;color:#999;margin:0;padding:0;border:0}div.f_library_catalog_wide th{font-weight:bold;width:14em;vertical-align:top}div.f_library_catalog_wide h3.b_filetype_folder{margin-top:20px}div.f_library_catalog_wide div.f_item{margin-bottom:30px}div.f_library_catalog_wide div.f_item div.f_thumbnail{width:280px;height:158px;float:left;border-right:1px solid #999}div.f_library_catalog_wide div.f_item div.f_item_links a{background-repeat:no-repeat}div.f_library_catalog_wide div.f_item div.f_item_links a.b_filetype_file{display:block;width:70%;float:left;padding:2px 10px 2px 20px;background-repeat:no-repeat;margin:0}div.f_library_catalog_wide div.f_item div.f_item_links a.f_permalink{text-decoration:none;display:block;width:9px;height:9px;float:right;padding:4px 2px 2px 2px;margin:0;background-position:center center}div.f_library_catalog_wide div.f_item div.f_item_links span a.f_sendmail{text-decoration:none;background:url(../openolat/images/mail.png) no-repeat top left;display:block;width:16px;height:16px;float:right;padding:0 0 0 2px;margin:0}div.f_library_catalog_wide div.f_item div.f_metadata{position:relative;border:1px solid #999;moz-box-shadow:0 1px 2px #999999;-ms-box-shadow:0 1px 2px #999999;-o-box-shadow:0 1px 2px #999999;-webkit-box-shadow:0 1px 2px #999999;box-shadow:0 1px 2px #999999}div.f_library_catalog_wide div.f_item div.f_metadata div.f_thumbnail_inner{width:280px;height:158px}div.f_library_catalog_wide div.f_item div.f_metadata div.f_thumbnail_unavailable{width:280px;height:158px;background-image:url(../openolat/images/no_preview.png);background-repeat:no-repeat;background-position:50% 50%}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_text{margin:10px 220px 10px 300px}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_text_inner{width:100%}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_additional_infos{position:absolute;top:0;right:0;height:158px;width:210px;border-left:1px solid #999}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_additional_infos_inner{margin:10px 10px 10px 10px}div.f_library_catalog_wide div.f_item_selected div.f_metadata{background-color:#F0F0F0 !important;moz-box-shadow:1 1px 4px #d3d3d3;-ms-box-shadow:1 1px 4px #d3d3d3;-o-box-shadow:1 1px 4px #d3d3d3;-webkit-box-shadow:1 1px 4px #d3d3d3;box-shadow:1 1px 4px #d3d3d3}div.f_library_catalog_wide h3.f_search_results{background-image:url(../openolat/images/magnifier-zoom.png) !important}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox input{line-height:1.3em;margin:0;width:10em}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox input:focus{border:1px solid #504D4E}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox button{width:16px;height:16px;background:url(../openolat/images/magnifier-zoom.png) no-repeat;border:0;vertical-align:top}div.f_library_catalog_condensed div.f_item_condensed{width:280px;height:280px;margin-right:30px;margin-bottom:30px;float:left;-webkit-box-shadow:0 1px 2px 0 #999;box-shadow:0 1px 2px 0 #999;border:1px solid #999;background-color:#fcfcfc}div.f_library_catalog_condensed div.f_item_condensed div.f_thumbnail{height:158px;width:280px}div.f_library_catalog_condensed div.f_item_condensed div.f_metadata_text{padding:12px 8px 12px 12px}div.f_library_catalog_condensed div.f_item_condensed div.o_eff_statement_progress{width:200px;margin:20px 0px 0px 20px}div.f_library_overview img{float:right;max-width:50%}div.f_library_overview p{padding-left:20px}div.f_library_overview div.f_library_big_icon{float:right;background-repeat:no-repeat;background-size:100%;width:45%;height:300px;margin:0 20px 0 20px}div.f_library_overview div.f_library_newest_files ul li{white-space:normal;padding-bottom:0.3em}div.f_library_overview div.f_library_newest_files ul li a{background-position:top left;min-height:16px}.f_library_big_icon{background-image:url(../openolat/images/library_image.png)}.f_library_icon{background-image:url(../openolat/images/library.png)}.f_thumbnail_unavailable{background-image:url(../openolat/images/no_preview.png)}#b_main.o_coaching div.o_eff_statement_progress{width:100%;height:15px;background-color:#eeeeee;border:1px solid #777777}#b_main.o_coaching div.o_eff_statement_progress div.o_eff_statement_solved{height:15px;background:#ff6666;background:-moz-linear-gradient(top, #ff6666 0%, red 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ff6666), color-stop(100%, red));background:-webkit-linear-gradient(top, #ff6666 0%, red 100%);background:-o-linear-gradient(top, #ff6666 0%, red 100%);background:-ms-linear-gradient(top, #ff6666 0%, red 100%);background:linear-gradient(top, #ff6666 0%, red 100%)}#b_main.o_coaching .o_eff_statement_rg div.o_eff_statement_progress{background:#f85032;background:-moz-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f85032), color-stop(50%, #f16f5c), color-stop(51%, #f6290c), color-stop(100%, #e73827));background:-webkit-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-ms-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%)}#b_main.o_coaching .o_eff_statement_rg div.o_eff_statement_progress div.o_eff_statement_solved{background:#9dd53a;background:-moz-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #9dd53a), color-stop(50%, #a1d54f), color-stop(51%, #80c217), color-stop(100%, #7cbc0a));background:-webkit-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-o-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-ms-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%)}#b_main.o_coaching div.o_eff_statement_details{margin:10px 0 10px 0}#b_main.o_coaching .b_toolbar_center span.b_disabled{display:none}div.o_eff_statement_progress{width:100%;height:15px;background-color:#eeeeee;border:1px solid #777777}div.o_eff_statement_progress div.o_eff_statement_solved{height:15px;background-color:#81afca}.o_eff_statement_rg div.o_eff_statement_progress{background-color:red}.o_eff_statement_rg div.o_eff_statement_progress div.o_eff_statement_solved{background-color:green}div.o_eff_statement_details{margin:10px 0 10px 0}div.o_eff_statement_recalculating{padding-left:30px;background:transparent url(../openolat/images/ajax-loader.gif) no-repeat top left}.ui-widget{font-family:Courier;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-dialog{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-dialog .ui-widget-header .ui-icon-closethick{background:white url("../openolat/images/close.png") no-repeat center center}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:2px 30px 2px 5px}.ui-dialog.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-dialog.ui-widget-content{border-color:red}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-autocomplete-input{line-height:1.5em;font-size:98%}.ui-autocomplete{z-index:10000}.ui-autocomplete.ui-menu{padding:1px}.ui-autocomplete.ui-corner-all{border:1px solid red;border-top:none;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:2px;-webkit-border-bottom-left-radius:2px;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:2px;-moz-border-radius-bottomleft:2px;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px;moz-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3)}.ui-autocomplete a.ui-corner-all{border:none;margin:-1px;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0}.ui-autocomplete a.ui-corner-all.ui-state-focus{background:#ffdbc1}.ui-autocomplete .b_error_icon{color:#990000;font-style:italic}.ui-datepicker{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-datepicker .ui-widget-header .ui-datepicker-prev.ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:white url("../openolat/images/arrow_right_big.png") no-repeat center center}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:white url("../openolat/images/arrow_left_big.png") no-repeat center center}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #ff6666;background:#ffcccc}.ui-datepicker.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-datepicker.ui-widget-content{border-color:red}.ui-tooltip{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-tooltip.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-tooltip.ui-widget-content{border:1px solid red}ul.tagit li.tagit-choice.ui-widget-content.ui-state-default{background:#DEE7F8;border:1px solid #CAD8F3}ul.tagit.ui-corner-all{border:none;background:none}.ui-layout-pane{border:none}.ui-layout-resizer{background:none;border-width:1px;border-style:dotted}.ui-layout-toggler-hover,.ui-layout-resizer-hover .ui-layout-toggler-hover{background-color:red}.ui-layout-resizer-open-hover,.ui-layout-resizer-dragging{background:#ffcccc}.fc-state-highlight{background:#ffdbc1}#b_page_wrapper{border-bottom:0;padding:0 10px 0 10px;moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}#b_header{height:50px}#b_header #b_logo{position:absolute;top:10px;left:0;width:120px;height:40px;background:url("images/openolat_powerd_by_120x30.png") no-repeat}@media print{.o_noprint{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}#b_toplink{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}body{font-size:10pt}.b_noti{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}#b_main.o_loginscreen{background-image:none}#b_main.o_home{background-image:none}#b_main.o_editor{background-image:none}#b_main{moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;border:none}body,#b_page_margins,#b_page,#b_main,#b_page_wrapper{margin:0;padding:0;border:0}body *{font-family:"Times New Roman", Times, serif}code,pre{font-family:"Courier New", Courier, mono}#b_page_margins,#b_page{width:100% !important;min-width:0;max-width:none}#b_footer,#b_topnav,#b_nav,#search{display:none}#b_col1,#b_col2{display:none}#b_col3{margin:0 !important;border:none !important}.b_c25l,.b_c33l,.b_c38l,.b_c50l,.b_c62l,.b_c66l,.b_c75l,.b_c25r,.b_c33r,.b_c38r,.b_c50r,.b_c62r,.b_c66r,.b_c75r{width:100%;margin:0;float:none;overflow:visible;display:table}.b_subc,.b_subcl,.b_subcr{margin:0;padding:0}h1,h2,h3,h4,h5,h6{page-break-after:avoid}#b_page a[href^="http:"],#b_page a[href^="https:"]{padding-left:0;background-image:none}#b_col1_content:before,#b_col2_content:before,#b_col3_content:before{content:"";color:#888;background:inherit;display:block;font-weight:700;font-size:1.5em}.b_floatbox,.b_subcolumns,.b_subcolums_oldgecko{overflow:visible;display:table}#jsMath_PrintWarning{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}.o_wiki_wrapper .b_c20l,.o_wiki_wrapper .o_wikimod_nav{display:none}.o_wiki_wrapper .b_c80r{width:100%}.o_wiki_wrapper .b_c80r div.b_tabbedpane_tabs{display:none}.o_cal_toptoolbar.b_clearfix{display:none}.o_cal_wv{display:none}.o_cal_wv_print{display:block}#o_cal_config .b_float_right{display:none}#o_cal_config_below_cal_container .b_subcolumns{display:none}.o_cal_wv_print ul{list-style-type:none;margin-left:0}.o_cal_event{clear:left;margin:0.2em 0}.o_cal_wv_list *{float:left;width:100%}.o_cal_event span{padding:0 0.4em;display:block}.o_cal_date{font-weight:bold}.o_cal_time{width:25%}.o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick}.o_cal_subject p{padding:0 0.4em;margin:0}.o_cal_location{float:right;width:34%}.o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}.o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block}#o_cal_config_below_cal_container{border:none;background:none;overflow:visible}#o_cal_config_below_cal_container *{background:none;color:black}#o_cal_config_below_cal_container fieldset{border:none}#o_cal_config_below_cal_container fieldset legend{font-weight:bold}} +**/@import url(all/content.css);.b_with_small_icon_left,div.b_table_wrapper div.b_table_empty{padding:2px 0 2px 20px;min-height:16px;background-position:0 50%;background-repeat:no-repeat}option.b_with_small_icon_left{padding:0 0 0 20px;vertical-align:middle;min-height:11px;background-position:0 50%;background-repeat:no-repeat}.b_with_small_icon_right,#b_main_toolbar div.b_breadcumb_close .b_close{padding:1px 20px 1px 0px;min-height:16px;background-position:100% 50%;background-repeat:no-repeat}.b_with_small_icon_only span{display:none}.b_small_icon{float:left;display:inline;width:16px;height:16px;background-position:0 50%;background-repeat:no-repeat}td a span.b_small_table_icon,td a.b_small_table_icon{padding-left:20px;width:16px;height:16px;background-position:2px 50%;background-repeat:no-repeat}a.b_small_icon:hover{text-decoration:none}.b_info_icon{background-image:url("../openolat/images/comment.png")}.b_warn_icon,div.b_table_wrapper div.b_table_empty{background-image:url("../openolat/images/exclamation.png")}.b_error_icon{background-image:url("../openolat/images/cross-circle.png")}.b_new_icon{background-image:url("../openolat/images/new-text.png")}.b_institution_icon{background-image:url("../openolat/images/home.png")}.b_group_icon{background-image:url("../openolat/images/users.png")}.b_group_icon.b_managed_icon{background-image:url("../openolat/images/managed_users.png")}.b_qpool_icon{background-image:url("../openolat/images/qti/pool.png")}.b_user_icon{background-image:url("../openolat/images/user.png")}.b_move_left_icon{background-image:url("../openolat/images/arrow_left_big.png")}.b_move_right_icon{background-image:url("../openolat/images/arrow_right_big.png")}.b_move_down_icon{background-image:url("../openolat/images/arrow_down_big.png")}.b_move_up_icon{background-image:url("../openolat/images/arrow_up_big.png")}.b_delete_icon{background-image:url("../openolat/images/bin-metal-full.png")}.b_share_icon{background-image:url("../openolat/images/share.png")}.b_status_enabled_icon{background-image:url("../openolat/images/tick.png")}.b_status_disabled_icon{background-image:url("../openolat/images/cross.png")}.b_edit_icon{background-image:url("../openolat/images/docs/document--pencil.png")}.b_add_icon{background-image:url("../openolat/images/plus-circle.png")}.b_open_icon{background-image:url("../openolat/images/control/control.png")}.b_star_icon{background-image:url(../openolat/images/star.png)}.b_star_small_icon{background-image:url(../openolat/images/star-small.png)}.o_fulltext_search_button{background-image:url("../openolat/images/magnifier-zoom.png")}.o_help_icon{background-image:url("../openolat/images/help.png")}.o_rss_icon{background-image:url("../openolat/images/feed.png")}.o_login_guests{background-image:url("../openolat/images/user_silhouette.png")}.o_login_pwd{background-image:url("../openolat/images/user_excl.png")}.o_login_register{background-image:url("../openolat/images/user_register.png")}.o_news_icon{background-image:url("../openolat/images/information-white.png")}.o_course_icon{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}.o_chat_icon{background-image:url("../openolat/images/balloons-box.png")}.o_admin_icon{background-image:url("../openolat/images/wrench-screwdriver.png")}.o_calendar_icon{background-image:url("../openolat/images/calendar.png")}.o_locked_icon{background-image:url("../openolat/images/locked.png")}.b_backward_icon{background-image:url("../openolat/images/arrow_left.png")}.b_forward_icon{background-image:url("../openolat/images/arrow_right.png")}.b_flag_en{background-image:url("../openolat/images/flags/gb.png")}.b_flag_de{background-image:url("../openolat/images/flags/de.png")}.b_flag_fr{background-image:url("../openolat/images/flags/fr.png")}.b_flag_it{background-image:url("../openolat/images/flags/it.png")}.b_flag_es{background-image:url("../openolat/images/flags/es.png")}.b_flag_da{background-image:url("../openolat/images/flags/dk.png")}.b_flag_cs{background-image:url("../openolat/images/flags/cz.png")}.b_flag_el{background-image:url("../openolat/images/flags/gr.png")}.b_flag_ee{background-image:url("../openolat/images/flags/ee.png")}.b_flag_ru{background-image:url("../openolat/images/flags/ru.png")}.b_flag_pl{background-image:url("../openolat/images/flags/pl.png")}.b_flag_zh_CN{background-image:url("../openolat/images/flags/cn.png")}.b_flag_zh_TW{background-image:url("../openolat/images/flags/tw.png")}.b_flag_lt{background-image:url("../openolat/images/flags/lt.png")}.b_flag_fa{background-image:url("../openolat/images/flags/ir.png")}.b_flag_pt_PT{background-image:url("../openolat/images/flags/pt.png")}.b_flag_pt_BR{background-image:url("../openolat/images/flags/br.png")}.b_flag_tr{background-image:url("../openolat/images/flags/tr.png")}.b_flag_hu{background-image:url("../openolat/images/flags/hu.png")}.b_flag_sq{background-image:url("../openolat/images/flags/al.png")}.b_flag_in{background-image:url("../openolat/images/flags/id.png")}.b_flag_ar{background-image:url("../openolat/images/flags/eg.png")}.b_flag_rm{background-image:url("../openolat/images/flags/rm.png")}.b_flag_af{background-image:url("../openolat/images/flags/za.png")}.b_flag_vi{background-image:url("../openolat/images/flags/vn.png")}.b_flag_mn{background-image:url("../openolat/images/flags/mn.png")}.b_flag_iw{background-image:url("../openolat/images/flags/il.png")}.b_flag_ko{background-image:url("../openolat/images/flags/kr.png")}.b_flag_nl_NL{background-image:url("../openolat/images/flags/nl.png")}.b_flag_jp{background-image:url("../openolat/images/flags/jp.png")}.b_flag_nb_NO{background-image:url("../openolat/images/flags/no.png")}.b_flag_et_EE{background-image:url("../openolat/images/flags/ee.png")}.b_flag_bg{background-image:url("../openolat/images/flags/bg.png")}.b_flag_hi_IN_ASIA{background-image:url("../openolat/images/flags/in.png")}.b_flag_ar_LB{background-image:url("../openolat/images/flags/lb.png")}.b_flag_gl_ES{background-image:url("../openolat/images/flags/galicia.png")}.b_filetype_file,.b_filetype_ico{background-image:url("../openolat/images/docs/document_plain.png") !important}.b_filetype_folder{background-image:url("../openolat/images/folder.png") !important}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.b_filetype_folder,.b_filetype_folder_open{background-image:url("../openolat/images/folder_open.png") !important}.b_filetype_zip,.b_filetype_gz,.b_filetype_tar,.b_filetype_tgz{background-image:url("../openolat/images/docs/document-zipper.png") !important}.b_filetype_css,.b_filetype_js,.b_filetype_java,.b_filetype_numbers,.b_filetype_ods,.b_filetype_xml,.b_filetype_xsl{background-image:url("../openolat/images/docs/document_tags.png") !important}.b_filetype_bat_icon,.b_filetype_bat,.b_filetype_exe,.b_filetype_app,.b_filetype_sh{background-image:url("../openolat/images/docs/document-binary.png") !important}.b_filetype_xls,.b_filetype_xlsx{background-image:url("../openolat/images/docs/document-excel.png") !important}.b_filetype_swf,.b_filetype_flv{background-image:url("../openolat/images/docs/document-flash-movie.png") !important}.b_filetype_htm,.b_filetype_html{background-image:url("../openolat/images/docs/document-globe.png") !important}.b_filetype_ai{background-image:url("../openolat/images/docs/document-illustrator.png") !important}.b_filetype_png,.b_filetype_tiff,.b_filetype_webp,.b_filetype_gif,.b_filetype_ico,.b_filetype_jpeg,.b_filetype_bmp,.b_filetype_odg,.b_filetype_eps,.b_filetype_jpg{background-image:url("../openolat/images/docs/document-image.png") !important}.b_filetype_avi_icon,.b_filetype_avi,.b_filetype_dvi,.b_filetype_mp4,.b_filetype_m4v,.b_filetype_webm,.b_filetype_ogg,.b_filetype_video,.b_filetype_mov,.b_filetype_mpeg,.b_filetype_mpg,.b_filetype_qt,.b_filetype_ra,.b_filetype_ram{background-image:url("../openolat/images/docs/document-film.png") !important}.b_filetype_midi,.b_filetype_audio,.b_filetype_mp3,.b_filetype_m3u,.b_filetype_wav{background-image:url("../openolat/images/docs/document-music.png") !important}.b_filetype_ps,.b_filetype_pdf{background-image:url("../openolat/images/docs/document-pdf.png") !important}.b_filetype_psd{background-image:url("../openolat/images/docs/document-photoshop.png") !important}.b_filetype_key,.b_filetype_odp,.b_filetype_ppt,.b_filetype_pptx{background-image:url("../openolat/images/docs/document-powerpoint.png") !important}.b_filetype_odf,.b_filetype_rtf,.b_filetype_readme,.b_filetype_README,.b_filetype_log,.b_filetype_txt{background-image:url("../openolat/images/docs/document-text.png") !important}.b_filetype_pages,.b_filetype_doc,.b_filetype_docx{background-image:url("../openolat/images/docs/document-word.png") !important}.b_large_icon.b_filetype_file{background-image:url("../openolat/images/docs_large/file.png") !important}.b_large_icon.b_filetype_folder{background-image:url("../openolat/images/docs_large/folder.png") !important}.b_large_icon.b_filetype_zip,.b_large_icon.b_filetype_gz,.b_large_icon.b_filetype_tar,.b_large_icon.b_filetype_tgz{background-image:url("../openolat/images/docs_large/compressed.png") !important}.b_large_icon.b_filetype_css{background-image:url("../openolat/images/docs_large/css.png") !important}.b_large_icon.b_filetype_js,.b_large_icon.b_filetype_java,.b_large_icon.b_filetype_xml,.b_large_icon.b_filetype_xsl,.b_large_icon.b_filetype_bat,.b_large_icon.b_filetype_exe,.b_large_icon.b_filetype_app,.b_large_icon.b_filetype_sh{background-image:url("../openolat/images/docs_large/developer.png") !important}.b_large_icon.b_filetype_numbers{background-image:url("../openolat/images/docs_large/numbers.png") !important}.b_large_icon.b_filetype_ods,.b_large_icon.b_filetype_xls,.b_large_icon.b_filetype_xlsx{background-image:url("../openolat/images/docs_large/excel.png") !important}.b_large_icon.b_filetype_swf,.b_large_icon.b_filetype_flv{background-image:url("../openolat/images/docs_large/flash.png") !important}.b_large_icon.b_filetype_htm,.b_large_icon.b_filetype_html{background-image:url("../openolat/images/docs_large/html.png") !important}.b_large_icon.b_filetype_ai{background-image:url("../openolat/images/docs_large/illustrator.png") !important}.b_large_icon.b_filetype_png,.b_large_icon.b_filetype_tiff,.b_large_icon.b_filetype_webp,.b_large_icon.b_filetype_gif,.b_large_icon.b_filetype_ico,.b_large_icon.b_filetype_jpeg,.b_large_icon.b_filetype_bmp,.b_large_icon.b_filetype_odg,.b_large_icon.b_filetype_eps,.b_large_icon.b_filetype_jpg{background-image:url("../openolat/images/docs_large/image.png") !important}.b_large_icon.b_filetype_avi,.b_large_icon.b_filetype_dvi,.b_large_icon.b_filetype_mp4,.b_large_icon.b_filetype_m4v,.b_large_icon.b_filetype_webm,.b_large_icon.b_filetype_ogg,.b_large_icon.b_filetype_video,.b_large_icon.b_filetype_mov,.b_large_icon.b_filetype_mpeg,.b_large_icon.b_filetype_mpg,.b_large_icon.b_filetype_qt,.b_large_icon.b_filetype_ra,.b_large_icon.b_filetype_ram{background-image:url("../openolat/images/docs_large/movie.png") !important}.b_large_icon.b_filetype_midi,.b_large_icon.b_filetype_audio,.b_large_icon.b_filetype_mp3,.b_large_icon.b_filetype_m3u,.b_large_icon.b_filetype_wav{background-image:url("../openolat/images/docs_large/music.png") !important}.b_large_icon.b_filetype_ps,.b_large_icon.b_filetype_pdf{background-image:url("../openolat/images/docs_large/pdf.png") !important}.b_large_icon.b_filetype_psd{background-image:url("../openolat/images/docs_large/photoshop.png") !important}.b_large_icon.b_filetype_key{background-image:url("../openolat/images/docs_large/keynote.png") !important}.b_large_icon.b_filetype_odp,.b_large_icon.b_filetype_ppt,.b_large_icon.b_filetype_pptx{background-image:url("../openolat/images/docs_large/powerpoint.png") !important}.b_large_icon.b_filetype_odf,.b_large_icon.b_filetype_rtf,.b_large_icon.b_filetype_readme,.b_large_icon.b_filetype_README,.b_large_icon.b_filetype_log,.b_large_icon.b_filetype_txt{background-image:url("../openolat/images/docs_large/text.png") !important}.b_large_icon.b_filetype_pages{background-image:url("../openolat/images/docs_large/pages.png") !important}.b_large_icon.b_filetype_doc,.b_large_icon.b_filetype_docx{background-image:url("../openolat/images/docs_large/word.png") !important}li.b_nav_site div,li.b_nav_tab div{background:url("../openolat/images/application.png") no-repeat left 50%;padding-left:18px}li.b_resource_BusinessGroup div,.o_BusinessGroup_icon{background-image:url("../openolat/images/users.png")}li.b_resource_GroupCard div,.o_GroupCard_icon{background-image:url("../openolat/images/users.png")}li.b_resource_CourseModule div,.o_CourseModule_icon{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}.o_CourseModule_icon.b_managed_icon{background-image:url("../openolat/images/le_resources/book-open-text-image_locked.png")}li.b_resource_HOMEPAGECONFIG div,.o_HOMEPAGECONFIG_icon,li.b_resource_Identity div{background-image:url("../openolat/images/card-address.png")}li.b_resource_FileResource-SHAREDFOLDER div,.o_FileResource-SHAREDFOLDER_icon{background-image:url("../openolat/images/folder_shared.png")}li.b_resource_FileResource-WIKI div,.o_FileResource-WIKI_icon{background-image:url("../openolat/images/le_resources/wiki.png")}li.b_resource_FileResource-PODCAST div,.o_FileResource-PODCAST_icon{background-image:url("../openolat/images/le_resources/media-player-cast.png")}li.b_resource_FileResource-BLOG div,.o_FileResource-BLOG_icon{background-image:url("../openolat/images/le_resources/blog.png")}li.b_resource_FileResource-MOVIE div,.o_FileResource-MOVIE_icon{background-image:url("../openolat/images/docs/document-film.png")}li.b_resource_FileResource-PDF div,.o_FileResource-PDF_icon{background-image:url("../openolat/images/docs/document-pdf.png")}li.b_resource_FileResource-PPT div,.o_FileResource-PPT_icon{background-image:url("../openolat/images/docs/document-powerpoint.png")}li.b_resource_FileResource-DOC div,.o_FileResource-DOC_icon{background-image:url("../openolat/images/docs/document-word.png")}li.b_resource_FileResource-IMSCP div,.o_FileResource-IMSCP_icon{background-image:url("../openolat/images/le_resources/box.png")}li.b_resource_FileResource-SCORMCP div,.o_FileResource-SCORMCP_icon{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png")}li.b_resource_FileResource-FILE div,.o_FileResource-FILE_icon{background-image:url("../openolat/images/docs/document_plain.png")}li.b_resource_FileResource-IMAGE div,.o_FileResource-IMAGE_icon{background-image:url("../openolat/images/docs/document-image.png")}li.b_resource_FileResource-SOUND div,.o_FileResource-SOUND_icon{background-image:url("../openolat/images/docs/document-music.png")}li.b_resource_FileResource-XLS div,.o_FileResource-XLS_icon{background-image:url("../openolat/images/docs/document-excel.png")}li.b_resource_FileResource-ANIM div,.o_FileResource-ANIM_icon{background-image:url("../openolat/images/docs/document-image.png")}li.b_resource_FileResource-SURVEY div,.o_FileResource-SURVEY_icon{background-image:url("../openolat/images/le_resources/survey.png")}li.b_resource_FileResource-TEST div,.o_FileResource-TEST_icon{background-image:url("../openolat/images/le_resources/test.png")}li.b_resource_FileResource-GLOSSARY div,.o_FileResource-GLOSSARY_icon{background-image:url("../openolat/images/le_resources/glossary.png")}li.b_resource_org-olat-search-ui-SearchController div,.o_org-olat-search-ui-SearchController_icon{background-image:url("../openolat/images/magnifier-zoom.png")}li.b_resource_EPStructuredMapTemplate div{background-image:url("../openolat/images/le_resources/portfolio.png")}li a.o_toolbox_course{background-image:url("../openolat/images/le_resources/book-open-text-image.png")}li a.o_toolbox_content{background-image:url("../openolat/images/le_resources/box.png")}li a.o_toolbox_scorm{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png")}li a.o_toolbox_test{background-image:url("../openolat/images/le_resources/test.png")}li a.o_toolbox_questionnaire{background-image:url("../openolat/images/le_resources/survey.png")}li a.o_toolbox_wiki{background-image:url("../openolat/images/le_resources/wiki.png")}li a.o_toolbox_podcast{background-image:url("../openolat/images/le_resources/media-player-cast.png")}li a.o_toolbox_blog{background-image:url("../openolat/images/le_resources/blog.png")}li a.o_toolbox_glossary{background-image:url("../openolat/images/le_resources/glossary.png")}li a.o_toolbox_sharedfolder{background-image:url("../openolat/images/folder_shared.png")}li a.o_toolbox_coursefolder{background-image:url("../openolat/images/le_resources/blue-folder.png")}li a.o_toolbox_courseareas{background-image:url("../openolat/images/users.png")}li a.o_toolbox_portfolio{background-image:url("../openolat/images/le_resources/portfolio.png")}li a.b_toolbox_link{background-image:url("../openolat/images/bullet_black.png")}li a.b_toolbox_doc{background-image:url("../openolat/images/docs/document_plain.png")}li a.b_toolbox_preview{background-image:url("../openolat/images/docs/document_preview.png")}li a.b_toolbox_publish{background-image:url("../openolat/images/docs/document_share.png")}li a.b_toolbox_move{background-image:url("../openolat/images/docs/document_move.png")}li a.b_toolbox_close{background-image:url("../openolat/images/close.png")}li a.b_toolbox_delete{background-image:url("../openolat/images/bin-metal-full.png")}li a.b_toolbox_copy,.b_copy_icon{background-image:url("../openolat/images/docs/document-copy.png")}.o_midlock{top:9px;left:9px;background-image:url("../openolat/images/decorator/deco_condition.png")}.o_miderr{top:8px;left:-2px;background-image:url("../openolat/images/decorator/deco_error.png")}.o_midwarn{top:8px;left:-2px;background-image:url("../openolat/images/decorator/deco_warn.png")}.o_midpub{top:-2px;left:9px;background-image:url("../openolat/images/decorator/deco_ok.png")}span.o_passed{background:url(../openolat/images/tick.png) no-repeat right 50%;padding:0 25px 0 0;color:#009900}span.o_notpassed{background:url(../openolat/images/cross.png) no-repeat right 50%;padding:0 25px 0 0;color:#990000}.o_efficiencystatement_icon{background-image:url(../openolat/images/seal.png)}span.o_green_led{background:url(../openolat/images/green_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_yellow_led{background:url(../openolat/images/yellow_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_red_led{background:url(../openolat/images/red_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_black_led{background:url(../openolat/images/black_led.png) no-repeat left 50%;padding:0 0 0 25px}span.o_grey_led{background:url(../openolat/images/grey_led.png) no-repeat left 50%;padding:0 0 0 25px}.o_bc_icon{background-image:url("../openolat/images/folder.png") !important}.o_co_icon{background-image:url("../openolat/images/mail.png") !important}.o_cp_icon{background-image:url("../openolat/images/le_resources/box.png") !important}.o_cp_org{background-image:url("../openolat/images/le_resources/box.png") !important}.o_cp_item{background-image:url("../openolat/images/docs/document-text.png") !important}.o_dialog_icon{background-image:url("../openolat/images/docs/document_discuss.png") !important}.o_en_icon{background-image:url("../openolat/images/enrol.png") !important}.o_fo_icon{background-image:url("../openolat/images/forum/forum.png") !important}.o_iqself_icon{background-image:url("../openolat/images/le_resources/selftest.png") !important}.o_iqsurv_icon{background-image:url("../openolat/images/le_resources/survey.png") !important}.o_iqtest_icon{background-image:url("../openolat/images/le_resources/test.png") !important}.o_qitem_icon{background-image:url("../openolat/images//question-octagon-frame.png") !important}.o_ms_icon{background-image:url("../openolat/images/le_resources/thumb-up.png") !important}.o_scorm_icon,.o_scorm_org{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png") !important}.o_scorm_item{background-image:url("../openolat/images/docs/document-text.png") !important}.o_scorm_asset{background-image:url("../openolat/images/le_resources/book-open-text-image-s.png") !important}.o_sp_icon{background-image:url("../openolat/images/docs/document-text.png") !important}.o_st_icon{background-image:url("../openolat/images/node-select-all.png") !important}.o_ta_icon{background-image:url("../openolat/images/docs/document-task.png") !important}.o_tu_icon{background-image:url("../openolat/images/docs/document-import.png") !important}.o_wiki_icon{background-image:url("../openolat/images/le_resources/wiki.png") !important}.o_ll_icon{background-image:url("../openolat/images/docs/document_linklist.png") !important}.o_cl_icon{background-image:url("../openolat/images/clipboard-task.png") !important}.o_den_icon{background-image:url("../openolat/images/clock.png") !important}.o_projectbroker_icon{background-image:url("../openolat/images/projectbroker.png") !important}.o_podcast_icon{background-image:url("../openolat/images/le_resources/media-player-cast.png") !important}.o_blog_icon{background-image:url("../openolat/images/le_resources/blog.png") !important}.o_cal_icon{background-image:url("../openolat/images/calendar.png") !important}.o_lti_icon{background-image:url("../openolat/images/docs/document-node.png") !important}.o_vc_icon{background-image:url("../openolat/images/projection-screen.png") !important}.o_vitero_icon{background-image:url("../openolat/images/vitero.png") !important}.o_openmeetings_icon{background-image:url("../openolat/images/projection-screen-presentation.png") !important}.o_ep_icon{background-image:url("../openolat/images/le_resources/portfolio.png") !important}.o_EPStructuredMapTemplate_icon{background-image:url("../openolat/images/portfolio/briefcase.png") !important}.o_infomsg_icon{background-image:url("../openolat/images/information-button.png") !important}.o_cmembers_icon{background-image:url("../openolat/images/users.png") !important}.fx_members_icon{background-image:url("../openolat/images/users_members.png") !important}body#b_body .o_CourseModule_icon_closed{background-image:url("../openolat/images/le_resources/book-open-text-image_locked.png")}.o_portrait_dummy{background-image:url(../openolat/images/dummy.png);width:100px;height:100px}.o_portrait_dummy_small{background-image:url(../openolat/images/dummy_small.png);width:30px;height:30px}.o_portrait_dummy_female_big{background-image:url(../openolat/images/dummy_female_big.png);width:100px;height:100px}.o_portrait_dummy_female_small{background-image:url(../openolat/images/dummy_female_small.png);width:30px;height:30px}.o_portrait_dummy_male_big{background-image:url(../openolat/images/dummy_male_big.png);width:100px;height:100px}.o_portrait_dummy_male_small{background-image:url(../openolat/images/dummy_male_small.png);width:30px;height:30px}.o_portrait_anonymous{background-image:url(../openolat/images/dummy.png);width:100px;height:100px}.o_portrait_anonymous_small{background-image:url(../openolat/images/dummy_small.png);width:30px;height:30px}@media all{html{min-height:100%}body{min-height:100%;overflow-y:scroll;background:yellow;background:-moz-linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, yellow), color-stop(33%, red), color-stop(66%, blue), color-stop(100%, green));background:-webkit-linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%);background:-o-linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%);background:-ms-linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%);background:linear-gradient(top, yellow 0%, red 33%, blue 66%, green 100%)}#b_page_margins{min-width:740px;max-width:1324px;margin:0 auto;width:100%;height:100%;position:relative;z-index:1}#b_main_toolbar{clear:both;height:24px;line-height:24px;vertical-align:middle;margin:0;padding:1px 0 0 0;border-bottom:1px solid #dadada;background-color:white;moz-box-shadow:0 0 14px #d3d3d3;-ms-box-shadow:0 0 14px #d3d3d3;-o-box-shadow:0 0 14px #d3d3d3;-webkit-box-shadow:0 0 14px #d3d3d3;box-shadow:0 0 14px #d3d3d3}#b_main_toolbar ul li a span{line-height:24px}#b_main{background:#fff;min-height:550px;clear:both;moz-box-shadow:0 2px 14px #d3d3d3;-ms-box-shadow:0 2px 14px #d3d3d3;-o-box-shadow:0 2px 14px #d3d3d3;-webkit-box-shadow:0 2px 14px #d3d3d3;box-shadow:0 2px 14px #d3d3d3}#b_page a#b_toplink{position:absolute;bottom:1em;right:1em;background:transparent url(../openolat/images/arrow_up.png) 0 50% no-repeat;padding-left:14px;z-index:5}#b_header,#b_page,#b_col1_content,#b_col2_content,#b_col3_content,#b_col3_content_inner{position:relative}#b_col1{overflow:hidden}#b_col1_content{padding:1em 10px 1em 0px}#b_col3{border-left:1px #DDD dotted;border-right:1px #DDD dotted}#b_col3_content{min-height:550px;padding:20px 20px 30px 20px}#b_col2_content{overflow:hidden;padding:1em 0}.b_hidecol2 #b_col3{margin-right:0 !important;border-right:none}.b_hidecol1 #b_col3{margin-left:0 !important;border-left:none}.b_hideboth #b_col3{margin-left:0 !important;margin-right:0 !important;border-left:none;border-right:none}.b_hideboth #b_col1,.b_hideboth #b_col2,.b_hidecol1 #b_col1,.b_hidecol2 #b_col2,#b_ie_clearing{display:none}.b_c15r,.b_c20r,.b_c80r,.b_c85r{float:right;margin-left:-5px}.b_c15l,.b_c15r{width:15%}.b_c20l,.b_c20r{width:20%}.b_c80l,.b_c80r{width:80%}.b_c85l,.b_c85r{width:85%}.b_subcolumns_oldgecko,.b_c20l,.b_c15l,.b_c80l,.b_c85l{float:left}div.b_iframe_wrapper iframe{width:100%;position:relative;top:0;left:0;border:none;margin:0;padding:0;background:transparent}#b_main.b_exception{padding-left:165px;padding-right:165px}#b_header{height:auto;min-height:30px;overflow:hidden;position:relative}#b_header #b_topnav{position:absolute;font-family:Century Gothic, Apple Gothic, sans-serif;right:0px;top:0px;padding:4px 15px 0px 0px;line-height:1.5em;min-height:1.5em}#b_header #b_topnav ul{margin:0}#b_header #b_topnav li,#b_header #b_topnav div,#b_header #b_topnav span{line-height:1.5em}#b_header #b_topnav .b_with_small_icon_right,#b_header #b_topnav #b_main_toolbar div.b_breadcumb_close .b_close,#b_main_toolbar div.b_breadcumb_close #b_header #b_topnav .b_close{padding:0 20px 0 0}#b_header #b_topnav .b_with_small_icon_left,#b_header #b_topnav div.b_table_wrapper div.b_table_empty,div.b_table_wrapper #b_header #b_topnav div.b_table_empty{padding:0 0 0 20px}#b_header #b_topnav .b_small_icon{height:1.5em}#b_header #b_topnav #o_topnav_langchooser select{font-size:90%}#b_header #b_topnav #o_topnav_search input{font-size:90%;margin:0;width:10em}#b_header #b_topnav #o_topnav_search a.o_fulltext_search_button{height:1.5em;background-position:50% 50%}#b_header #b_topnav #o_topnav_printview a{background:url(../openolat/images/printer.png) no-repeat right 50%;padding:0 20px 0 0;margin:0}#b_header #b_topnav #o_topnav_logout a{background:url("../openolat/images/control/control-power.png") no-repeat right 50%;padding:0 20px 0 0;margin:0;font-weight:bold}#b_header #b_topnav li{float:left;list-style:none;margin-left:1.7em}#b_header #b_topnav li div.b_form_element_wrapper.b_form_horizontal{margin:0}#b_header #b_topnav li#o_topnav_imclient li{margin-left:0.5em}#b_nav_main{float:left;font-family:Century Gothic, Apple Gothic, sans-serif}#b_nav_main ul{padding-left:40px;margin:0}#b_nav_main ul li{float:left;position:relative;list-style:none;margin:0px;padding:4px 3px 4px 12px;margin-right:2px;-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:0;border-bottom-left-radius:0;background:#f5f5f5;background:rgba(255, 255, 255, 0.5)}#b_nav_main ul li a{padding:4px 12px 4px 3px}#b_nav_main ul li a:hover{text-decoration:none}#b_nav_main ul li.b_nav_site.b_nav_active,#b_nav_main ul li.b_nav_site:hover,#b_nav_main ul li.b_nav_site.b_exception{moz-box-shadow:0 -4px 8px -1px #d3d3d3;-ms-box-shadow:0 -4px 8px -1px #d3d3d3;-o-box-shadow:0 -4px 8px -1px #d3d3d3;-webkit-box-shadow:0 -4px 8px -1px #d3d3d3;box-shadow:0 -4px 8px -1px #d3d3d3;background:white}#b_nav_main ul li.b_nav_site.b_nav_active a.b_nav_tab_close,#b_nav_main ul li.b_nav_site:hover a.b_nav_tab_close,#b_nav_main ul li.b_nav_site.b_exception a.b_nav_tab_close{background-image:url(../openolat/images/cross_small_trimmed_blue.png)}#b_nav_main ul li.b_nav_site > div{padding-left:16px;background-repeat:no-repeat;background-position:0% 50%;background-image:url("../openolat/images/application.png")}#b_nav_main ul li.b_nav_site.o_site_home > div{background-image:url("../openolat/images/home.png")}#b_nav_main ul li.b_nav_site.o_site_admin > div{background-image:url("../openolat/images/wrench-screwdriver.png")}#b_nav_main ul li.b_nav_site.o_site_useradmin > div{background-image:url("../openolat/images/user_conf.png")}#b_nav_main ul li.b_nav_site.o_site_groupsmanagement > div{background-image:url("../openolat/images/users_conf.png")}#b_nav_main ul li.b_nav_site.o_site_repository > div{background-image:url("../openolat/images/books-stack.png")}#b_nav_main ul li.b_nav_site.o_site_groups > div{background-image:url("../openolat/images/users.png")}#b_nav_main ul li.b_nav_site.o_site_coaching > div{background-image:url("../openolat/images/eye.png")}#b_nav_main ul li.b_nav_site.site_demo_icon > div{background-image:url("../openolat/images/information-white.png")}#b_nav_main ul li.b_nav_site.f_site_library > div{background-image:url("../openolat/images/library.png")}#b_nav_main ul li.b_nav_site.fx_members > div{background-image:url("../openolat/images/users_members.png")}#b_nav_main ul li.b_nav_site.o_site_guidemo div{background-image:url("../openolat/images/light-bulb.png")}#b_nav_main ul li.b_nav_site.b_resource_GroupInfoMainController div{background-image:url(../openolat/images/users.png)}#b_nav_main ul li.b_nav_site.o_site_catalog div{background-image:url(../openolat/images/drawer-open.png)}#b_nav_main ul li.b_nav_site.o_site_qpool div{background-image:url(../openolat/images/qti/pool.png)}#b_nav_main ul li.b_nav_tab{margin-right:4px}#b_nav_main ul li.b_nav_tab a.b_nav_tab_close{position:absolute;top:3px;right:4px;width:13px;height:13px;line-height:0;padding:0;margin:0;background:transparent url(../openolat/images/cross_small_trimmed_grey.png) no-repeat right top}#b_nav_main ul li.b_nav_tab.b_nav_active,#b_nav_main ul li.b_nav_tab:hover{moz-box-shadow:0 -4px 8px -1px #d3d3d3;-ms-box-shadow:0 -4px 8px -1px #d3d3d3;-o-box-shadow:0 -4px 8px -1px #d3d3d3;-webkit-box-shadow:0 -4px 8px -1px #d3d3d3;box-shadow:0 -4px 8px -1px #d3d3d3;background:white}#b_nav_main ul li.b_nav_tab.b_nav_active a.b_nav_tab_close,#b_nav_main ul li.b_nav_tab:hover a.b_nav_tab_close{background-image:url(../openolat/images/cross_small_trimmed_blue.png)}#b_nav_main ul li#b_nav_spacer{background:none;border:none;width:20px;height:1px;padding:0}.b_clickable:hover{cursor:pointer}div.b_tree{position:relative;font-size:100%;font-family:Century Gothic, Apple Gothic, sans-serif;padding:0}div.b_tree ul{position:relative;padding:0;margin:0 0 0 1em;list-style:none;white-space:nowrap}div.b_tree ul li{position:relative;background:transparent;margin-left:0;padding-left:0;line-height:1.7em}div.b_tree ul li a.b_tree_icon{padding-left:20px;padding-top:2px;position:relative;background-position:0 50%;background-repeat:no-repeat}div.b_tree ul li a{color:#555555}div.b_tree ul li a.b_tree_l0{padding-left:16px}div.b_tree ul li .b_tree_oc_l0{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l0,div.b_tree ul li .b_tree_level_close.b_tree_oc_l0{z-index:10}div.b_tree ul li a:focus,div.b_tree ul li a:hover{color:#025d8c;background-color:transparent;text-decoration:underline}div.b_tree ul li a.b_tree_selected,div.b_tree ul li a:active{color:#025d8c;background-color:transparent;text-decoration:none}div.b_tree ul li a.b_tree_selected_parents,div.b_tree ul li strong{color:#025d8c;font-weight:bold}div.b_tree ul li .b_tree_oc_l1{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l1,div.b_tree ul li .b_tree_level_close.b_tree_oc_l1{z-index:10}div.b_tree ul li .b_tree_oc_l2{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l2,div.b_tree ul li .b_tree_level_close.b_tree_oc_l2{z-index:10}div.b_tree ul li .b_tree_oc_l3{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l3,div.b_tree ul li .b_tree_level_close.b_tree_oc_l3{z-index:10}div.b_tree ul li .b_tree_oc_l4{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l4,div.b_tree ul li .b_tree_level_close.b_tree_oc_l4{z-index:10}div.b_tree ul li .b_tree_oc_l5{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l5,div.b_tree ul li .b_tree_level_close.b_tree_oc_l5{z-index:10}div.b_tree ul li .b_tree_oc_l6{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l6,div.b_tree ul li .b_tree_level_close.b_tree_oc_l6{z-index:10}div.b_tree ul li .b_tree_oc_l7{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l7,div.b_tree ul li .b_tree_level_close.b_tree_oc_l7{z-index:10}div.b_tree ul li .b_tree_oc_l8{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l8,div.b_tree ul li .b_tree_level_close.b_tree_oc_l8{z-index:10}div.b_tree ul li .b_tree_oc_l9{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l9,div.b_tree ul li .b_tree_level_close.b_tree_oc_l9{z-index:10}div.b_tree ul li .b_tree_oc_l10{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l10,div.b_tree ul li .b_tree_level_close.b_tree_oc_l10{z-index:10}div.b_tree ul li .b_tree_oc_l11{position:absolute;top:0px;left:1px;z-index:9}div.b_tree ul li .b_tree_level_open.b_tree_oc_l11,div.b_tree ul li .b_tree_level_close.b_tree_oc_l11{z-index:10}div.b_tree ul li a.b_tree_l0{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l1{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l2{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l3{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l4{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l5{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l6{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l7{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l8{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l9{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l10{padding-left:13px;z-index:9}div.b_tree ul li a.b_tree_l11{padding-left:13px;z-index:9}div.b_tree ul li span.b_tree_icon_decorator{width:12px;height:12px;float:right;display:inline;position:static;z-index:9;background-repeat:no-repeat}div.b_tree ul li.b_deleted{text-decoration:none}div.b_tree ul li.b_deleted a{text-decoration:line-through}div.b_tree ul.b_tree_l0 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l1 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l2 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l3 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l4 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l5 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l6 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l7 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l8 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l9 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l10 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree ul.b_tree_l11 a.b_tree_icon{padding-left:33px;background-position:15px 50%}div.b_tree.b_tree_root_hidden{margin:0 0 0 1em}div.b_tree.b_tree_root_hidden ul{padding:0}div.b_tree.b_tree_root_hidden ul.b_tree_l0{margin-left:0}div.b_tree.b_tree_root_visible{left:-13px}div.b_tree a.b_tree_level_close,div.b_tree a.b_tree_level_open{background:transparent !important}div.b_tree a.b_tree_level_close span,div.b_tree a.b_tree_level_open span{background-position:0 50%;background-repeat:no-repeat;padding-right:13px}div.b_tree a.b_tree_level_close:hover,div.b_tree a.b_tree_level_open:hover{text-decoration:none}div.b_tree a.b_tree_level_close span{background-image:url("../openolat/images/tree_parent_open.gif")}div.b_tree a.b_tree_level_open span{background-image:url("../openolat/images/tree_parent_closed.gif")}div.b_master_detail div.b_tree ul li{background:url("../openolat/images/detail/detail_separator.png") repeat-y right}div.b_master_detail div.b_tree ul li a.b_tree_l0{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l1{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l2{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l3{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l4{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l5{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l6{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l7{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l8{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l9{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l10{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_l11{display:block;padding-right:20px;background-repeat:no-repeat;background-position:right}div.b_master_detail div.b_tree ul li a.b_tree_selected{background-image:url("../openolat/images/detail/detail_arrow.png")}div.b_master_detail div.b_tree ul li a.b_tree_selected.b_tree_l0{background-image:none}#b_footer{color:#9D9D9D;padding:0;margin:0;position:relative;min-height:60px}#b_footer a{color:#777777}#b_footer #b_footer_user{position:absolute;top:1em;left:1em;line-height:16px}#b_footer #b_footer_user #b_username{margin-right:1.5em}#b_footer #b_footer_version{position:absolute;top:1em;right:1em}#b_footer #b_footer_powered{padding-top:1em;text-align:center;width:auto;background:none}#b_footer #b_footer_powered a{display:inline}#b_footer #b_footer_powered img{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#b_footer #b_footer_powered img:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#b_footer #b_share{position:absolute;top:2.5em;left:1em;width:250px}#b_footer #b_share a,#b_footer #b_share span{margin:0 3px 0 0;background-repeat:no-repeat;width:16px;height:16px;float:left;display:inline;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}#b_footer #b_share a:hover{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}#b_footer #b_share #b_facebook{background-image:url(../openolat/images/social/facebook_16.png)}#b_footer #b_share #b_twitter{background-image:url(../openolat/images/social/twitter_16.png)}#b_footer #b_share #b_google{background-image:url(../openolat/images/social/google_16.png)}#b_footer #b_share #b_delicious{background-image:url(../openolat/images/social/delicious_16.png)}#b_footer #b_share #b_digg{background-image:url(../openolat/images/social/digg_16.png)}#b_footer #b_share #b_mail{background-image:url(../openolat/images/social/email_16.png)}#b_footer #b_share #b_link{background-image:url(../openolat/images/social/link_16.png)}#b_footer .fx_footer #b_footer_version > a{display:block;min-height:45px;background:transparent url("../../images/frentix/frentix_logo_grey.png") no-repeat left bottom}#b_footer .fx_footer #b_footer_version > a:hover{background-image:url("../../images/frentix/frentix_logo.png")}#callout_share_link input{width:480px}#b_main.b_menu_toolbar #b_col1_content{padding-top:0;padding-right:0}#b_main.b_menu_toolbar #b_col3_content{padding:0}div.b_menu_toolbar{background:#f9f9f9;background:-moz-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9), color-stop(100%, #d0d0d0));background:-webkit-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-o-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-ms-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);border-bottom:1px solid #7D7D7D;padding:5px 5px 2px 0}div.b_breadcumb_path{padding:0;margin:0;float:left;display:inline}div.b_breadcumb_path ul{padding:0;margin:0;list-style:none;float:left;display:inline}div.b_breadcumb_path ul li{padding:0 7px 0 14px;margin:0;list-style:none;float:left;display:inline;background:url(../openolat/images/breadcrumb-separator.png) no-repeat left 50%}div.b_breadcumb_path ul li.b_first{background:url(../openolat/images/home.png) no-repeat 5px 50%;padding-left:25px}div.b_breadcumb_path ul li a{color:#464444}div.b_breadcumb_path ul li span.b_disabled{color:#000;padding:0 10px 0 0;margin:0}#b_main_toolbar div.b_breadcumb_path ul a{color:#2d2e2d;font-weight:bold}#b_main_toolbar div.b_breadcumb_path ul a:hover{color:#585a58;text-decoration:none}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back{background:transparent;padding:0 7px 0 7px;margin:0 2px 0 0;border-right:1px solid #dadada}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back a{font-type:Arial;color:#2d2e2d;font-weight:normal}#b_main_toolbar div.b_breadcumb_path ul li.b_breadcumb_back a:hover{color:#585a58}#b_main_toolbar div.b_breadcumb_close{position:absolute;right:5px;size:80%}#b_main_toolbar div.b_breadcumb_close .b_close{background-image:url("../openolat/images/close.png");color:#2d2e2d}#b_main_toolbar div.b_breadcumb_close .b_close:hover{color:#585a58;text-decoration:none}div.b_breadcumb_content{clear:both;margin-top:0.5em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_toolbar{background:#f9f9f9;background:-moz-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f9f9f9), color-stop(100%, #d0d0d0));background:-webkit-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-o-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:-ms-linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);background:linear-gradient(top, #f9f9f9 0%, #d0d0d0 100%);position:relative;padding:10px;height:19px;min-height:19px;border-bottom:1px solid #7D7D7D}div.b_toolbar ul{margin:0;list-style-image:none;list-style-type:none}div.b_toolbar ul li{margin:0px 16px 0px 0px;list-style-image:none;list-style-type:none}div.b_toolbar div.b_toolbar_left{position:absolute;top:7px;left:7px}div.b_toolbar ul.b_toolbar_left li{float:left}div.b_toolbar div.b_toolbar_right{position:absolute;top:7px;right:7px}div.b_toolbar ul.b_toolbar_right li{float:right;margin:0px 2px 0px 2px}div.b_toolbar div.b_toolbar_center{text-align:center}div.b_noti{border:1px solid #E9EAEF;padding:3px 23px 3px 3px;float:right;display:inline;position:relative;right:0;font-size:95%}div.b_noti a.b_contexthelp{position:absolute;top:2px;right:2px}div.b_noti a.b_noti_unsubscribe_link{background:url(../openolat/images/mail--minus.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_noti a.b_noti_subscribe_link{background:url(../openolat/images/mail--plus.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_noti a.b_noti_markedread_link{background:url(../openolat/images/tick.png) no-repeat left 50%;padding:1px 0 1px 20px}div.b_titled_wrapper div.b_noti{position:absolute;right:25px;top:0px}div.b_titled_wrapper fieldset div.b_noti{top:12px}h1.b_titled_wrapper span{padding-right:4em;font-style:italic}h2.b_titled_wrapper span{padding-right:4em;font-style:italic}h3.b_titled_wrapper span{padding-right:4em;font-style:italic}h4.b_titled_wrapper span{padding-right:3em;font-style:italic}h5.b_titled_wrapper span{padding-right:3em;font-style:italic}a.b_togglebox_closed{background:url("../openolat/images/tree_parent_closed.gif") no-repeat 0 50%;padding:1px 0 1px 18px;vertical-align:middle}a.b_togglebox_opened{background:url("../openolat/images/tree_parent_open.gif") no-repeat 0 50%;padding:1px 0 1px 18px;vertical-align:middle}div.b_togglebox{margin-top:10px;padding:10px;background:#FAFAFA}div.b_togglebox div.b_togglebox_content{background:transparent;border:0px;padding:0px}div.b_titled_wrapper div.b_togglebox{margin-top:0;padding:0;background:transparent}div.b_titled_wrapper div.b_togglebox div.b_togglebox_content{background:transparent;border:0px;padding:0px}div.b_titled_wrapper_desc a.b_togglebox_opened{z-index:10;display:block;width:20px;height:20px;position:absolute;top:2px;left:5px;background:url(../openolat/images/information-white.png) no-repeat 0 50%}div.b_titled_wrapper_desc a.b_togglebox_closed{display:block;width:20px;height:20px;background:url(../openolat/images/information-white.png) no-repeat top left;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6}div.b_titled_wrapper_desc div.b_togglebox div.b_togglebox_content{position:relative;margin-bottom:1em}div.b_titled_wrapper_desc a.b_togglebox_hide span{position:absolute;bottom:0;right:0;padding:0 6px 3px 0}div.b_titled_wrapper_desc a.b_togglebox_hide:hover{text-decoration:underline}div.b_titled_wrapper div.b_togglebox div.b_togglebox_content div.o_course_run_objectives{position:relative}div.o_course_run_dropbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_course_run_returnbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_course_run_solutionbox div.b_noti{position:relative;top:0;right:25px;border:1px solid #FFFFFF}div.o_catalog div.o_catalog_link_title{margin:2em 0 0 0;border-bottom:1px solid #ccc;padding:0.3em}div.o_catalog fieldset{padding:1em 1em 0.5em 1em}div.o_catalog div.o_catalog_title{display:none}div.o_catalog div.o_catalog_nav{padding:1px 0 2px 22px;border-bottom:1px solid #EEE;background:url(../openolat/images/folder_open.png) 2px 50% no-repeat}div.o_catalog .o_catalog_sub_icon{background-image:url(../openolat/images/folder_small.png)}div.o_catalog div.o_catalog_links{margin-top:1em;padding-top:1em;border-top:1px solid #EEE}div.o_catalog div.o_catalog_itemlist ul{list-style-type:none;margin:0;padding:0}div.o_catalog div.o_catalog_itemlist ul li{margin:0;padding:0 0 0 0.5em;overflow:hidden}div.o_catalog div.o_catalog_itemlist ul a{display:block}div.o_catalog div.o_catalog_desc{margin:0.5em 0 0.5em 0;padding-left:20px;font-style:italic}div.b_ext_elem .x-tree-node-collapsed .x-tree-node-icon.o_catalog_cat_icon,div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_cat_icon{background-image:url(../openolat/images/folder_small.png)}div.b_ext_elem .x-tree-node-collapsed .x-tree-node-icon.o_catalog_cat_noaccess_icon,div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_cat_noaccess_icon{background-image:url(../openolat/images/locked.png)}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.o_catalog_cat_icon{background-image:url(../openolat/folder_open.png)}div.b_ext_elem .x-tree-node-expanded .x-tree-node-icon.o_catalog_cat_noaccess_icon{background-image:url(../openolat/images/locked.png)}div.b_ext_elem .x-tree-node-leaf .x-tree-node-icon.o_catalog_entry_icon{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}.b_float_left{float:left;display:inline;margin-right:1em;margin-bottom:0.15em}.b_float_right{float:right;display:inline;margin-left:1em;margin-bottom:0.15em}.b_center{text-align:center;margin:0.5em auto}.b_floatscrollbox{overflow-x:auto;overflow-y:hidden}.b_overflowscrollbox{overflow:auto}}@media all and (min-width : 1324px){#b_footer #b_share{left:0}#b_footer #b_footer_user{left:0}#b_footer #b_footer_version{right:0}}.b_dd_item{cursor:move;z-index:100}.b_dd_proxy{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;opacity:0.4}.b_dd_item.b_dd_over{background-color:#ffff60}.b_dd_sibling{height:3px;width:100%}.b_dd_sibling.b_dd_over{background:transparent url(../openolat/images/arrow_dd.png) top left no-repeat}div.b_dd_ct div.b_dd_sibling_l1{margin-left:0 !important}div.b_dd_ct div.b_dd_sibling_l2{margin-left:1em !important}div.b_dd_ct div.b_dd_sibling_l3{margin-left:2em !important}div.b_dd_ct div.b_dd_sibling_l4{margin-left:3em !important}div.b_dd_ct div.b_dd_sibling_l5{margin-left:4em !important}div.b_dd_ct div.b_dd_sibling_l6{margin-left:5em !important}div.b_dd_ct div.b_dd_sibling_l7{margin-left:6em !important}div.b_dd_ct div.b_dd_sibling_l8{margin-left:7em !important}div.b_dd_ct div.b_dd_sibling_l9{margin-left:8em !important}div.b_dd_ct div.b_dd_sibling_l10{margin-left:9em !important}div.b_dd_ct div.b_dd_sibling_l11{margin-left:10em !important}.b_group_accesscontrolled{background-image:url("../openolat/images/ac/umbrella.png")}.b_order_icon{background-image:url("../openolat/images/ac/shopping-basket.png")}div.b_order_details{margin-top:2em}div.b_order_details label{font-weight:bold}div.b_access_create ul{padding:0;margin-left:0}div.b_access_create li{padding:0;list-style:none}table.b_access_method td{padding:0.2em 1em 0.2em 0}table.b_access_method tr.b_access_desc td{padding:0 1em 1em 20px;font-style:italic}table.b_access_method td div.b_form_element{margin-left:0}div.b_access_method_list div.b_access_method legend{background-repeat:no-repeat;padding-left:20px}table span.b_access_method{padding-right:5px;font-size:90%;vertical-align:bottom;line-height:16px}.b_access_member_icon{background-image:url(../openolat/images/ac/lock-unlock.png)}.b_access_membersonly_icon{background-image:url("../openolat/images/ac/lock.png")}.b_access_method_free_icon{background-image:url("../openolat/images/ac/open-share.png")}.b_group_accesscontrolled.b_access_method_free,b_order_icon.b_access_method_free{background-image:url("../openolat/images/ac/open-share.png")}div.b_access_method_list div.b_access_method_free legend{background-image:url("../openolat/images/ac/open-share.png")}.b_access_method_token_icon{background-image:url("../openolat/images/ac/license-key.png")}.b_group_accesscontrolled.b_access_method_token,b_order_icon.b_access_method_token{background-image:url("../openolat/images/ac/license-key.png")}div.b_access_method_list div.b_access_method_token legend{background-image:url("../openolat/images/ac/license-key.png")}div.b_access_method_list div.b_access_method_token div.b_form_element_wrapper:nth-last-of-type(3) label,table.b_access_method tr.b_access_method_token .b_access_infos{background-image:url("../openolat/images/ac/key.png");background-repeat:no-repeat;padding-left:20px}div.b_access_method_list div.b_form_element_wrapper:nth-last-of-type(4) label{background-image:url("../openolat/images/information-white.png");background-repeat:no-repeat;padding-left:20px}.b_access_method_paypal_icon{background-image:url("../openolat/images/ac/credit-cards.png")}#b_main_access_control{margin:0 20% 0 20%;padding:20px 0 0 20px}.b_order_status_new_icon{background-image:url(../openolat/images/new-text.png)}.b_order_status_prepayment_icon{background-image:url(../openolat/images/ac/prepayment.png)}.b_order_status_payed_icon{background-image:url(../openolat/images/tick.png)}.b_order_status_canceled_icon{background-image:url(../openolat/images/ac/canceled.png)}.b_order_status_error_icon{background-image:url(../images/olat/cross.png)}.b_order_status_warning_icon{background-image:url(../openolat/images/exclamation.png)}.b_transaction_status_success_icon{background-image:url(../openolat/images/tick.png)}.b_transaction_status_waiting_icon{background-image:url(../openolat/images/exclamation.png)}.b_transaction_status_error_icon{background-image:url(../openolat/images/cross.png)}.b_transaction_status_canceled_icon{background-image:url(../openolat/images/ac/canceled.png)}.b_transaction_status_new_icon{background-image:url(../openolat/images/new-text.png)}div.b_form div.b_form_element_wrapper table.b_access_method div.b_form_element{margin-left:0}div.b_form table.b_access_method div.b_form_element span.b_form_datechooser{background-position:0 50%}div.b_layer_1 div.b_modal_area{width:82%;margin:9%}div.b_layer_2 div.b_modal_area{width:76%;margin:12%}div.b_layer_3 div.b_modal_area{width:70%;margin:15%}div.b_layer_5 div.b_modal_area{width:64%;margin:18%}div.b_modal_area{position:absolute;top:0px;left:0px;width:80%;margin:10%;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_modal_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1}div.b_modal_overlay,div.ext-el-mask{background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=25);-moz-opacity:0.25;-khtml-opacity:0.25;opacity:0.25}div.b_window{text-align:left;border:1px solid red;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;background:#fff}div.b_window .b_window_header_wrapper{padding:2px 8px 0px 8px}div.b_window div.b_window_header{position:relative;border-bottom:1px solid #eee}div.b_window div.b_window_header_title{min-height:18px;line-height:18px;vertical-align:middle;padding:2px 5px 2px 5px}div.b_window div.b_window_header_title a.b_link_close{top:4px;right:4px;position:absolute;min-height:16px;min-width:16px;background:transparent url("../openolat/images/close.png") no-repeat center center;display:inline-block}div.b_window div.b_window_header_title a.b_link_close:hover{top:4px;right:4px}div.b_window div.b_window_header_title strong{font-weight:bold}div.b_window div.b_window_content_wrapper{clear:both;width:auto;padding:0 4px 0 4px}div.b_window div.b_window_content{padding:1em}div.b_window div.b_window_content_inner{min-height:200px;position:relative}div.b_window div.b_window_footer_wrapper{height:4px}div.b_callout_area{position:absolute;top:0px;left:0px;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=1);-moz-opacity:0.01;-khtml-opacity:0.01;opacity:0.01}div.b_callout{text-align:left;border:1px solid red;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;background:#fff}div.b_callout_content{max-width:60em;margin:10px;overflow:hidden}.b_callout_top_right_arrow{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #FFF;position:absolute;right:20px;top:-10px;z-index:1001}.b_callout_top_right_arrow-border{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid red;position:absolute;right:20px;top:-11px;z-index:1000}.b_callout_top_left_arrow{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid #FFF;position:absolute;left:20px;top:-10px;z-index:1001}.b_callout_top_left_arrow-border{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:11px solid red;position:absolute;left:20px;top:-11px;z-index:1000}div.x-tip-tc,div.x-tip-bc{background-repeat:repeat !important}div.x-tip-body p{margin-bottom:0px}div.x-tip-mc{background:#e9f2ff !important}body.b_ajax_busy{cursor:wait}div.b_ajax_busy{position:absolute;z-index:5001;left:50%;top:10px;height:32px;width:32px;background-repeat:no-repeat;background-image:url(../openolat/images/ajax-loader.svg)}html.no-svg div.b_ajax_busy{background-image:url(../openolat/images/ajax-loader.gif)}div.b_msg_dialog{padding:10px 10px 10px 50px;min-height:32px;background:url(../openolat/images/icon_question_32.png) no-repeat 10px 10px}div.b_msg_dialog .b_msg_title{font-weight:bold}#b_msg_sticky,#b_msg_sticky_preview{clear:both;padding:10px 10px 10px 50px;min-height:32px;background:#ffb651 url(../openolat/images/icon_warning_32.png) no-repeat 10px 10px;border:none}div.b_msg-div{left:35%;position:absolute;top:10px;width:30%;z-index:20000;border:1px solid red;background:#FAFAFA;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;moz-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-ms-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-o-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);-webkit-box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5);box-shadow:0px 0px 8px rgba(68, 68, 68, 0.5)}div.b_msg-div .b_msg_info_winicon{background:transparent url(../openolat/images/icon_info_32.png) no-repeat 10px center}div.b_msg_info_content{padding:10px 10px 10px 50px}div.b_msg_warn_winicon{background:url(../openolat/images/icon_warning_32.png) no-repeat}div.b_msg_error_winicon{background:url(../openolat/images/icon_error_32.png) no-repeat}#b_msg_info{padding:10px 10px 10px 50px;min-height:32px;background:url(../openolat/images/icon_info_32.png) no-repeat 10px 10px}#b_msg_info .b_msg_title{font-weight:bold}.o_infomessage_wrapper{margin:20px 0 20px 0}.o_infomessage_wrapper .o_infomessage{text-align:left}div.b_wizard{background:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border:1px solid red}div.b_wizard div.b_wizard_header_wrapper{background:transparent}div.b_wizard div.b_wizard_header{background:transparent;position:relative}div.b_wizard div.b_wizard_header_title{background:transparent;min-height:18px;line-height:18px;vertical-align:middle;padding:2px 5px 2px 5px}div.b_wizard div.b_wizard_header_title a.b_link_close{top:4px;right:4px;background:url(../openolat/images/close.png);background-repeat:no-repeat}div.b_wizard div.b_wizard_header_title strong{font-weight:bold}div.b_wizard div.b_wizard_steps_wrapper{clear:both;width:auto;padding:0 4px 0 4px;background:transparent}div.b_wizard div.b_wizard_steps_content{background:#fff;border:1px solid #555555;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px}div.b_wizard div.b_wizard_steps_list{width:20em;padding:0;color:#555555}div.b_wizard div.b_wizard_steps_list ol{list-style-type:decimal;z-index:14;font-size:100%;padding:2em 5px 5px}div.b_wizard div.b_wizard_steps_list li{line-height:1.5em;white-space:normal;margin-bottom:1em;list-style:none;padding-left:18px}div.b_wizard div.b_wizard_steps_list li.b_wizard_steps_current{font-weight:bold;background:url(../openolat/images/bullet_go.png) 0% 50% no-repeat;padding-left:18px}div.b_wizard div.b_wizard_steps_list li a{color:#555555}div.b_wizard div.b_wizard_steps_list li a:hover{color:#4F576A;background:transparent;text-decoration:underline}div.b_wizard div.b_wizard_steps_list li .b_disabled{color:#777777;border:0;background:transparent;padding:0;margin:0;white-space:normal;font-style:italic}div.b_wizard div.b_wizard_steps_list li.b_wizard_steps_current .b_disabled{color:#555555;font-style:normal}div.b_wizard div.b_wizard_steps_current{margin-left:20em;padding-top:0.5em;padding-bottom:0.5em}div.b_wizard div.b_wizard_steps_current_inner{padding:1em;border-left:1px solid #ccc}div.b_wizard div.b_wizard_steps_current_content{min-height:300px;position:relative}div.b_wizard div.b_wizard_footer_wrapper{background:transparent}div.b_wizard div.b_wizard_footer div.b_button_group{text-align:left;padding:0.5em 1em 0.5em 21em;margin:0}span.b_wizard_button_prev:before,a.b_wizard_button_prev span:before{content:"\00ab \00a0"}span.b_wizard_button_next:after,a.b_wizard_button_next span:after{content:" \00bb"}a.b_wizard_button_finish,span.b_wizard_button_finish{margin-left:3em}a.b_wizard_button_cancel,span.b_wizard_button_cancel{margin-left:3em}.b_wizard_table_changedcell{font-style:italic;font-weight:bold;background:url(../openolat/images/new-text.png) no-repeat;padding-left:18px}div.b_legacy_wizard_steps{float:right;display:inline}.b_legacy_wizard_step_a1{background-image:url(../openolat/images/wizard/1a.png)}.b_legacy_wizard_step_a2{background-image:url(../openolat/images/wizard/2a.png)}.b_legacy_wizard_step_a3{background-image:url(../openolat/images/wizard/3a.png)}.b_legacy_wizard_step_a4{background-image:url(../openolat/images/wizard/4a.png)}.b_legacy_wizard_step_a5{background-image:url(../openolat/images/wizard/5a.png)}.b_legacy_wizard_step_a6{background-image:url(../openolat/images/wizard/6a.png)}.b_legacy_wizard_step_a7{background-image:url(../openolat/images/wizard/7a.png)}.b_legacy_wizard_step_a8{background-image:url(../openolat/images/wizard/8a.png)}.b_legacy_wizard_step_a9{background-image:url(../openolat/images/wizard/9a.png)}.b_legacy_wizard_step_p1{background-image:url(../openolat/images/wizard/1p.png)}.b_legacy_wizard_step_p2{background-image:url(../openolat/images/wizard/2p.png)}.b_legacy_wizard_step_p3{background-image:url(../openolat/images/wizard/3p.png)}.b_legacy_wizard_step_p4{background-image:url(../openolat/images/wizard/4p.png)}.b_legacy_wizard_step_p5{background-image:url(../openolat/images/wizard/5p.png)}.b_legacy_wizard_step_p6{background-image:url(../openolat/images/wizard/6p.png)}.b_legacy_wizard_step_p7{background-image:url(../openolat/images/wizard/7p.png)}.b_legacy_wizard_step_p8{background-image:url(../openolat/images/wizard/8p.png)}.b_legacy_wizard_step_p9{background-image:url(../openolat/images/wizard/9p.png)}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs{float:left;display:inline-block;margin-bottom:1em}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul{line-height:1em;list-style:none;margin:0;padding:0;white-space:nowrap}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;margin:0;float:left;display:inline;position:relative}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul strong{background:transparent;color:#667;display:block;font-weight:normal;padding:1px 6px 1px 5px;text-decoration:none;text-transform:none}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul > ul a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul > ul strong{width:auto}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:focus,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:hover,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li:active{moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:focus,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:hover,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul a:active{color:#000;text-decoration:none}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active{moz-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-ms-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-o-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-webkit-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);background:#eee;border-color:#ccc}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_active strong{color:#000;font-weight:bold}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled{background:white !important}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled a,div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled strong{color:#8994A9;background:transparent !important;font-weight:normal}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_disabled:hover{moz-box-shadow:0 0 0 white;-ms-box-shadow:0 0 0 white;-o-box-shadow:0 0 0 white;-webkit-box-shadow:0 0 0 white;box-shadow:0 0 0 white}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_first{-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:0px;-webkit-border-bottom-right-radius:0px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-topleft:3px;-moz-border-radius-topright:0px;-moz-border-radius-bottomright:0px;-moz-border-radius-bottomleft:3px;border-top-left-radius:3px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:3px}div.b_tabbedpane_wrapper div.b_tabbedpane_tabs ul li.b_last{-webkit-border-top-left-radius:0px;-webkit-border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:0px;-moz-border-radius-topleft:0px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px;-moz-border-radius-bottomleft:0px;border-top-left-radius:0px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:0px}div.b_tabbedpane_wrapper div.b_tabbedpane_content{clear:both;padding:5px 15px;background:transparent;border:1px solid #d4d4d4}div.b_tabbedpane_wrapper div.b_tabbedpane_content div.b_tabbedpane_content_inner{position:relative;min-height:30em}div.b_segments_container{min-height:25px;padding-top:8px;position:relative;background:url(../openolat/images/divider.png) center top no-repeat}div.b_segments_container div.b_segments{clear:both;position:absolute;left:50%}div.b_segments_container div.b_segments a:hover{text-decoration:none}div.b_segments_container div.b_segments ul{position:relative;left:-50%;list-style-type:none;margin:0}div.b_segments_container div.b_segments ul li{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;margin:0;float:left;display:inline;position:relative}div.b_segments_container div.b_segments ul li a{background:transparent;color:#667;display:block;font-weight:normal;padding:1px 6px 1px 5px;text-decoration:none;text-transform:none}div.b_segments_container div.b_segments ul li a:hover,div.b_segments_container div.b_segments ul li a:active,div.b_segments_container div.b_segments ul li a:focus{text-decoration:none}div.b_segments_container div.b_segments ul li:hover{moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}div.b_segments_container div.b_segments ul li.b_segment_selected{moz-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-ms-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-o-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);-webkit-box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0px 1px 2px rgba(0, 0, 0, 0.1);background:#eee;border-color:#ccc}div.b_segments_container div.b_segments ul li.b_segment_selected a,div.b_segments_container div.b_segments ul li.b_segment_selected strong{color:#000;font-weight:bold}div.b_segments_container div.b_segments ul li.b_segment_first{-webkit-border-top-left-radius:12px;-webkit-border-top-right-radius:0px;-webkit-border-bottom-right-radius:0px;-webkit-border-bottom-left-radius:12px;-moz-border-radius-topleft:12px;-moz-border-radius-topright:0px;-moz-border-radius-bottomright:0px;-moz-border-radius-bottomleft:12px;border-top-left-radius:12px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:12px}div.b_segments_container div.b_segments ul li.b_segment_last{-webkit-border-top-left-radius:0px;-webkit-border-top-right-radius:12px;-webkit-border-bottom-right-radius:12px;-webkit-border-bottom-left-radius:0px;-moz-border-radius-topleft:0px;-moz-border-radius-topright:12px;-moz-border-radius-bottomright:12px;-moz-border-radius-bottomleft:0px;border-top-left-radius:0px;border-top-right-radius:12px;border-bottom-right-radius:12px;border-bottom-left-radius:0px}div.b_segments_container div.b_segment_content{margin-top:50px;clear:both;padding:5px 15px;background:transparent;border:1px solid #d4d4d4}button{border:none}.b_button{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_button,.b_button span{color:#444;font-size:100%;display:inline-block;padding:0 0.8em;width:auto;line-height:1.9em;text-align:center}.b_button:focus,.b_button:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_button:focus{border:1px solid red}.b_button:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border:1px solid red}.b_button.b_button_preferred{background:#f7d1d1;background:-moz-linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f7d1d1), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);background:linear-gradient(top, #f7d1d1 0%, #f1f1f1 100%);border:1px solid red}.b_button:focus,.b_button:hover{border:1px solid #aaa}.b_button_dirty{background:white;background:-moz-linear-gradient(top, white 0%, #fff7e0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #fff7e0));background:-webkit-linear-gradient(top, white 0%, #fff7e0 100%);background:-o-linear-gradient(top, white 0%, #fff7e0 100%);background:-ms-linear-gradient(top, white 0%, #fff7e0 100%);background:linear-gradient(top, white 0%, #fff7e0 100%);border-color:#ff9900}.b_button_dirty:focus,.b_button_dirty:hover{text-decoration:none;border:1px solid #ff9f5b;background:white;background:-moz-linear-gradient(top, white 0%, #fff7e0 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #fff7e0));background:-webkit-linear-gradient(top, white 0%, #fff7e0 100%);background:-o-linear-gradient(top, white 0%, #fff7e0 100%);background:-ms-linear-gradient(top, white 0%, #fff7e0 100%);background:linear-gradient(top, white 0%, #fff7e0 100%)}.b_disabled.b_button{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s "";border:1px dotted #ccc;background:#fff}.b_disabled.b_button,.b_disabled.b_button span{color:#444;font-size:100%;display:inline-block;padding:0 0.8em;width:auto;line-height:1.9em;text-align:center;cursor:default !important;color:#888}.b_disabled.b_button:focus,.b_disabled.b_button:hover{moz-box-shadow:0 0 0 transparent;-ms-box-shadow:0 0 0 transparent;-o-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent}div.b_button_group{text-align:center;margin:2em 0 1em 0}div.b_button_group div{display:inline}.b_xsmall,sup,sub{font-size:80%}.b_small,small{font-size:90%}a.b_toggle{white-space:nowrap;margin:0 0.5em 0.2em 0;cursor:default;color:#2C2B2B;border:1px solid #aaa;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;display:inline-block;line-height:1.5em;text-align:center;background:url(../openolat/images/toggle_off.png) top left repeat-x}a.b_toggle span{padding:0 0.8em}a.b_toggle:hover{background:#ddd;text-decoration:none}a.b_toggle.b_on:hover{background:#747474}a.b_toggle.b_on,a.b_toggle:active,a.b_toggle.b_on:active{color:white;border:none;padding:1px;moz-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-ms-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-o-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);-webkit-box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);box-shadow:inset 1px 1px 2px rgba(0, 0, 0, 0.5);text-shadow:1px 1px 2px rgba(0, 0, 0, 0.5)}a.b_toggle:focus,a.b_toggle.b_on:focus{text-decoration:none}a.b_toggle:active,a.b_toggle.b_on:active{background:url(../openolat/images/toggle_active.png) top left repeat-x}a.b_toggle.b_on{background:url(../openolat/images/toggle_on.png) top left repeat-x}span.b_toggle.b_disabled{white-space:nowrap;margin:0 0.5em 0.2em 0;padding:0 0.8em;color:#667;border:1px solid #DDD;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;display:inline-block;line-height:1.5em;text-align:center;background:url(../openolat/images/toggle_dis.png) top left repeat-x}a.b_toggle_slide{background:url(../openolat/images/handle.png) -63px 0px no-repeat;height:25px;width:85px;white-space:nowrap;margin:0 0.2em 0.2em 0.2em;color:#2C2B2B;border:1px solid #aaa;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;display:inline-block;text-align:center;vertical-align:middle;position:relative}a.b_toggle_slide span{position:absolute;top:-25px;left:0}a.b_toggle_slide:hover,a.b_toggle_slide:focus,a.b_toggle_slide:active,a.b_toggle_slide.b_on:hover,a.b_toggle_slide.b_on:focus,a.b_toggle_slide.b_on:active{border:1px solid #868686;text-decoration:none}a.b_toggle_slide.b_on{background-position:-16px 0px}a.b_toggle_slide.b_disabled{background:url(../openolat/images/handle_dis.png) -63px 0px no-repeat;height:25px;width:85px;white-space:nowrap;margin:0 0.5em 0.2em 0;color:#2C2B2B;border:1px solid #aaa;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;display:inline-block;text-align:center;vertical-align:middle}a.b_toggle_slide.b_small{background:url(../openolat/images/handle_small.png) -41px 0px no-repeat;height:16px;width:55px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}a.b_toggle_slide span{position:absolute;top:-16px}a.b_toggle_slide.b_small.b_on{background-position:-9px 0px}span.b_toggle_slide.b_disabled{background:url(../openolat/images/handle_small_dis.png) -41px 0px no-repeat;height:16px;width:55px;white-space:nowrap;margin:0 0.5em 0.2em 0;color:#2C2B2B;border:1px solid #aaa;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;display:inline-block;text-align:center;vertical-align:middle}span.b_toggle_slide_legend{font-size:90%}.b_link_back{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_link_back > span{padding:0px 8px 0px 25px;background:transparent url("../openolat/images/arrow_left_big.png") no-repeat 4px center}.b_link_back:focus,.b_link_back:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_link_back:focus{border-color:red}.b_link_back:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border-color:red}.b_link_left_icon{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;white-space:nowrap;cursor:pointer;margin:0.25em 0.5em 0.25em 0;padding:0;color:#444;background:transparent;display:inline-block;line-height:2.2em;vertical-align:middle;text-align:left;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.1);background:#f5f5f5;background:-moz-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #f1f1f1));background:-webkit-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-o-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:-ms-linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);background:linear-gradient(top, #f5f5f5 0%, #f1f1f1 100%);-moz-transition:all 0.22s "";-webkit-transition:all 0.22s "";-o-transition:all 0.22s "";transition:all 0.22s ""}.b_link_left_icon > span{padding:2px 8px 0px 25px;background-color:transparent;background-repeat:no-repeat;background-position:4px center}.b_link_left_icon:focus,.b_link_left_icon:hover{text-decoration:none;border:1px solid #C6C6C6;moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-ms-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-o-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);box-shadow:0 1px 1px rgba(0, 0, 0, 0.1)}.b_link_left_icon:focus{border-color:red}.b_link_left_icon:active{moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-ms-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-o-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);border-color:red}.b_link_to_home > span{background-image:url("../openolat/images/card-address.png")}.b_link_course > span{background-image:url("../openolat/images/book-open-next.png")}.b_link_group > span{background-image:url("../openolat/images/document-page-next.png")}.b_link_mail > span{background-image:url("../openolat/images/mail.png")}.b_link_assessment > span{background-image:url("../openolat/images/le_resources/thumb-up.png")}.b_link_ok > span{background-image:url("../openolat/images/tick.png")}.b_link_nok > span{background-image:url("../openolat/images/cross.png")}.b_link_edit > span{background-image:url("../openolat/images/docs/document--pencil.png")}.b_move_left_icon > span{background-image:url("../openolat/images/arrow_left_big.png")}.b_move_right_icon > span{background-image:url("../openolat/images/arrow_right_big.png")}.b_remove_icon > span{background-image:url("../openolat/images/cross_small.png")}.b_deletableentry_wrapper .b_link_left_icon{border:none;background:inherit;margin:0}.b_deletableentry_wrapper .b_link_left_icon:focus,.b_deletableentry_wrapper .b_link_left_icon:hover,.b_deletableentry_wrapper .b_link_left_icon:focus,.b_deletableentry_wrapper .b_link_left_icon:active{text-decoration:none;border:none;moz-box-shadow:0 0 0 transparent;-ms-box-shadow:0 0 0 transparent;-o-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent}div.o_login div.o_login_form{margin-bottom:2em}div.o_login div.o_login_form li{list-style:none}div.o_login div.o_login_form fieldset legend{display:none}div.o_login div.o_login_form input{width:15em;padding:2px 3px 2px 3px}div.b_form div.b_form_desc{padding-bottom:1em;font-style:italic}input,select,textarea{border:1px solid #ACAAAA;background:#F6F6F6;line-height:1.3em;margin:0}textarea{font-family:inherit;width:100%}input:focus,select:focus,textarea:focus{background:#fff;border:1px solid #504D4E}input.b_checkbox,input.b_radio{height:1em;width:1em;border:0;margin:0 2px 0 0}label.b_checkbox_label,label.b_radio_label{padding-left:0.5em}.b_inline_editable{padding:1px 20px 1px 0;vertical-align:middle;min-height:16px}.b_inline_editable:hover{background-position:100% 50%;background-repeat:no-repeat;background-image:url(../openolat/images/pencil-small.png)}span.b_inline_editable:hover{cursor:text !important}fieldset{position:relative;padding:1em;padding-top:1.5em;border:none;border-top:1px solid #ff6666}fieldset legend{font-family:Comic Sans, Comic Sans MS, cursive;padding:0 5px;font-size:120%;font-weight:bold}div.b_form div.b_form_desc{padding-bottom:1em;font-style:italic}div.b_form div.b_form_general_error{padding:10px 10px 10px 50px;margin-bottom:20px;text-align:left;background:url(../openolat/images/icon_error_32.png) no-repeat 10px 10px;min-height:32px;border:1px solid #990000;color:#990000;font-style:italic}div.b_form div.b_form_spacer{margin:10px 0}div.b_form hr.b_form_spacer{margin:10px 0;border-bottom:1px solid #eee;padding:0}div.b_form hr.b_form_spacer.b_form_horizontal{display:inline-block;width:2em}div.b_form hr.b_form_spacer.b_form_spacer_noline{margin:10px 0;border-bottom:0;padding:0}div.b_form div.b_form_element_wrapper{vertical-align:middle;margin:0.5em 0}div.b_form div.b_form_element_wrapper.b_form_horizontal{vertical-align:middle;margin:0.5em 1em 0.5em 0;float:left;display:inline}div.b_form div.b_form_element_wrapper.b_form_vertical{vertical-align:middle;margin:0.5em 0;float:none;display:block}div.b_form div.b_form_element_wrapper div.b_form_element_label{width:20%;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element_label label{float:left;display:inline;line-height:1.3em}div.b_form div.b_form_element_wrapper div.b_form_element_label span.b_form_mandatory{background:url(../openolat/images/star-small.png) no-repeat;padding-left:16px;height:16px}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_horizontal{width:auto;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_vertical{width:auto;float:none;display:block;margin-top:1em;margin-bottom:0.3em}div.b_form div.b_form_element_wrapper div.b_form_element_label.b_form_vertical label{float:none}div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:25%;padding:0 2px 0 12px}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_horizontal{margin-left:0;padding-left:0;float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_horizontal .b_button{float:left;display:inline}div.b_form div.b_form_element_wrapper div.b_form_element.b_form_vertical{margin-left:0;margin-top:0.5em;padding-left:0;float:none;display:block;clear:both}div.b_form div.b_form_element_wrapper.b_form_error input,div.b_form div.b_form_element_wrapper.b_form_error select{border:1px solid #990000;background:#ebcccc}div.b_form div.b_form_element_wrapper div.b_form_error_msg{clear:both;color:#990000;font-style:italic;display:block}div.b_form div.b_form_element_wrapper div.b_form_element_wrapper{margin:0}div.b_form div.b_button_group{margin-left:0%;padding-left:0px;text-align:left}div.b_form.b_form_vertical div.b_button_group{text-align:left}div.b_form div.b_form_element div.b_form_example{display:inline;font-size:80%;color:#504D4E}div.b_form div.b_form_element div.b_inline_elements div{display:inline}div.b_form div.b_form_element .b_form_disabled{color:#504D4E}div.b_form div.b_form_element .b_form_element_disabled{color:#9E9C9C;background:#EEEEEE;border:1px solid #CDCBCB}div.b_form div.b_form_element span.b_form_datechooser{background:url(../openolat/images/calendar.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px;padding-top:3px}div.b_form div.b_form_element a.b_form_groupchooser{background:url(../openolat/images/users.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}div.b_form div.b_form_element a.b_form_genericchooser{background:url(../openolat/images/users.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}div.b_form div.b_form_element a.b_form_wikitext{background-repeat:no-repeat;padding-left:12px;line-height:1.5em;font-style:italic}div.b_form div.b_form_element a.b_form_wikitext,div.b_form div.b_form_element .b_wiki_icon{background-image:url(../openolat/images/wiki/wiki_small_9px.png)}div.b_labels_minified div.b_form div.b_form_element_wrapper div.b_form_element_label{width:10%}div.b_labels_minified div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:12%}div.form_shift_left{left:-25%}div.b_button_group div.b_form_element_wrapper{vertical-align:middle;margin:0.5em 0;float:none;display:block}div.b_button_group div.b_form_element_wrapper div.b_form_element_label{width:auto;float:none;display:block}div.b_button_group div.b_form_element_wrapper div.b_form_element{margin-left:0}.b_subcolumns{display:table;width:100%;table-layout:fixed}.b_c25l input,.b_c25r input{max-width:93%}div.calendar{z-index:10000 !important}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element{margin:0;float:left}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element_label{float:none;width:auto;display:block;padding-left:2.5em}div.b_form div.b_form_element_wrapper.b_form_element_switch div.b_form_element_label label{float:none}div.b_form_subform{padding-left:2.5em}div.b_form_selection_vertical div.b_form_selection_element{vertical-align:middle;line-height:1.3em;position:relative}div.b_form_selection_vertical div.b_form_selection_element input{vertical-align:middle;line-height:1.3em}div.b_form_selection_horizontal div.b_form_selection_element{float:left;display:inline;padding-right:1em}div.b_form_selection_horizontal div.b_form_selection_element input{vertical-align:middle}div.b_form div.b_form_element div.b_form_togglecheck{font-size:95%;display:block;vertical-align:middle;line-height:16px;margin-top:0.5em}div.b_form div.b_form_element div.b_form_togglecheck input{height:1em;width:1em}div.o_form_wrapper fieldset{min-width:60em}div.form_shift_left{position:inherit;left:-20%}div.mceExternalToolbar{background:#f0f0ee !important;overflow:auto}table.b_choice{padding:0;margin:0}table.b_choice td{padding:0.1em;margin:0}table.b_choice td.b_togglecheck{padding-top:1em}table.b_choice td.b_togglecheck div.b_togglecheck{display:inline;border-top:1px solid #eee}table.b_choice td.b_togglecheck input{margin:0 7px 0 2px}div.b_fileinput{position:relative}div.b_fileinput div.b_fileinput_fakechooser{position:relative;top:0px;left:0px;z-index:1;display:inline;white-space:nowrap}div.b_fileinput div.b_fileinput_fakechooser a{margin-left:5px}div.b_fileinput span.b_fileinput_maxsize{padding:1px 0 1px 1em;font-style:italic;min-height:16px;vertical-align:middle}div.b_fileinput input.b_fileinput_realchooser{position:absolute;top:0;left:0;height:1.8em;z-index:2;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0}div.b_fileinput div.b_button_group{text-align:left;padding-left:0;margin-left:0}.b_fileinput_icon{background-image:url(../openolat/images/drive.png)}div.b_progress div.b_progress_bar{height:12px;border:1px solid #bfbfbf;background:#ffcccc}div.b_progress div.b_progress_bar div{height:12px;background:#ff6666;background:-moz-linear-gradient(top, #ff6666 0%, red 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ff6666), color-stop(100%, red));background:-webkit-linear-gradient(top, #ff6666 0%, red 100%);background:-o-linear-gradient(top, #ff6666 0%, red 100%);background:-ms-linear-gradient(top, #ff6666 0%, red 100%);background:linear-gradient(top, #ff6666 0%, red 100%)}.b_mark_set{background-image:url("../openolat/images/flag.png") !important}.b_mark_not_set{background-image:url("../openolat/images/flag_off.png") !important}div.b_mark{width:20px;height:20px}div.b_mark div.b_form_element_wrapper{margin:0}div.b_mark div.b_form_element_wrapper div.b_form_element{margin:0;padding:0}div.b_mark a{background-position:center right;background-repeat:no-repeat;display:block;width:20px;height:20px}div.b_mark a span{display:block;width:19px;height:19px}div.b_mark a:hover{text-decoration:none}button::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,input[type="button"]::-moz-focus-inner,input[type="submit"]::-moz-focus-inner,input[type="file"] > input[type="button"]::-moz-focus-inner{padding:0;border:0}table{border-collapse:collapse;margin-bottom:0.5em;border-top:0px solid white;border-bottom:0px solid white}table caption{font-variant:small-caps}table.fixed{table-layout:fixed}table th,table td{padding:0.3em}table thead th{color:inherit;border-bottom:1px solid #ccc}table tbody tr.b_table_odd td{background:#eee}table tbody tr.b_row_selected td{background:#ff9f5b}div.b_table_drag{padding:5px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px;border:1px solid red;moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}div.b_table_wrapper table{width:99.5%;margin-left:1px;border:1px solid #eeeeee}div.b_table_wrapper table thead,div.b_table_wrapper table thead a{color:#025d8c}div.b_table_wrapper table thead a.b_sorting,div.b_table_wrapper table thead a a.b_sorting{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}div.b_table_wrapper table thead a.b_sorting_asc,div.b_table_wrapper table thead a a.b_sorting_asc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper table thead a.b_sorting_desc,div.b_table_wrapper table thead a a.b_sorting_desc{padding:0 20px 0 0;text-decoration:none;background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper table tbody tr:hover td{background:#ffdbc1}div.b_table_wrapper table tbody tr.b_row_selected:hover td{background:#ff9f5b}div.b_table_wrapper table tbody a{color:#025d8c}div.b_table_wrapper table tbody a:hover{color:#025d8c}div.b_table_wrapper div.b_table_filter{float:left;display:inline;font-size:95%;margin:7px 10px 2px 0}div.b_table_wrapper div.b_table_filter label{font-style:italic;margin:5px 0 2px 0}div.b_table_wrapper div.b_table_filter select{border:1px solid #ACAAAA}div.b_table_wrapper div.b_clearfix div.b_floatbox{margin:5px 0 0 0}div.b_table_wrapper div.b_table_count{font-size:95%;float:left;line-height:16px;vertical-align:bottom;margin:3px;font-size:95%}div.b_table_wrapper a.b_table_prefs,div.b_table_wrapper a.b_table_download{float:right;display:block;background-repeat:no-repeat;background-position:top left;width:16px;height:16px;margin:3px}div.b_table_wrapper a.b_table_prefs{background-image:url(../openolat/images/table_gear.png)}div.b_table_wrapper a.b_table_download{background-image:url(../openolat/images/table_download.png)}div.b_table_wrapper div.b_table_buttons{text-align:center;margin:1.5em 0 1em 0}div.b_table_wrapper div.b_table_empty{margin:1em 0}div.b_table_wrapper div.b_table_footer{float:left;margin:5px 0 0 10px}div.b_table_wrapper div.dataTables_info{float:left;margin:5px 0 0 0}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_previous{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_previous:hover{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_disabled_previous{background:url("../openolat/images/arrow_left.png") no-repeat top left}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_next{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .paginate_enabled_next:hover{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .paginate_disabled_next{background:url("../openolat/images/arrow_right.png") no-repeat top right}div.b_table_wrapper .dataTables_wrapper .sorting{background:url("../openolat/images/arrow-resize-090.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_asc{background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_desc{background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_asc_disabled{background:url("../openolat/images/arrow_up.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper .sorting_desc_disabled{background:url("../openolat/images/arrow_down.png") no-repeat center right}div.b_table_wrapper .dataTables_wrapper div.dataTables_scrollBody table.dataTable{border-top:none}div.b_table_wrapper .dataTables_wrapper div.dataTables_scrollBody table.dataTable thead th{border:none}div.b_table_wrapper .dataTables_wrapper table.dataTable thead th{border-bottom:1px solid #ccc;color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tbody a{color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tbody a:hover{color:#025d8c}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.even td.sorting_1{background:#eee}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.odd{background-color:#fff}div.b_table_wrapper .dataTables_wrapper table.dataTable tr.odd td.sorting_1{background:#fff}div.b_table_wrapper.b_flexitable_wrapper div.b_table_filter{margin:3px 0 3px 0}div.b_table_wrapper.b_flexitable_wrapper div.b_table_filter label{padding:3px 7px 3px 0}div.b_table_wrapper.b_flexitable_wrapper div.b_table_filter div.b_form_selection_element{float:right}div.b_table_page{font-size:95%;text-align:center}div.b_table_page a{margin:0;padding:2px}div.b_table_page a.b_table_page_active{font-weight:bold;color:#000}div.b_table_page a.b_table_backward{background:url(../openolat/images/arrow_left.png) no-repeat center left;padding-left:16px}div.b_table_page a.b_table_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}div.b_table_page a.b_table_first_page{background:url(../openolat/images/home.png) no-repeat center left;padding-left:18px}div.b_table_page_all{font-size:95%;text-align:center}a.b_dev{position:absolute;left:0;top:0;z-index:4000;background:red url("../openolat/images/bug.png") no-repeat;width:16px;height:16px;border:1px solid #000}#b_devcon_main{background-color:#ccddff;position:absolute;z-index:4000;top:10px;left:5%;width:90%;text-align:left;border:1px solid #000}#b_devcon_handle{cursor:move;background:blue url(../openolat/images/bug.png) no-repeat 4px 50%;line-height:2em;padding-left:24px;color:white}a#b_devcon_handle_collapse{cursor:pointer;background:url("../openolat/images/tree_parent_open.gif") no-repeat;width:15px;height:15px;float:right;margin:3px}a#b_devcon_handle_expand{cursor:pointer;background:url("../openolat/images/tree_parent_closed.gif") no-repeat;width:15px;height:15px;float:right;margin:3px}a.b_devcon_handle_close{cursor:pointer;background:url(../openolat/images/close.png) no-repeat;width:15px;height:15px;float:right;margin:3px}#b_devcon_content{font-size:90%;padding:5px;border-top:0px solid #000;background:transparent}#b_devcon_content ul{float:left;margin:0;padding:0;list-style:none;white-space:nowrap}#b_devcon_content li{margin:0;padding:0 10px 0 0;float:left}#b_devcon_content fieldset{border-top:1px solid #ccc;margin:0;padding:8px}#b_devcon_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}#b_js_log textarea#o_debug_cons{width:99%;height:15em;font-family:monospace;font-size:110%;margin:5px 0 5px 0}iframe.o_debug_json{position:fixed;width:90%;margin-left:5%;bottom:4px;height:300px;background:white;border:2px solid #ccd8e7;z-index:90000}div.b_briefcase div.b_briefcase_foldercomp{margin-top:0.5em}div.b_briefcase_foldercomp div.b_briefcase_createactions{margin:0.5em 0}div.b_briefcase_foldercomp div.b_briefcase_createactions ul{list-style:none;margin:0;padding:0;white-space:nowrap;font-size:95%}div.b_briefcase_foldercomp div.b_briefcase_createactions ul li{float:right;display:inline;margin:0 0 0 1em;padding:0 0 0 3px;position:relative}div.b_briefcase_foldercomp div.b_briefcase_createactions ul li a{background-position:0 50%;background-repeat:no-repeat;padding:2px 0 2px 20px}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_upload{background-image:url(../openolat/images/docs/document_upload.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_newfolder{background-image:url(../openolat/images/folder_new.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_newfile{background-image:url(../openolat/images/docs/document_add.png)}div.b_briefcase_foldercomp div.b_briefcase_createactions ul a.b_briefcase_deletedfiles{background-image:url(../openolat/images/docs/document_remove.png)}div.b_briefcase_foldercomp div.b_briefcase_breadcrumb{clear:both;padding:1px 0 1px 20px;margin:0.5em 0 0 0;background:url(../openolat/images/folder_open.png) no-repeat 0 50%}div.b_briefcase_foldercomp div.b_briefcase_empty{clear:both;margin-top:0.5em;font-style:italic}div.b_briefcase_foldercomp table.b_briefcase_filetable{clear:both;border-collapse:collapse;margin-bottom:0.5em;background:#fff;width:99.9%;border:1px solid #eee}div.b_briefcase_foldercomp table.b_briefcase_filetable thead{color:#000}div.b_briefcase_foldercomp table.b_briefcase_filetable thead a,div.b_briefcase_foldercomp table.b_briefcase_filetable thead span{color:#4F576A;font-weight:bold}div.b_briefcase_foldercomp table.b_briefcase_filetable thead a:hover,div.b_briefcase_foldercomp table.b_briefcase_filetable thead a:focus{color:#000000;text-decoration:none;background-color:transparent}div.b_briefcase_foldercomp table.b_briefcase_filetable th,div.b_briefcase_foldercomp table.b_briefcase_filetable td{white-space:nowrap;text-align:right;padding-right:1em}div.b_briefcase_foldercomp table.b_briefcase_filetable th.b_last_child,div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_last_child{padding-right:0}div.b_briefcase_foldercomp table.b_briefcase_filetable th.b_first_child,div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_first_child{width:60%;text-align:left}div.b_briefcase_foldercomp table.b_briefcase_filetable td input.b_checkbox{margin:0 4px 0 0}div.b_briefcase_foldercomp table.b_briefcase_filetable td a:hover,div.b_briefcase_foldercomp table.b_briefcase_filetable td a:focus{background-color:transparent}div.b_briefcase_foldercomp table.b_briefcase_filetable td.b_last_child{padding-left:0}div.b_briefcase_foldercomp table.b_briefcase_filetable tr:hover td{background:#ffdbc1}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions{border:0;padding:0;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions td{border:0;padding:0 0 0 3px;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable table.b_briefcase_actions tr{border:0;padding:0;margin:0}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_edit_file_icon{background-image:url(../openolat/images/docs/document--pencil.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_edit_meta_icon{background-image:url(../openolat/images/docs/document_metadata_edit.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_edit_meta_dis_icon{background-image:url(../openolat/images/docs/document_metadata_edit.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_briefcase_foldercomp table.b_briefcase_filetable a.b_briefcase_versions_icon{background-image:url(../openolat/images/docs/document_versions.png)}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_versions_dis_icon{background-image:url(../openolat/images/docs/document_versions.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_briefcase_foldercomp table.b_briefcase_filetable span.b_briefcase_locked_file_icon{background-image:url(../openolat/images/locked.png)}div.b_briefcase_preview{background-color:white;width:200px;height:200px;border:1px solid #8EAACE;margin-top:2px}div.b_briefcase div.b_briefcase_searchcomp{float:left;display:inline;margin:0.5em 0;width:14em}div.b_briefcase div.b_briefcase_searchcomp input{width:10em}div.b_briefcase div.b_briefcase_searchcomp div.b_form_element_wrapper.b_form_horizontal{margin:0}div.b_briefcase div.b_briefcase_commandbuttons{margin:1em 0}div.b_briefcase div.b_briefcase_webdav{margin:0.5em 0}div.b_briefcase div.b_briefcase_quota{clear:both;margin-top:1em;padding-top:1em;border-top:1px solid #000}div.b_briefcase_meta{size:0.8em}div.b_briefcase_meta p{font-style:italic;margin:0;padding-top:2px}div.b_send_documents ol.textbox-outer{margin-left:0;border:1px solid #ACAAAA;background:#F6F6F6;line-height:1.3em}div.b_send_documents ol li{margin-left:0}div.b_send_documents textarea{overflow:auto;resize:none}@media all{div.o_wiki_wrapper{clear:both}div.o_wiki_wrapper div.o_wikimod_btn{position:relative}div.o_wiki_wrapper div.o_wikimod_btn a{margin-bottom:9px;background-repeat:no-repeat;background-position:center center;width:20px;height:19px;float:left;display:inline;padding-left:2px;border:1px solid #ccc;background-color:#eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;margin-right:2px}div.o_wiki_wrapper div.o_wikimod_btn a:hover{border:1px solid red}div.o_wiki_wrapper div.o_wikimod_btn div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:0;right:0}div.o_wiki_wrapper a.o_wikimod_btn_bold{background-image:url(../openolat/images/wiki/edit-bold.png)}div.o_wiki_wrapper a.o_wikimod_btn_italic{background-image:url(../openolat/images/wiki/edit-italic.png)}div.o_wiki_wrapper a.o_wikimod_btn_link{background:url(../openolat/images/wiki/chain.png)}div.o_wiki_wrapper a.o_wikimod_btn_extlink{background:url(../openolat/images/wiki/chain--arrow.png)}div.o_wiki_wrapper a.o_wikimod_btn_headline{background:url(../openolat/images/wiki/edit-heading.png)}div.o_wiki_wrapper a.o_wikimod_btn_image{background:url(../openolat/images/wiki/image-medium.png)}div.o_wiki_wrapper a.o_wikimod_btn_media{background:url(../openolat/images/music-beam.png)}div.o_wiki_wrapper a.o_wikimod_btn_math{background:url(../openolat/images/wiki/edit-math.png)}div.o_wiki_wrapper a.o_wikimod_btn_nowiki{background:url(../openolat/images/wiki/edit-nowiki.png)}div.o_wiki_wrapper a.o_wikimod_btn_hr{background:url(../openolat/images/wiki/edit-hr.png)}div.o_wiki_wrapper a.o_wikimod_btn_list{background:url(../openolat/images/wiki/edit-list.png)}div.o_wiki_wrapper a.o_wikimod_btn_numlist{background:url(../openolat/images/wiki/edit-list-order.png)}div.o_wiki_wrapper .b_eportfolio_add,div.o_wiki_wrapper .b_eportfolio_add_again{position:absolute;top:28px;right:3px;z-index:99}div.o_wiki_wrapper h1{font-size:1.6em}div.o_wiki_wrapper h2{font-size:1.4em}div.o_wiki_wrapper h3{font-size:1.2em}div.o_wiki_wrapper h4{font-size:1.1em}div.o_wiki_wrapper h5{font-size:1.0em}div.o_wikimod_linkchooser{clear:both;float:left;display:inline}div.o_wikimod_filechooser{margin:0 2em;float:left;display:inline}div.o_wikimod_nav{font-size:90%;padding-top:1.5em}div.o_wikimod_nav legend{font-size:95%}div.o_wikimod_nav fieldset{padding:0.5em}div.o_wikimod_nav input{width:99%}div.o_wikimod_nav ul{margin:0;padding:0}div.o_wikimod_nav div.b_button_group{margin:0.5em 0;text-align:left}div.o_wikimod_nav div.b_form div.b_form_element_wrapper.b_form_horizontal{margin:0}div.o_wikimod_nav .b_form_element_wrapper .b_form_element{padding:0}div.o_wikimod_nav div.b_form_element_wrapper div.b_form_element.b_form_horizontal .b_button{margin:0.5em 0}div.o_wikimod_editform_wrapper{clear:both;padding:0.5em 0 0 0}div.o_wikimod_editform_wrapper div.b_form div.b_form_element_wrapper div.b_form_element_label{display:none}div.o_wikimod_editform_wrapper div.b_form div.b_form_element_wrapper div.b_form_element{clear:both;margin-left:0;padding:0 5px 0 0}div.o_wikimod_editform_wrapper div.b_form div.b_button_group{margin-left:0;text-align:center}div.o_wikimod-article-box table[border="1"]{border-collapse:collapse;border:1px solid #BFBFBF}h1.o_wikimod_heading,h3.o_wikimod_heading{margin:0 0 1em 0;padding:.5em 0 .17em 0;border-bottom:1px solid #BFBFBF}#o_wikimod_uploader{margin:1em 0 0 0}.o_wikimod_version{border:1px solid #BFBFBF;padding:4px;margin-top:5px}.o_wikimod_diff{border:1px solid #BFBFBF;padding:4px;margin:0px}.o_wikimod_warn{color:#DF9719}.o_wiki_error{background-color:#DF9719}.o_wikimod_ins{background-color:#A4DCA4}.o_wikimod_old{background-color:#FFCCCC}.o_wikimod_new{background-color:#A4DCA4}.o_wikimod_del{background-color:#FFCCCC}.wiki-image{float:right;padding:10px;clear:right}.wiki-file-deleted{text-decoration:line-through}img.wikiimg{border:0px}a.wikiimg{text-decoration:none;color:inherit;font-weight:inherit}div.imgcaption{padding:0.3em 0em 0.2em 0.3em}div.imgleft{clear:left;float:left;margin:0.3em 0.3em 0.3em 0em;text-align:left}div.imgright{clear:right;float:right;margin:0.3em 0em 0.3em 0.3em;text-align:right}div.o_wikimod-article-box div{width:auto !important}div.imgcenter{clear:both;overflow:hidden;text-align:center;margin:0.3em 0em 0.3em 0em}div.imgthumb{border:1px solid #bbbbbb;padding:0.3em}table.gallery{border:1px solid #B8B8DB;margin:2px;padding:2px;background-color:white}table.gallery tr{vertical-align:middle}table.gallery td{background-color:#EEEEEE;border:solid 2px #B8B8DB;text-align:center;vertical-align:middle;width:150px}img.gallery{border:1px solid #B8B8DB;padding:0.3em}a.edit{font-style:italic;color:#E98F8F}a.externallink:before{content:url("../openolat/images/external_link.png");padding-right:2px}pre{padding:1em;border:1px dashed #B8B8DB;color:black;background-color:#EEEEEE;line-height:1.1em}}div.o_forum div.o_forum_switch{font-size:90%}div.o_forum div.o_forum_message{margin:1em 0 1em 0;padding:0.5em;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;background:#eeeeee}div.o_forum div.o_forum_message_header_wrapper{min-height:24px}div.o_forum div.o_forum_message_header_wrapper div.o_forum_message_header{min-height:24px}div.o_forum div.o_forum_message_title{vertical-align:middle;padding:2px 5px 2px 5px;min-height:24px}div.o_forum div.o_forum_message_title strong{font-weight:bold}div.o_forum div.o_forum_message_new div.o_forum_message_title strong{background:url(../openolat/images/new-text.png) no-repeat top right;padding-right:20px}div.o_forum div.o_forum_message_creator{width:100px;padding:0.5em 12px 0px 21px;font-size:95%;color:#4F576A;float:right;border-left:1px solid #fff}div.o_forum div.o_forum_message_creator strong{font-weight:normal}div.o_forum div.o_forum_message_creator img{border:1px solid #4F576A}div.o_forum div.o_forum_message_body{padding:0.5em;background:transparent;margin-right:155px}div.o_forum div.o_forum_message_attachments{margin:2em 0 0.5em 0;border-top:1px solid #555555;font-size:95%}div.o_forum div.o_forum_message_attachments strong{display:block;margin:0.5em 0;font-weight:normal;font-style:italic}div.o_forum div.o_forum_message_attachments ul{list-style:none;margin:0;padding:0}div.o_forum div.o_forum_message_attachments li{margin:0;padding:0}div.o_forum div.o_forum_message_attachments a{background-repeat:no-repeat;background-position:0 50%;padding-left:20px;padding-top:2px;padding-bottom:2px}div.o_forum div.o_forum_message_modified{clear:both;border-top:1px solid #506D90;padding:0.5em 0 0 0;font-size:95%;font-style:italic;text-align:center;color:#98221F}div.o_forum div.o_forum_message_actions{text-align:center;padding:0.2em 1em;padding-top:0.8em}span.o_forum_thread_sticky{font-weight:bold}span.o_forum_status_thread_icon{background-image:url(../openolat/images/forum/forum.png)}span.o_forum_status_sticky_closed_icon{background-image:url(../openolat/images/forum/sticky-note-pin_locked.png)}span.o_forum_status_sticky_icon{background-image:url(../openolat/images/forum/sticky-note-pin.png)}span.o_forum_status_closed_icon{background-image:url(../openolat/images/forum/forum_locked.png)}.b_quote_wrapper{position:relative;margin:20px}.b_quote_author{background:url(../openolat/images/forum/quote.gif) no-repeat left bottom;padding:10px 5px 15px 11px;position:relative;top:1px;font-style:italic;color:#A2A2A2}blockquote.b_quote{margin:0;border:1px solid #e5e5e5;padding:8px 10px 6px;color:#646464;background:#fff;font-size:100%}div.o_forum_peekview{margin:1em 0 1em 0}div.o_forum_peekview h5{font-size:1em;position:relative;left:-20px}div.o_forum_peekview div.o_forum_peekview_message{padding-left:20px;padding-bottom:15px}div.o_forum_peekview div.b_quote_wrapper{display:none}.o_forum_message_icon{background-image:url(../openolat/images/forum/balloon-white-left.png)}div.o_forum_toolbar{float:left;display:inline;width:75%}div#o_forum_fulltextsearch{float:right;display:inline}div#o_forum_fulltextsearch input{width:10em}div#o_forum_fulltextsearch div.b_form_element_wrapper.b_form_horizontal{margin:0}div.b_struct_edit_btn{float:right;display:inline}div.o_ep_struct_editor div.b_subcr{min-height:35em;background:white;padding-right:1em;overflow-x:auto}.b_artefact{margin:5px;border:1px solid #ddd;padding:1em;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 2px lightGrey;-ms-box-shadow:0 1px 2px lightGrey;-o-box-shadow:0 1px 2px lightGrey;-webkit-box-shadow:0 1px 2px lightGrey;box-shadow:0 1px 2px lightGrey;background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%)}div.o_ep_toc_editor div.b_subcl{min-height:35em}div.o_ep_struct_editor div.b_subcr{min-height:35em;background:#FFF;padding-right:1em;overflow-x:auto}div.b_struct_edit_btn{float:right;display:inline}div.b_struct_submit_assess_btn{float:right;display:inline}.b_artefact div.b_actions{margin-top:2em}.b_artefact div.b_desc{font-style:italic;margin:1em 0}.b_ep_artAttribLink{background-image:url(../openolat/images/table_gear.png)}div.b_artefact_closed{font-size:25px;float:right;background:url(../openolat/images/locked.png) top right no-repeat}div.b_eportfolio_preview_c100l .b_artefact{margin:3px}div.b_eportfolio_preview_c33l .b_artefact{font-size:85%;margin:3px}.b_ep_nolink{color:#000000}.b_ep_nolink:hover{color:#000000;text-decoration:none}.b_ep_multiartefacts div.b_ep_add_message_with_arrow{position:relative;top:-50px}.b_ep_multiartefacts div.b_artefact_count{margin:1em 0 1em 0}a.b_ep_options{background:url(../openolat/images/gear.png) top left no-repeat;width:16px;height:16px;display:block}.b_ep_liveblog_icon{background-image:url(../openolat/images/portfolio/ep_liveblog_icon.png)}div.b_portfolio_toc ul{margin:0}div.b_portfolio_toc li{list-style-type:none}div.b_portfolio_toc li a{font-size:0.8em;text-decoration:none}div.b_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}div.b_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}div.b_portfolio_toc li.level3{padding-left:40px}div.b_portfolio_toc .link{float:right;margin-right:0px}div.b_portfolio_toc .commentlink{float:right;margin-right:10%}div.b_portfolio_toc .type_artefact{font-style:italic}div.b_portfolio_toc .type_map,div.b_portfolio_toc .type_page,div.b_portfolio_toc .type_struct,div.b_portfolio_toc .type_artefact{background-position:center left;background-repeat:no-repeat;padding-left:20px}a.b_eportfolio_add{background:url(../openolat/images/portfolio/ep_add_icon.png) top left no-repeat;display:block;width:16px;height:16px}td a.b_eportfolio_add{float:right;padding-right:2px}a.b_eportfolio_add_again,span.b_eportfolio_add_again{background:url(../openolat/images/portfolio/ep_add_again_icon.png) top left no-repeat;display:block;width:16px;height:16px}.o_efficiencystatement a.b_eportfolio_add_again{float:right}a.b_eportfolio_link{background:url(../openolat/images/portfolio/ep_link_icon.png) top left no-repeat;display:block;width:16px;height:16px}.b_eportfolio_link{background-image:url(../openolat/images/portfolio/ep_link_icon.png)}ul.b_eportfolio_maps{margin:0;padding:0}ul.b_eportfolio_maps li{display:block;float:left;position:relative;width:195px;height:320px;padding:60px 60px 40px 65px;margin:0.5em;background:url(../openolat/images/portfolio/eportfolio_map_default.png) top left no-repeat;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:14px;-webkit-border-bottom-right-radius:14px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-topleft:4px;-moz-border-radius-topright:14px;-moz-border-radius-bottomright:14px;-moz-border-radius-bottomleft:4px;border-top-left-radius:4px;border-top-right-radius:14px;border-bottom-right-radius:14px;border-bottom-left-radius:4px;moz-box-shadow:0 1px 3px lightgray;-ms-box-shadow:0 1px 3px lightgray;-o-box-shadow:0 1px 3px lightgray;-webkit-box-shadow:0 1px 3px lightgray;box-shadow:0 1px 3px lightgray}ul.b_eportfolio_maps li .b_map_info{position:absolute;bottom:40px;width:inherit;font-size:0.9em}ul.b_eportfolio_maps li .b_map_info a.b_open_icon{font-size:1.2em;position:absolute;bottom:170px;right:-10px}.b_eportfolio_changelog .b_form{margin-top:20px;margin-bottom:20px}.b_eportfolio_changelog li{list-style:none}.b_eportfolio_changelog h5{margin-top:16px}.b_eportfolio_mapowner{font-style:italic;margin-bottom:8px}.b_eportfolio_mapowner div{display:inline}div.b_eportfolio_share_with_user{clear:both}div.b_eportfolio_share_with_user p{vertical-align:middle}div.b_eportfolio_share_with_user p span{float:none}@media all{.epmst-green{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green,ul.b_eportfolio_maps li.template.epmst-green{background:#ecf69a;background:#ecf69a -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ecf69a), to(#ecf69a));background:#ecf69a -moz-linear-gradient(43% 71% 101deg, #ecf69a, #ecf69a);background:#ecf69a -o-linear-gradient(#ecf69a, #ecf69a);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ecf69a', EndColorStr='#ecf69a');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-green > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green{margin-top:6px;background:#ecf69a;background:#ecf69a -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ecf69a), to(#ecf69a));background:#ecf69a -moz-linear-gradient(43% 71% 101deg, #ecf69a, #ecf69a);background:#ecf69a -o-linear-gradient(#ecf69a, #ecf69a);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ecf69a', EndColorStr='#ecf69a');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green div.b_map_header h4{color:#444444}.epmst-green div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green div.b_ep_actualpage h1,.epmst-green div.b_ep_actualpage h4{color:#444444}.epmst-green div.b_pagination{float:none;position:static;width:100%}.epmst-green div.b_pagination ul{margin:0}.epmst-green div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green div.b_pagination li span,.epmst-green div.b_pagination li a,.epmst-green div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green div.b_eportfolio_page,.epmst-green div.b_portfolio_toc,.epmst-green div.b_eportfolio_edit{background-image:none}.epmst-green div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green2,ul.b_eportfolio_maps li.template.epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #99e44d, #cbf1a5);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green2{margin-top:6px;background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #99e44d, #cbf1a5);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green2 div.b_map_header h4{color:#555555}.epmst-green2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green2 div.b_ep_actualpage h1,.epmst-green2 div.b_ep_actualpage h4{color:#555555}.epmst-green2 div.b_pagination{float:none;position:static;width:100%}.epmst-green2 div.b_pagination ul{margin:0}.epmst-green2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green2 div.b_pagination li span,.epmst-green2 div.b_pagination li a,.epmst-green2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green2 div.b_eportfolio_page,.epmst-green2 div.b_portfolio_toc,.epmst-green2 div.b_eportfolio_edit{background-image:none}.epmst-green2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green3,ul.b_eportfolio_maps li.template.epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #dff0c1, #a0d346);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green3{margin-top:6px;background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #dff0c1, #a0d346);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green3 div.b_map_header h4{color:#555555}.epmst-green3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green3 div.b_ep_actualpage h1,.epmst-green3 div.b_ep_actualpage h4{color:#555555}.epmst-green3 div.b_pagination{float:none;position:static;width:100%}.epmst-green3 div.b_pagination ul{margin:0}.epmst-green3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green3 div.b_pagination li span,.epmst-green3 div.b_pagination li a,.epmst-green3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green3 div.b_eportfolio_page,.epmst-green3 div.b_portfolio_toc,.epmst-green3 div.b_eportfolio_edit{background-image:none}.epmst-green3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-green4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-green4,ul.b_eportfolio_maps li.template.epmst-green4{background:#d7dbb5;background:#d7dbb5 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#d7dbb5), to(#d7dbb5));background:#d7dbb5 -moz-linear-gradient(43% 71% 101deg, #d7dbb5, #d7dbb5);background:#d7dbb5 -o-linear-gradient(#d7dbb5, #d7dbb5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#d7dbb5', EndColorStr='#d7dbb5');border:1px solid #bbbbbb;border-left:3px solid rgba(136, 136, 136, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-green4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#555555}ul.b_eportfolio_maps li.epmst-green4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-green4{margin-top:6px;background:#d7dbb5;background:#d7dbb5 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#d7dbb5), to(#d7dbb5));background:#d7dbb5 -moz-linear-gradient(43% 71% 101deg, #d7dbb5, #d7dbb5);background:#d7dbb5 -o-linear-gradient(#d7dbb5, #d7dbb5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#d7dbb5', EndColorStr='#d7dbb5');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-green4 div.b_map_header h4{color:#555555}.epmst-green4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-green4 div.b_ep_actualpage h1,.epmst-green4 div.b_ep_actualpage h4{color:#555555}.epmst-green4 div.b_pagination{float:none;position:static;width:100%}.epmst-green4 div.b_pagination ul{margin:0}.epmst-green4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-green4 div.b_pagination li span,.epmst-green4 div.b_pagination li a,.epmst-green4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-green4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-green4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-green4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-green4 div.b_eportfolio_page,.epmst-green4 div.b_portfolio_toc,.epmst-green4 div.b_eportfolio_edit{background-image:none}.epmst-green4 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red,ul.b_eportfolio_maps li.template.epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba71, #ffba99);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red{margin-top:6px;background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba71, #ffba99);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red div.b_map_header h4{color:#444444}.epmst-red div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red div.b_ep_actualpage h1,.epmst-red div.b_ep_actualpage h4{color:#444444}.epmst-red div.b_pagination{float:none;position:static;width:100%}.epmst-red div.b_pagination ul{margin:0}.epmst-red div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red div.b_pagination li span,.epmst-red div.b_pagination li a,.epmst-red div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red div.b_eportfolio_page,.epmst-red div.b_portfolio_toc,.epmst-red div.b_eportfolio_edit{background-image:none}.epmst-red div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red2,ul.b_eportfolio_maps li.template.epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9772, #ff9780);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red2{margin-top:6px;background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9772, #ff9780);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red2 div.b_map_header h4{color:#444444}.epmst-red2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red2 div.b_ep_actualpage h1,.epmst-red2 div.b_ep_actualpage h4{color:#444444}.epmst-red2 div.b_pagination{float:none;position:static;width:100%}.epmst-red2 div.b_pagination ul{margin:0}.epmst-red2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red2 div.b_pagination li span,.epmst-red2 div.b_pagination li a,.epmst-red2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red2 div.b_eportfolio_page,.epmst-red2 div.b_portfolio_toc,.epmst-red2 div.b_eportfolio_edit{background-image:none}.epmst-red2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red3,ul.b_eportfolio_maps li.template.epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afbb, #e8afa0);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red3{margin-top:6px;background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afbb, #e8afa0);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red3 div.b_map_header h4{color:#444444}.epmst-red3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red3 div.b_ep_actualpage h1,.epmst-red3 div.b_ep_actualpage h4{color:#444444}.epmst-red3 div.b_pagination{float:none;position:static;width:100%}.epmst-red3 div.b_pagination ul{margin:0}.epmst-red3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red3 div.b_pagination li span,.epmst-red3 div.b_pagination li a,.epmst-red3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red3 div.b_eportfolio_page,.epmst-red3 div.b_portfolio_toc,.epmst-red3 div.b_eportfolio_edit{background-image:none}.epmst-red3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-red4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-red4,ul.b_eportfolio_maps li.template.epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffa800, #ffaf00);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-red4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-red4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-red4{margin-top:6px;background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffa800, #ffaf00);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-red4 div.b_map_header h4{color:#444444}.epmst-red4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-red4 div.b_ep_actualpage h1,.epmst-red4 div.b_ep_actualpage h4{color:#444444}.epmst-red4 div.b_pagination{float:none;position:static;width:100%}.epmst-red4 div.b_pagination ul{margin:0}.epmst-red4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-red4 div.b_pagination li span,.epmst-red4 div.b_pagination li a,.epmst-red4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-red4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-red4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-red4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-red4 div.b_eportfolio_page,.epmst-red4 div.b_portfolio_toc,.epmst-red4 div.b_eportfolio_edit{background-image:none}.epmst-red4 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue,ul.b_eportfolio_maps li.template.epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #00d2f8, #4a9ead);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue{margin-top:6px;background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #00d2f8, #4a9ead);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue div.b_map_header h4{color:#444444}.epmst-blue div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue div.b_ep_actualpage h1,.epmst-blue div.b_ep_actualpage h4{color:#444444}.epmst-blue div.b_pagination{float:none;position:static;width:100%}.epmst-blue div.b_pagination ul{margin:0}.epmst-blue div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue div.b_pagination li span,.epmst-blue div.b_pagination li a,.epmst-blue div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue div.b_eportfolio_page,.epmst-blue div.b_portfolio_toc,.epmst-blue div.b_eportfolio_edit{background-image:none}.epmst-blue div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue2{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue2,ul.b_eportfolio_maps li.template.epmst-blue2{background:#c4f6ff;background:#c4f6ff -webkit-gradient(linear, 37% 20%, 53% 100%, from(#c4f6ff), to(#c4f6ff));background:#c4f6ff -moz-linear-gradient(43% 71% 101deg, #c4f6ff, #c4f6ff);background:#c4f6ff -o-linear-gradient(#c4f6ff, #c4f6ff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#c4f6ff', EndColorStr='#c4f6ff');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue2 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue2 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue2{margin-top:6px;background:#c4f6ff;background:#c4f6ff -webkit-gradient(linear, 37% 20%, 53% 100%, from(#c4f6ff), to(#c4f6ff));background:#c4f6ff -moz-linear-gradient(43% 71% 101deg, #c4f6ff, #c4f6ff);background:#c4f6ff -o-linear-gradient(#c4f6ff, #c4f6ff);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#c4f6ff', EndColorStr='#c4f6ff');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue2 div.b_map_header h4{color:#444444}.epmst-blue2 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue2 div.b_ep_actualpage h1,.epmst-blue2 div.b_ep_actualpage h4{color:#444444}.epmst-blue2 div.b_pagination{float:none;position:static;width:100%}.epmst-blue2 div.b_pagination ul{margin:0}.epmst-blue2 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue2 div.b_pagination li span,.epmst-blue2 div.b_pagination li a,.epmst-blue2 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue2 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue2 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue2 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue2 div.b_eportfolio_page,.epmst-blue2 div.b_portfolio_toc,.epmst-blue2 div.b_eportfolio_edit{background-image:none}.epmst-blue2 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue3{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue3,ul.b_eportfolio_maps li.template.epmst-blue3{background:#b3e2f7;background:#b3e2f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#b3e2f7), to(#b3e2f7));background:#b3e2f7 -moz-linear-gradient(43% 71% 101deg, #b3e2f7, #b3e2f7);background:#b3e2f7 -o-linear-gradient(#b3e2f7, #b3e2f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#b3e2f7', EndColorStr='#b3e2f7');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue3 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue3 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue3{margin-top:6px;background:#b3e2f7;background:#b3e2f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#b3e2f7), to(#b3e2f7));background:#b3e2f7 -moz-linear-gradient(43% 71% 101deg, #b3e2f7, #b3e2f7);background:#b3e2f7 -o-linear-gradient(#b3e2f7, #b3e2f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#b3e2f7', EndColorStr='#b3e2f7');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue3 div.b_map_header h4{color:#444444}.epmst-blue3 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue3 div.b_ep_actualpage h1,.epmst-blue3 div.b_ep_actualpage h4{color:#444444}.epmst-blue3 div.b_pagination{float:none;position:static;width:100%}.epmst-blue3 div.b_pagination ul{margin:0}.epmst-blue3 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue3 div.b_pagination li span,.epmst-blue3 div.b_pagination li a,.epmst-blue3 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue3 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue3 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue3 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue3 div.b_eportfolio_page,.epmst-blue3 div.b_portfolio_toc,.epmst-blue3 div.b_eportfolio_edit{background-image:none}.epmst-blue3 div.b_pagination li.b_changelog{float:right}}@media all{.epmst-blue4{font-family:Century Gothic, Apple Gothic, sans-serif}ul.b_eportfolio_maps li.epmst-blue4,ul.b_eportfolio_maps li.template.epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #dee7f7, #c1e9fd);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888888;border-left:3px solid rgba(85, 85, 85, 0.8);box-shadow:3px 3px 4px rgba(20, 20, 20, 0.4)}ul.b_eportfolio_maps .b_map_info p{color:black}ul.b_eportfolio_maps li.epmst-blue4 > h4{padding:20px 20px 4px 25px;background:rgba(255, 255, 230, 0.7) none;margin:0;-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;color:#444444}ul.b_eportfolio_maps li.epmst-blue4 > div.b_map_descr{padding:0 20px 20px 25px;background:rgba(255, 255, 230, 0.7) none;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.b_eportfolio_map.epmst-blue4{margin-top:6px;background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #dee7f7, #c1e9fd);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');padding:30px;-webkit-border-top-right-radius:10px;-moz-border-radius-topright:10px;border-top-right-radius:10px}.epmst-blue4 div.b_map_header h4{color:#444444}.epmst-blue4 div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.epmst-blue4 div.b_ep_actualpage h1,.epmst-blue4 div.b_ep_actualpage h4{color:#444444}.epmst-blue4 div.b_pagination{float:none;position:static;width:100%}.epmst-blue4 div.b_pagination ul{margin:0}.epmst-blue4 div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;-o-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0}.epmst-blue4 div.b_pagination li span,.epmst-blue4 div.b_pagination li a,.epmst-blue4 div.b_pagination li{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.epmst-blue4 div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.epmst-blue4 div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.epmst-blue4 div.b_pagination li a{padding:1em;padding:5px 8px}.epmst-blue4 div.b_eportfolio_page,.epmst-blue4 div.b_portfolio_toc,.epmst-blue4 div.b_eportfolio_edit{background-image:none}.epmst-blue4 div.b_pagination li.b_changelog{float:right}}li.default .b_map_info p{color:#bbb}li.comic .b_map_info p{color:#88a5c4}li.leather .b_map_info p{color:#C2A074}.b_map_page{text-align:center;clear:left}.b_map_page_all{text-align:center}.b_map_page > span{padding-right:3px}.b_map_page a.b_map_page_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}ul.b_eportfolio_maps li.leather{background:url(../openolat/images/portfolio/eportfolio_map_leather.png) top left no-repeat;border:none}ul.b_eportfolio_maps li.leather a{color:#fad9a4}ul.b_eportfolio_maps li.comic{background:url(../openolat/images/portfolio/eportfolio_map_comic.png) top left no-repeat;border:none}ul.b_eportfolio_maps li.template.default{background-image:url(../openolat/images/portfolio/eportfolio_map_default_template.png)}ul.b_eportfolio_maps li.template.comic{background-image:url(../openolat/images/portfolio/eportfolio_map_comic_template.png)}ul.b_eportfolio_maps li.template.leather{background-image:url(../openolat/images/portfolio/eportfolio_map_leather_template.png)}.b_map_page{text-align:center;clear:left}.b_map_page_all{text-align:center}.b_map_page > span{padding-right:3px}.b_map_page a.b_map_page_forward{background:url(../openolat/images/arrow_right.png) no-repeat center right;padding-right:16px}.b_eportfolio_map{background:white;padding:1.5em;min-height:30em}.b_eportfolio_map .b_ep_relative{position:relative}.b_eportfolio_toolbar div{display:inline}.b_eportfolio_toolbar{text-align:right;width:100%;border-bottom:1px solid #acaaaa;padding:1px 2px 4px 2px;margin-bottom:6px}.b_eportfolio_map a.b_eportfolio_add_link,.b_eportfolio_map a.b_eportfolio_del_link{float:right;display:inline;background-repeat:no-repeat;margin-left:0.5em;width:16px;height:16px;text-decoration:none}.b_eportfolio_toolbar a.b_eportfolio_add_link,.b_eportfolio_map a.b_eportfolio_del_link{float:none;display:inline-block;background-repeat:no-repeat;margin-left:0;margin-right:0.5em;width:16px;height:16px;text-decoration:none}.b_eportfolio_map div.b_eportfolio_add_link{float:left;display:inline;margin-top:2px}.o_ep_toc_editor .b_eportfolio_add_link{float:left}.b_eportfolio_map .b_eportfolio_add_link:hover{text-decoration:none}.b_eportfolio_map .b_eportfolio_comment_link{float:right;display:inline;margin-right:5px}.b_ep_tag_cloud{padding:1em 0 1em 0;border-bottom:1px solid #ccc}.b_eportfolio_page,.b_portfolio_toc,.b_eportfolio_edit,.b_eportfolio_changelog{min-height:40em;background:#f4f4f4 url(../openolat/images/portfolio/eportfolio_page_corner.png) top right no-repeat;padding:1em;-webkit-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);-moz-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);-o-box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2);box-shadow:0px 2px 5px rgba(0, 0, 0, 0.2)}.b_eportfolio_page .b_eportfolio_structure > h5{border-bottom:1px solid #ddd;margin-top:1.2em}.b_eportfolio_edit{margin-top:1.5em}.b_eportfolio.b_artefacts hr.b_ep_filter_spacer{height:10px;background:url(../openolat/images/portfolio/divider-arrow-down.png) 25px -12px no-repeat;border:none;border-top:1px solid #ccc;margin:2em 0 1em}.b_eportfolio.b_artefacts .b_ep_content{background:white;padding:0 1em 1em 1em;margin-top:1.5em}.b_eportfolio.b_artefacts .b_ep_content .b_ep_filter{padding:0;width:80%}.b_ep_filter{float:left}.b_ep_viewmode{float:right;width:15%}.b_ep_add_artefact{float:right}.b_ep_content div.b_ep_viewmode div.b_form_element_label{width:auto}.b_eportfolio.b_artefacts div.b_segments_container{top:-20px;margin-bottom:-20px}.b_ep_tagbrowser{width:30%;margin-right:0px}.b_ep_tagbrowser_view{width:68%;margin-left:0px}.b_ep_collection_icon{background-image:url(../openolat/images/portfolio/ep_collection.png) !important}.b_ep_map_icon,.b_portfolio_toc .type_map{background-image:url(../openolat/images/portfolio/briefcase.png) !important}.b_ep_page_icon,.b_portfolio_toc .type_page{background-image:url(../openolat/images/portfolio/ep_page.png) !important}.b_ep_page_icon.b_eportfolio_add_link{background-image:url(../openolat/images/portfolio/ep_page_add.png) !important}.b_ep_struct_icon,.b_portfolio_toc .type_struct{background-image:url(../openolat/images/portfolio/ep_struct.png) !important}.b_ep_struct_icon.b_eportfolio_add_link{background-image:url(../openolat/images/portfolio/ep_struct_add.png) !important}.type_artefact{background-image:url(../openolat/images/le_resources/portfolio.png) !important}div.b_eportfolio_collect_restriction{margin-top:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_el{float:left;margin-right:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link{float:left;margin-right:5px}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link a{padding-left:0px;text-decoration:none}div.b_eportfolio_collect_restriction div.b_eportfolio_collect_restriction_link a:hover{text-decoration:none}div.b_form.b_eportfolio_tag_selector{min-width:40em}div.b_eportfolio_restriction_wrapper a.b_togglebox_opened{z-index:10;display:block;width:20px;height:20px;padding:0;margin-left:12px}div.b_eportfolio_restriction_wrapper a.b_togglebox_closed{display:block;width:20px;height:20px;padding:0;margin-left:12px}div.b_eportfolio_restriction_wrapper p{padding:0 0 0 15px;margin:0}div.b_eportfolio_restriction_wrapper div.b_togglebox div.b_togglebox_content{padding:3px 3px 3px 3px;margin:0;border:1px solid red;background-image:none;background-color:transparent;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px}div.b_eportfolio_restriction_error div.b_tooglebox_opened div.b_togglebox_content{border:1px solid #FF9900 !important;background:#fff5cc url(../openolat/images/decorator/deco_warn.png) no-repeat 3px 7px !important}div.b_eportfolio_restriction_passed div.b_tooglebox_opened div.b_togglebox_content{border:1px solid #F0F0F0 !important;background:#fcfcfc url(../openolat/images/decorator/deco_ok.png) no-repeat 3px 7px !important}div.b_eportfolio_restriction_error div.b_togglebox_closed{background:transparent url(../openolat/images/decorator/deco_warn.png) no-repeat 3px 5px !important}div.b_eportfolio_restriction_passed div.b_togglebox_closed{background:transparent url(../openolat/images/decorator/deco_ok.png) no-repeat 3px 5px !important}div.b_eportfolio_restriction_wrapper div.b_togglebox div.b_togglebox_content .b_togglebox_hide{display:none}.b_eportfolio_deadline_callout{width:300px}.b_ep_multiartefacts .b_c50l{clear:both}.b_eportfolio_fulltextsearch{float:left}.b_eportfolio_share_policy_wrapper{margin:5px;border:1px solid #ddd;padding:1em;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-ms-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-o-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%)}.b_eportfolio_share_policy_wrapper .b_float_right{text-align:right}.b_eportfolio_share_policy_wrapper a.bit-input{text-decoration:none}.b_eportfolio_share_policy div input,.b_eportfolio_share_policy div span,.b_eportfolio_share_policy div select{float:left;margin-right:5px;padding-right:5px}.b_eportfolio_share_policy div span.b_form_datechooser{background:url(../openolat/images/calendar.png) no-repeat;padding-left:18px;height:16px;line-height:16px;margin-left:2px}.b_eportfolio_share_policy .b_ep_share_date span{float:left}.b_eportfolio_share_policy_wrapper .b_eportfolio_share_policy{padding-left:20px;background:url(../openolat/images/user.png) top left no-repeat}.b_eportfolio_share_policy_wrapper.policytype_group .b_eportfolio_share_policy{background-image:url(../openolat/images/users.png)}.b_eportfolio_share_policy_wrapper.policytype_invitation .b_eportfolio_share_policy{background-image:url(../openolat/images/share.png)}.b_eportfolio_share_policy_wrapper.policytype_allusers .b_eportfolio_share_policy{background-image:url(../openolat/images/users.png)}div.b_ep_inline div input,div.b_ep_inline div span,div.b_ep_inline div select{float:left;margin-right:5px;padding-right:5px}.default div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.default div.b_pagination{float:none;position:static;width:100%}.default div.b_pagination ul{margin:0}.default div.b_pagination li{float:left;display:inline;width:auto;margin:2px 2px 2px 0;padding:0;background:#FAFAFA;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:7px;border-top-right-radius:7px;border-bottom-right-radius:0;border-bottom-left-radius:0}.default div.b_pagination li a{padding:1em;padding:5px 8px}.default div.b_pagination li,.default div.b_pagination li span,.default div.b_pagination li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.default div.b_pagination li.b_disabled{padding-bottom:2px;margin-bottom:0;background:#f4f4f4}.default div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.default div.b_pagination li.b_changelog{float:right}.default div.b_eportfolio_page,.default div.b_portfolio_toc,.default div.b_eportfolio_edit,.default div.b_eportfolio_changelog{background-image:none}.b_eportfolio_map.comic{background:#a2c3e8 none;padding:30px;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:10px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-topright:10px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:0;border-top-right-radius:10px;border-bottom-right-radius:0;border-bottom-left-radius:0}.comic{font-family:'Comic Sans MS', 'Comic Sans', fantasy}.comic div.b_pagination{position:absolute;right:0;width:16%;max-height:100%;overflow-x:hidden;overflow-y:auto;z-index:100}.comic .b_ep_relative > div:last-child{position:relative}.comic div.b_ep_actualpage{width:85%;margin-top:1em}.comic div.b_pagination ul{margin-top:30px;margin-left:0px;z-index:1}.comic div.b_pagination li{width:87%;background:url(../openolat/images/portfolio/postit.png) center right;padding:0;margin-bottom:1em;margin-left:8%;list-style-type:none}.comic div.b_pagination li span.b_disabled,.comic div.b_pagination li a span{display:block;padding:20px 15px 20px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.comic div.b_pagination li,.comic div.b_pagination li span,.comic div.b_pagination li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.comic div.b_pagination li.b_disabled{z-index:101;margin-left:0;width:100%}.comic div.b_pagination li .b_disabled{color:black;font-weight:bold}.comic div.b_pagination li.b_toc,.comic div.b_pagination li.b_changelog{background-image:url(../openolat/images/portfolio/postit_pink.png)}.b_eportfolio_map.leather{background:url(../openolat/images/portfolio/light-leather-tile.jpg)}.leather{font-family:Palatino, Georgia, serif}.leather div.b_ep_actualpage{width:100%;margin-top:0;clear:both}.leather .b_map_header h4,.leather .b_map_header p,.leather .b_map_header a.b_eportfolio_add_link,.leather .b_map_header a.b_eportfolio_comment_link{color:white}.leather .b_eportfolio_mapowner{color:#fff}.leather div.b_pagination{float:none;position:static;width:100%}.leather div.b_pagination ul{margin:0}.leather div.b_pagination li{float:left;display:inline;width:auto;margin:0 2px 0 0;padding:0;background:#ddd;-webkit-border-top-left-radius:7px;-webkit-border-top-right-radius:7px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-topleft:7px;-moz-border-radius-topright:7px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;border-top-left-radius:7px;border-top-right-radius:7px;border-bottom-right-radius:0;border-bottom-left-radius:0}.leather div.b_pagination li a{padding:1em;padding:5px 8px}.leather div.b_pagination li,.leather div.b_pagination li span,.leather div.b_pagination li a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.leather div.b_pagination li.b_disabled{padding:0;background:#f4f4f4}.leather div.b_pagination li .b_disabled{color:black;font-weight:normal;padding:5px 8px}.leather div.b_pagination li.b_changelog{float:right}.leather div.b_eportfolio_page,.leather div.b_portfolio_toc,.leather div.b_eportfolio_edit,.leather div.b_eportfolio_changelog{background-image:none}div.o_module_cp_wrapper a.b_content_download{background:url("../openolat/images/drive-download.png") no-repeat top left;padding-left:20px;margin:3px;display:block;min-height:16px}div.o_module_cp_wrapper div#o_local_fulltextsearch{position:absolute;top:0;right:0;z-index:10}div.o_module_cp_wrapper div#o_local_fulltextsearch div.b_form_element_wrapper.b_form_horizontal{margin:0}div.o_module_cp_wrapper div.o_cp_navigation{float:right;display:inline;padding:3px 0 3px 3px;background:#ebebeb;border:1px solid #ddd;white-space:nowrap;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;moz-box-shadow:0 1px 2px lightGrey;-ms-box-shadow:0 1px 2px lightGrey;-o-box-shadow:0 1px 2px lightGrey;-webkit-box-shadow:0 1px 2px lightGrey;box-shadow:0 1px 2px lightGrey}div.o_module_cp_wrapper div span a{margin:0 2px}div.o_module_cp_wrapper div span.b_disabled{display:none}div.o_module_cp_wrapper div span a.o_cp_previous_icon{background-image:url("../openolat/images/arrow_left_big.png");text-decoration:none}div.o_module_cp_wrapper div span a.o_cp_previous_icon span{display:none}div.o_module_cp_wrapper div span a.o_cp_next_icon{background-image:url("../openolat/images/arrow_right_big.png")}div.o_module_cp_wrapper div span a.o_cp_next_icon span{display:none}div.o_module_cp_wrapper div span a.o_cp_print_icon{background-image:url("../openolat/images/printer.png")}div.o_module_cp_wrapper div span a.o_cp_print_icon span{display:none}div.o_module_cp_wrapper div.o_cp_navigation div,div.o_module_cp_wrapper div.o_cp_navigation form{display:inline}div.o_module_cp_wrapper div.o_cp_navigation div.b_clearfix{display:inline;clear:none}div.o_module_cp_wrapper div.o_cp_navigation div.b_clearfix:after{display:inline;height:0;clear:none;visibility:hidden}#o_cpeditor_menu div.o_cpeditor_menu_tree{padding:10px 0 0 0}#b_col1 div.b_menu_toolbar a,#b_col3 div.b_menu_toolbar a{width:16px;height:16px;margin:3px;float:right;display:inline;background-repeat:no-repeat}a.o_cpeditor_import{background-image:url("../openolat/images/docs/document_upload.png")}a.o_cpeditor_new{background-image:url("../openolat/images/docs/document_add.png")}a.o_cpeditor_copy{background-image:url("../openolat/images/docs/document_copy.png")}a.o_cpeditor_delete{background-image:url("../openolat/images/docs/document_remove.png")}a.o_cpeditor_edit{background-image:url(../openolat/images/docs/document_metadata_edit.png)}a.o_cpeditor_preview{background-image:url(../openolat/images/docs/document_preview.png)}#o_cpeditor_content div.o_cpeditor_message{padding:20px}div.o_qpool_button_bar{padding:15px 0 0 0;text-align:center}div.o_qpool_toolbar{padding:3px;text-align:right}.o_sel_qpool_pool{background-image:url("../openolat/images/qti/pool-share.png") !important}.o_sel_qpool_my_items{background-image:url("../openolat/images/user.png") !important}.o_sel_qpool_favorits{background-image:url("../openolat/images/flag.png") !important}.o_sel_qpool_share{background-image:url("../openolat/images/users.png") !important}.o_sel_qpool_collection{background-image:url("../openolat/images/document-list.png") !important}.o_readwrite{background-image:url("../openolat/images/pencil.png")}.o_readonly{background-image:url("../openolat/images/pencil-prohibition.png")}.o_public,.o_exportable{background-image:url("../openolat/images/tick.png")}.o_private,.o_unexportable{background-image:url("../openolat/images/cross.png")}.o_qpool_edit_learning_time div{float:left}.o_qpool_edit_learning_time div input,.o_qpool_edit_learning_time div select,.o_qpool_edit_learning_time div span.o_qpool_edit_learning_time_label{margin-right:5px;padding-right:5px}div.o_sel_qpool_edit_content{float:right}div.o_sel_qpool_edit_content .b_link_edit{margin-right:20px}div.o_sel_qpool_presentation div.b_c33l li{padding-right:15px}div.o_sel_qpool_presentation h5{margin:0.5em 0 0.5em 0}#qpoolcontainer div.b_table_wrapper a.b_table_prefs{position:relative;top:1.5em;left:19px}#qpoolcontainer div.b_table_wrapper div.dataTables_wrapper{margin-top:1em}div.o_qpool_metadata_sharing h5{margin-top:1em}div.o_qpool_metadata_sharing table td.b_first_child{width:15%}a.o_print_icon{background-image:url("../openolat/images/printer.png")}a.o_print_icon span{display:none}.d3chart .bar_green{fill:#9dd53a}.d3chart .bar_green:hover{fill:#7cbc0a}.d3chart .bar_red{fill:#f85032}.d3chart .bar_red:hover{fill:#e73827}.d3chart .bar_grey{fill:lightgrey}.d3chart .bar_grey:hover{fill:grey}div.o_qti_statistics{padding-top:20px;padding-left:40px;padding-right:5%}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0}div.o_qti_statistics li{padding-left:22px}div.o_qti_statistics li.o_qti_statistics-survey-item{padding-left:0px}div.o_qti_statistics li.o_qti_statistics-ncorrect{background:url(../img/decorator_error.png) no-repeat 5px 4px}div.o_qti_statistics li.o_qti_statistics-correct{background:url(../img/decorator_ok.png) no-repeat 5px 2px}div.o_qti_statistics h4{padding-left:20px}div.o_qti_statistics h4.qti-qtype1{background:url(../img/scItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype2{background:url(../img/mcItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype3{background:url(../img/fibItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype4{background:url(../img/essayItem.png) no-repeat}div.o_qti_statistics h4.qti-qtype5{background:url(../img/kprimItem.png) no-repeat}#o_qti_run div.b_button_group{text-align:left}#o_qti_run_title{text-align:right}#o_qti_run_title strong{float:left;display:inline}#o_qti_run.o_qti_survey #o_qti_run_title strong{background:url(../openolat/images/le_resources/survey.png) no-repeat left 50%;padding-left:20px}#o_qti_run.o_qti_test #o_qti_run_title strong{background:url(../openolat/images/le_resources/test.png) no-repeat left 50%;padding-left:20px;padding-top:2px;padding-bottom:2px}#o_qti_scoreinfo{float:left;display:inline;padding:.3em;border:1px solid silver;margin-right:1em}#o_qti_run_score{clear:both;margin:1em 0;padding:0 0 1.5em 0;font-size:90%}#o_qti_run_scoreinfo{float:left;display:inline}#o_qti_run_scoreprogress{float:left;display:inline;margin-left:1em}#o_qti_questioninfo{float:left;display:inline;padding:.3em;border:1px solid silver}#o_qti_run_questioninfo{float:left;display:inline;margin-left:1em}#o_qti_run_questionprogress{float:left;display:inline;margin-left:1em}#o_qti_run_status{clear:both}#o_qti_run_main{clear:both;border-top:1px solid #504D4E;margin:0.5em 0;padding:1em 0}#o_qti_run_menu_inner h4{font-size:100%}#o_qti_run_menu_inner ul{padding:0;margin:0;list-style:none}#o_qti_run_menu_inner li{clear:both;padding:0;margin:0;white-space:normal}#o_qti_run_menu_inner li.o_qti_menu_section{padding:1em 0}#o_qti_run_menu_inner li div.o_qti_menu_item,#o_qti_run_menu li div.o_qti_menu_section{float:left;display:inline;margin-right:10px}#o_qti_results td{padding:0}#b_main.o_editor_qti_correct{background-image:url(../openolat/images/qti/correct_bg.png);background-position:top left}#b_main.o_editor_qti{background-image:url(../openolat/images/edit_bg.png);background-position:top left}#o_qti_hints,#o_qti_solutions{margin:1em 0}#o_qti_hints a{background:url(../openolat/images/light-bulb.png) no-repeat left 50%;cursor:help;padding-left:20px}#o_qti_solutions a{background:url(../openolat/images/magnifier-zoom.png) no-repeat left 50%;cursor:help;padding-left:20px}.qti_response_level_feedback_label{margin-top:1em;font-style:italic}.qti_edit_layout{position:relative;padding-right:30px;margin-bottom:0.6em}.qti_edit_layout .edit_link{position:absolute;top:10px;right:0px}div.o_qti_item{margin-bottom:2em;margin-top:2em;line-height:2em}div.o_qti_item input.b_radio,div.o_qti_item input.b_checkbox{margin-left:1em}div.o_qti_item textarea{width:99%}img.o_qti_item_matimage{vertical-align:middle}div.o_qti_item_choice{display:table;margin:1em 0}div.o_qti_item_choice_option{display:table;padding:.5em;border:1px solid transparent}div.o_qti_item_choice_option_flow{display:table-cell;padding:.5em;border:1px solid transparent}div.o_qti_item_choice_option:hover{border:1px solid silver}div.o_qti_item_choice_option_flow:hover{border:1px solid silver}div.o_qti_item_choice_option_input{display:table-cell;vertical-align:middle;padding-right:.5em}div.o_qti_item_choice_option_input input{vertical-align:middle}div.o_qti_item_choice_option_value{display:table-cell}div.o_qti_item_choice_option_autoenum{display:table-cell;line-height:1.5em;width:1em;overflow:hidden;vertical-align:middle;color:silver;border:0;padding:0;margin:0}#o_qti_menu a{text-decoration:none}.o_qti_menu_section{padding:.3em;border-top:1px solid #ff6666}.o_qti_menu_section_clickable{padding:.3em;border:1px solid transparent;display:inline-block}.o_qti_menu_section_clickable:hover{padding:.3em;border:1px solid silver;display:inline-block}.o_qti_menu_section_active{padding:.3em;border:1px dashed silver;display:inline-block}.o_qti_menu_item{padding:.3em;border:1px solid transparent;display:inline-block}.o_qti_menu_item_active{padding:.3em;border:1px dashed silver;display:inline-block}.o_qti_menu_item_active:hover{border:1px solid silver}.o_qti_menu_item_inactive{padding:.3em;border:1px solid transparent}.o_qti_menu_item:hover{border:1px solid silver}.o_qti_menu_item_closed{padding:.3em;border:1px solid transparent}.o_qti_menu_item_attempts,.o_qti_menu_item_attempts_marked{color:#666;padding:.2em .4em;border:1px solid transparent;background-position:center right;background-repeat:no-repeat;display:block;width:20px;height:12px}.o_qti_menu_item_attempts{background-image:url(../openolat/images/flag_off.png)}.o_qti_menu_item_attempts:hover,.o_qti_menu_item_attempts_marked:hover{border:1px solid silver;cursor:pointer}.o_qti_menu_item_attempts_marked{background-image:url(../openolat/images/flag.png)}#o_qti_item_note{padding:0;margin:0;border:0;color:#666;font-family:inherit;font-size:1em;background:inherit;overflow:hidden}.o_qti_item_note_box{border:1px dashed silver;padding:.1em;margin:0;padding-left:.5em}div.o_qti_item_note_box_title{color:#666}div.o_qti_item_itemfeedback,div.o_qti_item_assessfeedback,div.o_qti_item_o_qti_item_sectionfeedback{margin:1em 0;background:url(../openolat/images/lightning.png) no-repeat left 50%;padding-left:20px}div.o_qti_item_objectives{margin:1em 0;background:url(../openolat/images/information-white.png) no-repeat left 50%;padding-left:20px;line-height:2em}.o_qti_timelimit_icon{background-image:url(../openolat/images/qti/time.png)}.o_qti_attemptslimit_icon{background-image:url(../openolat/images/qti/tries.png)}.o_qti_closed_icon{background-image:url(../openolat/images/qti/closed.png)}.o_mi_qtialientitem{background-image:url(../openolat/images/docs/document_plain.png)}.o_mi_qtisc{background-image:url(../openolat/images/qti/scItem.png)}.o_mi_qtimc{background-image:url(../openolat/images/qti/mcItem.png)}.o_mi_qtikprim{background-image:url(../openolat/images/qti/kprimItem.png)}.o_mi_qtifib{background-image:url(../openolat/images/qti/fibItem.png)}.o_mi_qtiessay{background-image:url(../openolat/images/qti/essayItem.png)}.o_mi_qtisection{background-image:url(../openolat/images/qti/section.png)}.o_mi_qpool_import{background-image:url(../openolat/images/qti/pool.png)}.o_mi_qpool_export{background-image:url(../openolat/images/qti/pool.png)}.o_mi_docx_export{background-image:url(../openolat/images/docs/document-word.png)}.o_mi_iqtest{background-image:url(../openolat/images/le_resources/test.png)}.o_mi_iqsurv{background-image:url(../openolat/images/le_resources/survey.png)}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}div.b_translation_start div.b_translation_start_body,div.b_translation_edit div.b_translation_edit_body{margin-top:0.5em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_list div.b_translation_list_package{margin-bottom:0.5em;padding:1em 0 0.5em 0;border-bottom:1px solid #ACAAAA}div.b_translation_list div.b_translation_list_package div.b_translation_package_icon{margin-bottom:0.5em;border-bottom:1px solid #ACAAAA}div.b_translation_edit div.b_button_group{text-align:center;margin:1em 0 0 0}div.b_translation_edit div.b_translation_edit_head div.b_progress div.b_progress_bar{float:left;display:inline}div.b_translation_edit div.b_translation_edit_head div.b_progress div.b_progress_label{float:left;display:inline;padding:0 0 0 1em;font-size:90%;font-style:italic}div.b_translation_edit div.b_translation_edit_body textarea{width:99%}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_annotation{margin-top:1em}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_compare{margin-top:1em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_edit div.b_translation_edit_body div.b_translation_edit_target{margin-top:1em;padding-top:0.5em;border-top:1px solid #ACAAAA}div.b_translation_edit div.b_form_element textarea.b_form_element_disabled{color:#000;background:#EEEEEE;border:1px solid #CDCBCB}div.b_translation_edit div.b_translation_edit_annotation h5{font-weight:normal;font-size:100%;font-style:italic}div.b_translation_edit div.b_translation_edit_annotation textarea{font-style:italic}div.b_translation_edit div.b_translation_refKey{background-image:url(../openolat/images/magnifier-zoom.png);vertical-align:middle;background-color:#eee;border:1px solid #ACAAAA;margin-right:1%}div.b_translation_edit div.b_translation_refKey code{line-height:1em;vertical-align:middle}div.b_translation_edit div.b_translation_refKey span{line-height:1em;font-style:italic}div.b_translation_config span.b_translation_status,ul.b_translation_status span.b_translation_status{position:absolute;right:1em}ul.b_translation_status{column-count:2;-moz-column-count:2;list-style:none}ul.b_translation_status li{position:relative}.b_translation_package_icon{background-image:url(../openolat/images/folder_open.png) !important}.b_translation_item_icon{background-image:url(../openolat/images/docs/document-node.png) !important}.b_translation_search_icon{background-image:url(../openolat/images/magnifier-zoom.png) !important}span.b_translation_i18nitem{position:relative !important}span.b_translation_i18nitem a.b_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:16px !important;height:16px !important;top:0 !important;left:5px !important;background:#eeeeee url(../openolat/images/docs/document_metadata_edit.png) no-repeat !important;border:1px solid #6e6e6e !important;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;padding:0 !important}div.b_selectiontree{font-size:95%}div.b_selectiontree div.b_selectiontree_item{clear:both;position:relative;top:0;left:0;vertical-align:middle;height:16px;width:auto}div.b_selectiontree div.b_selectiontree_item div{width:16px;height:16px;float:left;display:inline;background-repeat:no-repeat}div.b_selectiontree div.b_selectiontree_item div.b_selectiontree_content{float:left;display:inline;margin-left:0.5em;width:auto;white-space:nowrap}div.b_selectiontree div.b_selectiontree_content{width:auto}div.b_selectiontree div.b_selectiontree_content div{width:auto}div.b_selectiontree div.b_selectiontree_content input{width:1em;height:1em;padding:0;margin:0 0.5em;vertical-align:middle}div.b_selectiontree div.b_selectiontree_content input.b_radio{margin:0}div.b_selectiontree .b_selectiontree_line{background-image:url(../openolat/images/tree/dots.gif)}div.b_selectiontree .b_selectiontree_space{background-image:url(../openolat/images/tree/dots_spacer.gif)}div.b_selectiontree .b_selectiontree_junction{background-image:url(../openolat/images/tree/dots_nt.gif)}div.b_selectiontree .b_selectiontree_end{background-image:url(../openolat/images/tree/dots_nl.gif)}#b_main.o_editor #b_col3{background-image:url(../openolat/images/edit_bg.png);background-position:top left;background-repeat:repeat}#b_main.o_editor div.b_tabbedpane_wrapper div.b_tabbedpane_content{background:#fff}#b_main_toolbar.o_course_breadcumbs div.b_breadcumb_path ul li.b_first{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}a.b_preview{background-image:url(../openolat/images/docs/document_preview.png);background-repeat:no-repeat;background-position:left;padding:2px 0 2px 20px}fieldset a.b_preview,div.b_tabbedpane_wrapper a.b_preview{position:absolute}div.b_module_singlepage_wrapper a.b_content_edit{position:absolute;top:0;right:20px;display:inline;background:url(../openolat/images/docs/document--pencil.png) no-repeat top left;width:16px;height:16px;margin:3px}div.b_module_singlepage_wrapper a.b_content_download{position:absolute;top:0;z-index:10;background:url(../openolat/images/docs/document_download.png) no-repeat top left;padding-left:20px;margin-top:3px;min-height:19px;height:19px}div.b_titled_wrapper div.b_module_singlepage_wrapper a.b_content_download{position:relative;padding-bottom:3px}div.b_titled_wrapper div.b_module_singlepage_wrapper div.b_iframe_wrapper{margin-top:3px}div.b_lti_edit_wrapper div.o_buttons_box_right{z-index:10;top:13px;right:20px}#b_content_popup{float:right;background:url(../openolat/images/applications.png) no-repeat top left;width:16px;height:16px;margin:3px}#o_course_editor_errorbox{font-size:90%;padding:3px 2px 2px 25px;margin:0 0 1em 0}div.o_courseeditor_legend{margin-top:3em}div.o_courseeditor_legend strong{font-weight:bold}div.o_courseeditor_legend div{top:0;left:0;padding-left:12px;background-repeat:no-repeat;background-position:0 50%}div.o_buttons_box_right{position:absolute;top:0;right:0}fieldset div.o_buttons_box_right{top:1em}div.b_box_with_chelp div.o_buttons_box_right{right:20px}div.o_course_run div.o_course_run_displaytitle{font-style:italic}div.o_course_run div.o_course_run_objectives{background-color:#E9EAEF;padding:5px 5px 5px 25px;margin:0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_scoreinfo{background:#e9eaef url(../openolat/images/seal.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_disclaimer{background:#e9eaef url(../openolat/images/information-white.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_groupinfo{background:#e9eaef url(../openolat/images/users.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_statusinfo{background:url(../openolat/images/bullet_go.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_returnbox{background:#e9eaef url(../openolat/images/box_return.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_dropbox{background:#e9eaef url(../openolat/images/box_drop.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_solutionbox{background:#e9eaef url(../openolat/images/box_solution.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_task{background:#e9eaef url(../openolat/images/assign.png) no-repeat 5px 5px;padding:5px 5px 5px 25px;margin:1.5em 0;border:1px solid #C5C4C4;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run div.o_course_run_disclaimer h4,div.o_course_run div.o_course_run_objectives h4,div.o_course_run div.o_course_run_scoreinfo h4,div.o_course_run div.o_course_run_returnbox h4,div.o_course_run div.o_course_run_dropbox h4,div.o_course_run div.o_course_run_solutionbox h4,div.o_course_run div.o_course_run_task h4,div.o_course_run div.o_course_run_log h4{font-size:100%;margin:0 0 1em 0}div.o_course_run div.o_course_run_scoreinfo_noinfo{font-style:italic;font-weight:bold}div.o_course_run div.o_course_run_toc{margin:1em 0 0 0}div.o_course_run div.o_course_run_toc div.o_course_run_toc_entry{margin:0 0 1em 0;padding:1em 20px 0 0}div.o_course_run div.o_course_run_toc div.o_course_run_shorttitle{border-bottom:1px solid #ACAAAA}div.o_course_run div.o_course_run_toc div.o_course_run_displaytitle{margin-top:0.5em;color:#aaaaaa}div.o_course_run div.o_course_run_toc div.o_course_run_objectives{margin:1em 0 1em 0;border:0;background:none}div.o_course_run div.o_course_run_toc div.o_course_run_toc_entry{background:#FBFBFB;padding:5px;border:1px solid #eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_course_run #b_content_popup{position:absolute;top:0;right:0}div.o_sp_peekview{margin:1em 0 1em 0}div.o_sp_peekview ul{list-style:none}div.o_sp_peekview li{margin-top:0.5em}div.o_peekview_author{padding:3px 0 5px 0;font-style:italic;color:#aaaaaa;font-size:90%}#b_preview_wrapper{clear:both;padding:10px;background:#fff;border-bottom:1px solid #ff6666}#b_main.b_preview{moz-box-shadow:0 0 0 white;-ms-box-shadow:0 0 0 white;-o-box-shadow:0 0 0 white;-webkit-box-shadow:0 0 0 white;box-shadow:0 0 0 white;background:white url(../openolat/images/prevbg.png) repeat}body.b_full_screen{background-color:white;background-image:none}body.b_full_screen #b_page_margins{display:none}body.b_full_screen div.b_modal_area{margin:2%;width:96%}body.b_full_screen div#b_preview_wrapper{margin:0;border:0;padding:0;background:#5e5e5e;background:-moz-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5e5e5e), color-stop(50%, #444444), color-stop(51%, #222222), color-stop(100%, #3c3c3c));background:-webkit-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-o-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:-ms-linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%);background:linear-gradient(top, #5e5e5e 0%, #444444 50%, #222222 51%, #3c3c3c 100%)}body.b_full_screen div#b_preview_wrapper div.b_preview_link{border:none}body.b_full_screen div#b_preview_wrapper div.b_preview_link a.b_link_back{margin:0.5em}body.b_full_screen div#b_preview_wrapper div.b_preview_link div.b_preview_wrapper_loading{background:transparent url(../openolat/images/ajax-loader.gif) no-repeat top left}div#b_preview_wrapper div#b_preview_wrapper_message{float:right;padding-left:16px;width:100px}div.o_scorm a.b_link_close{padding-right:20px}div.o_scorm div.o_scorm_navigation{float:right;display:inline;padding:3px;background:#fefefe;background:-moz-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fefefe), color-stop(50%, #e3e3e3), color-stop(51%, #cfcfcf), color-stop(100%, #f3f3f3));background:-webkit-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-o-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:-ms-linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);background:linear-gradient(top, #fefefe 0%, #e3e3e3 50%, #cfcfcf 51%, #f3f3f3 100%);border:1px solid #504D4E;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;margin:0.2em}div.o_scorm div.o_scorm_navigation a{margin:0 2px}div.o_scorm div.o_scorm_navigation a.o_scorm_previous_icon{background-image:url(../openolat/images/arrow_left_big.png)}div.o_scorm div.o_scorm_navigation a.o_scorm_next_icon{background-image:url(../openolat/images/arrow_right_big.png)}div.o_scorm div.o_scorm_navigation a.hover{background-color:none}.o_scorm_completed,.o_scorm_passed{top:6px;left:6px;background-image:url("../openolat/images/decorator/deco_ok.png")}.o_scorm_failed{top:6px;left:6px !important;background-image:url("../openolat/images/decorator/deco_error.png")}.o_scorm_incomplete{top:6px;left:6px;background-image:url("../openolat/images/decorator/deco_warn.png")}.o_scorm_not_attempted{top:6px;left:6px;background-image:none}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#ffcccc}.d3chart .bar_default_light:hover{fill:#ff6666}.d3chart .bar_default{fill:#ff6666}.d3chart .bar_default:hover{fill:red}.d3chart .bar_default_dark{fill:red}.d3chart .bar_default_dark:hover{fill:black}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.d3chart .x.axis path{display:none}div.o_members_search{padding-top:10px;padding-left:10px}div.filters{text-align:center;padding-top:1.5em}div.o_members_search div.searchitem{margin-bottom:0.5em}div.searchitem select,div.searchitem input{width:250px}.o_members_register{margin-bottom:5px}.o_members_register_active{font-weight:bold;font-size:120%}div.o_members_paging{width:100%;padding-bottom:1em;padding-top:0.5em;text-align:center}div.o_members_paging div{padding-left:1em;padding-right:1em;display:inline}div.o_bcard{background-color:#eee;margin-top:10px;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-o-border-radius:6px}div.o_bcard_header,div.o_members_header{padding:6px;border-bottom:1px solid #fff}div.o_bcard_portrait{float:left;display:inline;width:100px;height:100px;margin:10px}div.o_bcard_portrait img{border:1px #d3d3d3 solid}div.o_bcard_portrait_group{background-image:url(../openolat/images/group_100x100.png);border:1px #d3d3d3 solid}div.o_bcard_text{margin-left:120px;margin-top:10px;line-height:150%}div.o_bcard_footer{text-align:right;clear:both;font-size:95%;color:#1f49b3;padding:5px}div.o_visitingcard h4{background:url("../openolat/images/card-address.png") 0 50% no-repeat;padding-left:20px;margin-bottom:1em}div.o_visitingcard table th{width:20%}.popup_iframe{width:100%;height:100%;border:none;min-height:60em}div.o_reservation{position:relative;margin-top:2em;padding:1em;background:#F7F7F7;border:1px solid #eee;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.o_reservation span.o_reservation_name{font-weight:bold;line-height:2em}div.o_reservation span.o_reservation_role_coach{margin-left:1em}div.o_reservation span.o_reservation_accepted{margin-left:2em;background:transparent url(../openolat/images/tick.png) 0 50% no-repeat;color:#009900;padding-left:20px;font-style:italic;line-height:2em}div.o_reservation span.o_reservation_refused{margin-left:2em;background:transparent url(../openolat/images/cross.png) 0 50% no-repeat;color:#990000;padding-left:20px;font-style:italic;line-height:2em}div.o_reservation a.o_reservation_details_link{padding:0 1em}div.o_reservation div.o_reservation_details{padding:1em 0 0 0}div.o_reservation ul{list-style:none;padding:0;margin:0}div.o_reservation ul li{background-repeat:no-repeat;padding:0;margin:0}div.o_infomsgs{padding-top:5px}div.o_infomsgs div.b_datecomp{top:2px;float:left;display:inline}div.o_infomsgs div.o_infomsg{margin-bottom:1em;padding:10px 0 0 0}div.o_infomsgs .b_year{display:none}div.o_infomsgs .o_item_info{color:#7D7D7D;font-size:90%}div.o_infomsgs .o_item_info .o_item_info_mod{color:#98221F}div.b_table_wrapper td a.o_peekview_infomsg_link{display:inline}div.o_infomsgs_config{padding-bottom:5px}div.o_infomsgs_config div{display:inline}.o_infomsg_icon{background-image:url(../openolat/images/information-button.png)}.o_infomsg_create_button{position:absolute;top:0;right:250px}.b_mail_icon{background-image:url(../openolat/images/mail.png)}div.b_mail_message div.b_form_element_wrapper:first-child div.b_form_element{font-weight:bold}.b_mail_new{width:20px !important;background-image:url(../openolat/images/new-text.png)}.b_table_wrapper span.b_mail_unread{display:block;display:inline-block;width:16px;height:16px;background:transparent url(../openolat/images/bullet_black.png) top left no-repeat}.b_table_wrapper span.b_mail_read{display:block;display:inline-block;width:16px;height:16px}.b_table_wrapper span.b_mail_marked{display:block;display:inline-block;width:16px;height:16px;background:transparent url(../openolat/images/flag.png) top left no-repeat}.b_table_wrapper span.b_mail_unmarked{display:block;display:inline-block;width:16px;height:16px}.b_table_wrapper .b_marked{font-weight:bold}ul.b_mail_attachments{list-style:none;margin:0;padding:0}ul.b_mail_attachments li{margin:0}div.o_cmembers div.b_clearfix{margin-bottom:1.5em}div.o_cmembers div.o_cmember{float:left;position:relative;width:30%;height:30px;overflow:hidden;margin:5px 5px 5px 0;padding:8px;border:1px solid #ddd;background:#f6f6f6;background:-moz-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f6f6f6), color-stop(100%, #ebebeb));background:-webkit-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-o-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:-ms-linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);background:linear-gradient(top, #f6f6f6 0%, #ebebeb 100%);border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;moz-box-shadow:0 1px 2px #d3d3d3;-ms-box-shadow:0 1px 2px #d3d3d3;-o-box-shadow:0 1px 2px #d3d3d3;-webkit-box-shadow:0 1px 2px #d3d3d3;box-shadow:0 1px 2px #d3d3d3}div.o_cmembers div.o_cmember div.o_cmember_portrait_wrapper{position:absolute}div.o_cmembers div.o_cmember div.o_cmember_portrait_wrapper div.o_cmember_portrait{top:3px;left:3px;border:1px solid #bbb;width:30px;height:30px;background-color:#fff;background-repeat:no-repeat;background-position:50% 50%}div.o_cmembers div.o_cmember div.o_cmember_info_wrapper{padding-left:35px;line-height:30px;vertical-align:middle}div.o_cmembers a.o_cmembers_mail{float:none;margin-left:5px;padding-left:20px;background-image:url(../openolat/images/mail.png)}div.o_cmembers a.o_cmembers_mail span{display:none}div.o_cmembers h4{padding:7px 0 0 0;clear:both}div.o_ll_container ul li{list-style:circle;margin:1em}div.o_ll_container ul li div{font-style:italic}a.o_ll_browse span{display:block;width:20px;height:18px;background:url(../openolat/images/library.png) top left no-repeat;margin-left:1px}div.b_contexthelp_wrapper{position:relative}a.b_contexthelp{display:block;width:16px;height:16px;background:url(../openolat/images/help.png) no-repeat;line-height:0;cursor:help}div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:0;right:0}fieldset a.b_contexthelp,fieldset div.b_contexthelp_wrapper a.b_contexthelp{position:absolute;top:-1.5em;right:-0.8em}#b_contexthelp_content{padding:0}#b_ch_topnav_search div.b_form_element_wrapper.b_form_horizontal{margin:2px 0 0 0}#b_contexthelp_rating{text-align:center;margin-top:20px;padding:10px;border-top:1px #ACAAAA solid}#b_contexthelp_rating h4{font-size:90%;margin:0;font-style:italic}#b_contexthelp_rating table{display:inline-block}#b_contexthelp_rating table td{width:50%}.b_contexthelp_icon{background-image:url(../openolat/images/help.png)}div.b_ratings_and_comments{margin:4em 0 1.5em 0;padding-bottom:0.5em;border-bottom:1px solid #eee;font-size:0.9em;position:relative}div.b_ratings_and_comments div.b_rating_wrapper{position:absolute;right:0;bottom:0;width:150px;height:4em}div.b_ratings_and_comments div.b_rating{background:none;border:none;padding:0;margin:0;position:absolute;left:0;bottom:2px;width:100%}div.b_ratings_and_comments div.b_rating_personal{background:#fff;z-index:5}div.b_ratings_and_comments a.b_comments,div.b_eportfolio_map a.b_comments{background:url(../openolat/images/comment.png) 3px 50% no-repeat;padding:3px 0 1px 23px;vertical-align:middle;min-height:18px}div.b_comments{font-size:0.9em}div.b_comments div.b_comment_wrapper{border:1px solid #eee;padding:10px 10px 5px 10px;margin-bottom:2em;background:#fbfbfb;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_comments div.b_comment_wrapper div.b_avatar img{border:1px solid #aaa}div.b_comments div.b_comment_wrapper h5{font-size:1em;background:url(../openolat/images/user.png) 0 50% no-repeat;padding:1px 0 1px 20px;vertical-align:middle;min-height:16px}div.b_comments div.b_comment_wrapper span.b_date{color:#aaaaaa;font-weight:normal;display:block;margin-top:5px}div.b_comments div.b_comment_wrapper div.b_comment_wrapper{margin-left:7px;background:#fff}div.b_comments div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper{background:#fbfbfb}div.b_comments div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper div.b_comment_wrapper{background:#fff}div.b_comments blockquote.b_comment{padding:3px 0 0 0px;margin:0}div.b_comments div.b_form{padding:10px;border:1px solid #eee;margin:2em 0 2em 0;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_comments div.b_form h5{font-size:1em;margin-bottom:0.5em}div.b_comments div.b_form div.b_button_group{text-align:center}.b_comment_icon{background-image:url(../openolat/images/comment.png)}#b_comment_form_link{font-size:0.9em;position:relative;top:-15px;left:23px}div.b_rating{margin:10px;padding:5px;font-size:80%;white-space:nowrap;text-align:left;background:#EEE;border:1px solid #ACAAAA;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}div.b_rating div.b_rating_title{font-weight:bold}div.b_rating div.b_rating_items{vertical-align:middle;line-height:18px}div.b_rating div.b_rating_items a{float:left;display:inline;width:16px;height:16px;background-repeat:no-repeat;background-position:0 0;margin:1px 4px 1px 0}div.b_rating div.b_rating_items a.b_rating_item_on{background-image:url(../openolat/images/star.png)}div.b_rating div.b_rating_items a.b_rating_item_off{background-image:url(../openolat/images/star_grey.png)}div.b_rating div.b_rating_items a:hover{cursor:default}div.b_rating div.b_rating_items.b_enabled a:hover{cursor:pointer}div.b_rating div.b_rating_items.b_enabled a.b_rating_item_off:hover{background-image:url(../openolat/images/star.png)}div.b_rating div.b_rating_explanation{clear:both;font-size:90%}div.b_datecomp{width:2.5em;height:3em;position:relative;margin-right:5px;font-weight:normal;color:white;text-align:center;vertical-align:middle;border:1px solid #000;font-size:85%}div.b_datecomp div{width:100%;position:absolute;left:0}div.b_datecomp div.b_year{height:1em;top:-1.5em;font-size:80%;font-weight:normal;color:#000}div.b_datecomp div.b_month{background:#BE5B5D;height:40%;top:0;font-size:80%;font-weight:normal;color:white}div.b_datecomp div.b_day{background:#fff;height:60%;bottom:0;font-size:120%;font-weight:bold;color:#000;border-top:1px solid #000;border-bottom:1px solid #aaaaaa}.b_content_download{background:url("../openolat/images/drive-download.png") no-repeat top left;padding-left:20px;margin:3px;display:block;min-height:16px}ul.o_sel_repository_owners{list-style:none;margin:0;padding:0;white-space:nowrap}ul.o_sel_repository_owners li{margin:0}div.fx_portal_admin{margin-top:10px}div.fx_portlets_column{width:30%;float:left;margin-right:10px}div.fx_portlets_column div.b_portlet{min-height:1em}div.fx_portlets_column_name{padding:5px 5px 0px 5px}div.fx_portlets_column_name span{color:#4F576A;font-weight:bold;text-deocration:underline}ul.fx_portlets_column_portlets{border:1px solid #eee;padding:0;margin:0;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%)}ul.fx_portlets_column_portlets li{margin-left:0}div.fx_available_portlets{width:28%;float:right}div.fx_available_portlets div.b_portlet{min-height:1em}div.fx_portlets_admin_column{min-height:12em}div.fx_site_admin_column{float:left}div.fx_site_admin_column div.fx_site_definition{min-height:1em}div.o_notifications_news_datechooser{border-bottom:1px solid #bbb;padding:1em 0 1em 0}div.o_notifications_news_datechooser label{padding-right:1em}div.o_notifications_news_subscription{margin:1.5em 0 2em 0}div.o_notifications_news_subscription h4{font-size:110%}div.o_notifications_news_subscription h4.o_returnbox_icon{background-image:url(../openolat/images/box_return.png) !important}div.o_notifications_news_context{color:#7D7D7D;font-size:90%}div.o_notifications_news_content{margin:0.5em 0 0.5em 0}div.o_notifications_news_content ul{list-style-type:none;margin:0}#o_search_form{margin:5px;position:relative}#o_search_form_toggler{background-image:url(../openolat/images/magnifier-zoom.png);cursor:pointer}#o_search_form_content div.b_form div.b_form_element_wrapper div.b_form_element_wrapper{margin:0.5em 0}#o_search_form div.b_contexthelp_wrapper a.b_contexthelp{right:0}#o_search_results{border-top:1px solid #eee;margin:5px}#o_search_results_header{line-height:16px;vertical-align:middle;background:url(../openolat/images/magnifier-zoom.png) no-repeat center left #f8f8f8;padding:2px 2px 2px 20px;margin-bottom:5px}#o_search_results_header div.o_search_results_stats{float:right;display:inline;font-size:90%}#o_search_results_header span.o_search_highlight{padding-left:2em}#o_search_results_header.o_search_did_you_mean,#o_search_results_header.o_search_no_results{background-image:url(../openolat/images/exclamation.png);color:#990000}#o_search_results_header.o_search_did_you_mean span.o_search_did_you_mean_words{color:#000;font-weight:bold}#o_search_results_header #o_search_pageing{padding-left:2em;display:inline}#o_search_pageing_bottom{text-align:center;background:#F8F8F8;border-bottom:1px solid #eee;padding:3px}#o_search_results_toomany{background:url(../openolat/images/exclamation.png) no-repeat center left #f8f8f8;color:#990000;padding:5px 0 3px 20px;position:relative;top:-5px;margin-bottom:5px}div.o_search_result{margin:0 0 1em 0;padding:1em 0 0 0}div.o_search_result_title a{font-weight:bold}div.o_search_result_title a.o_search_result_details_link{margin-left:1em;font-weight:normal;font-size:90%;vertical-align:bottom}div.o_search_result_excerpt{padding:2px 0 1px 0;font-size:95%;max-width:60em}div.o_search_result_excerpt span.o_search_result_highlight{font-weight:bold;background-color:#FFFF80}div.o_search_result_context,div.o_search_result_author,div.o_search_result_lastmod,div.o_search_result_type,div.o_search_result_desc{padding:1px 0;font-size:90%;color:#667}a.o_fulltext_search_button{background:url(../openolat/images/magnifier-zoom.png) top left no-repeat}div.error-box{width:400px;margin:30px auto;padding:20px;border:2px solid red;border-radius:6px;background:white;moz-box-shadow:0 2px 4px #cccccc;-ms-box-shadow:0 2px 4px #cccccc;-o-box-shadow:0 2px 4px #cccccc;-webkit-box-shadow:0 2px 4px #cccccc;box-shadow:0 2px 4px #cccccc;border-radius:6px;-webkit-border-radius:6px;-moz-border-radius:6px;-o-border-radius:6px}div.error-box h1{background-image:url(../openolat/images/icon_warning_32.png);background-repeat:no-repeat;padding-left:30px;font-size:14pt;font-weight:bold}.b_tag_list{background:url(../openolat/images/tag-label-yellow.png) 0px 3px no-repeat !important}.b_tag_icon{background-image:url(../openolat/images/tag-label-yellow.png)}div.b_tags{margin:2em 0}div.b_tags div{padding:0.5em 0 0 20px}div.b_tags span.b_tag{font-size:80%;padding:5px 2px 5px 2px;line-height:3em;white-space:nowrap}*:first-child + html div.holder{padding-bottom:2px}* html div.holder{padding-bottom:2px}.textbox-outer{list-style-type:none;margin-left:0em}a.bit-box,span.b_tag{-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border:1px solid #CAD8F3;background:#DEE7F8;padding:1px 5px 2px;padding-right:15px;position:relative}div.holder{font-size:80%;min-width:200px;width:auto;margin:0;overflow:hidden;height:auto !important;height:1%;padding:0px 0px 0;cursor:text}div.holder a{float:left;margin:0 5px 4px 0}div.holder a.bit{text-decoration:none;color:black}div.holder a.bit:active,div.holder a.bit:focus{outline:none}div.holder a.bit-box-focus{border-color:#598BEC;background:#598BEC;color:#fff}div.holder a.bit-input .maininput{border:1px solid #eeeeee}div.holder a.bit-input input{width:100px;margin:0;border:none;background:white;outline:0;padding:3px 0 2px}div.holder a.bit-input input.smallinput{width:20px}div.holder a.bit-hover{background:#BBCEF1;border:1px solid #6D95E0}div.holder a.bit-box-focus{background:#598BEC;color:#fff}div.holder a.bit-box a.closebutton{position:absolute;right:0;top:5px;display:block;width:7px;height:7px;font-size:1px;background:url("../openolat/images/tag_x.gif")}div.holder a.bit-box a.closebutton:hover{background-position:7px}div.holder a.bit-box a.closebutton:active{outline:none}div.holder a.bit-box-focus a.closebutton,div.holder a.bit-box-focus a.closebutton:hover{background-position:bottom}ol.textbox-outer{margin:0;padding:0}.textboxlist-auto{position:absolute;width:300px;overflow:visible;display:none;background:#eee;z-index:2}.textboxlist-auto .default{padding:5px 7px;border:1px solid #ccc;border-width:0 1px 1px}.textboxlist-auto ul{display:none;margin:0;padding:0;overflow:auto}.textboxlist-auto ul li{padding:5px 12px;z-index:1000;cursor:pointer;margin:0;list-style-type:none;border:1px solid #ccc;border-width:0 1px 1px}.textboxlist-auto ul li.loading-indicator{padding-left:30px;background-position:5px center;cursor:defat;font-size:100.01% !important;line-height:1.5em}.textboxlist-auto ul li.more-indicator{cursor:defat;font-style:italic}.textboxlist-auto ul li em{font-weight:bold;font-style:normal;background:#ccc}.textboxlist-auto ul li.auto-focus{background:#4173CC;color:#fff}.textboxlist-auto ul li.auto-focus em{background:none}input.inputMessage{color:#AAA;font-size:11px}.b_wizard .textbox-outer{background:url(../openolat/images/tag-label-yellow.png) top left no-repeat}.b_wizard .textbox-outer li{margin-left:18px}.b_wizard .textboxlist-auto ul li{margin-left:0}.b_wizard div.holder a.bit-input input{background:#f8f8f8;padding:0.4em}.clgen_font_arial{font-family:arial,helvetica}.clgen_font_arial_black{font-family:arial black,avant garde}.clgen_font_comic{font-family:comic sans ms,sans-serif}.clgen_font_courier{font-family:courier new,courier}.clgen_font_georgia{font-family:georgia,serif}.clgen_font_impact{font-family:impact,chicago}.clgen_font_lucida{font-family:lucida console,monaco,monospace}.clgen_font_palatino{font-family:palatino linotype,book antiqua,palatino,serif}.clgen_font_times{font-family:times new roman,times}.clgen_font_verdana{font-family:verdana,geneva,sans-serif}.clgen_font_xxlarge{font-size:130%}.clgen_font_xxsmall{font-size:70%}option.Black{background-color:Black}option.Navy{background-color:Navy}option.DarkBlue{background-color:DarkBlue}option.MediumBlue{background-color:MediumBlue}option.Blue{background-color:Blue}option.DarkGreen{background-color:DarkGreen}option.Green{background-color:Green}option.Teal{background-color:Teal}option.DarkCyan{background-color:DarkCyan}option.DeepSkyBlue{background-color:DeepSkyBlue}option.DarkTurquoise{background-color:DarkTurquoise}option.MediumSpringGreen{background-color:MediumSpringGreen}option.Lime{background-color:Lime}option.SpringGreen{background-color:SpringGreen}option.Aqua{background-color:Aqua}option.Cyan{background-color:Cyan}option.MidnightBlue{background-color:MidnightBlue}option.DodgerBlue{background-color:DodgerBlue}option.LightSeaGreen{background-color:LightSeaGreen}option.ForestGreen{background-color:ForestGreen}option.SeaGreen{background-color:SeaGreen}option.DarkSlateGray{background-color:DarkSlateGray}option.DarkSlateGrey{background-color:DarkSlateGrey}option.LimeGreen{background-color:LimeGreen}option.MediumSeaGreen{background-color:MediumSeaGreen}option.Turquoise{background-color:Turquoise}option.RoyalBlue{background-color:RoyalBlue}option.SteelBlue{background-color:SteelBlue}option.DarkSlateBlue{background-color:DarkSlateBlue}option.MediumTurquoise{background-color:MediumTurquoise}option.Indigo{background-color:Indigo}option.DarkOliveGreen{background-color:DarkOliveGreen}option.CadetBlue{background-color:CadetBlue}option.CornflowerBlue{background-color:CornflowerBlue}option.MediumAquaMarine{background-color:MediumAquaMarine}option.DimGray{background-color:DimGray}option.DimGrey{background-color:DimGrey}option.SlateBlue{background-color:SlateBlue}option.OliveDrab{background-color:OliveDrab}option.SlateGray{background-color:SlateGray}option.SlateGrey{background-color:SlateGrey}option.LightSlateGray{background-color:LightSlateGray}option.LightSlateGrey{background-color:LightSlateGrey}option.MediumSlateBlue{background-color:MediumSlateBlue}option.LawnGreen{background-color:LawnGreen}option.Chartreuse{background-color:Chartreuse}option.Aquamarine{background-color:Aquamarine}option.Maroon{background-color:Maroon}option.Purple{background-color:Purple}option.Olive{background-color:Olive}option.Gray{background-color:Gray}option.Grey{background-color:Grey}option.SkyBlue{background-color:SkyBlue}option.LightSkyBlue{background-color:LightSkyBlue}option.BlueViolet{background-color:BlueViolet}option.DarkRed{background-color:DarkRed}option.DarkMagenta{background-color:DarkMagenta}option.SaddleBrown{background-color:SaddleBrown}option.DarkSeaGreen{background-color:DarkSeaGreen}option.LightGreen{background-color:LightGreen}option.MediumPurple{background-color:MediumPurple}option.DarkViolet{background-color:DarkViolet}option.PaleGreen{background-color:PaleGreen}option.DarkOrchid{background-color:DarkOrchid}option.YellowGreen{background-color:YellowGreen}option.Sienna{background-color:Sienna}option.Brown{background-color:Brown}option.DarkGray{background-color:DarkGray}option.DarkGrey{background-color:DarkGrey}option.LightBlue{background-color:LightBlue}option.GreenYellow{background-color:GreenYellow}option.PaleTurquoise{background-color:PaleTurquoise}option.LightSteelBlue{background-color:LightSteelBlue}option.PowderBlue{background-color:PowderBlue}option.FireBrick{background-color:FireBrick}option.DarkGoldenRod{background-color:DarkGoldenRod}option.MediumOrchid{background-color:MediumOrchid}option.RosyBrown{background-color:RosyBrown}option.DarkKhaki{background-color:DarkKhaki}option.Silver{background-color:Silver}option.MediumVioletRed{background-color:MediumVioletRed}option.IndianRed{background-color:IndianRed}option.Peru{background-color:Peru}option.Chocolate{background-color:Chocolate}option.Tan{background-color:Tan}option.LightGray{background-color:LightGray}option.LightGrey{background-color:LightGrey}option.PaleVioletRed{background-color:PaleVioletRed}option.Thistle{background-color:Thistle}option.Orchid{background-color:Orchid}option.GoldenRod{background-color:GoldenRod}option.Crimson{background-color:Crimson}option.Gainsboro{background-color:Gainsboro}option.Plum{background-color:Plum}option.BurlyWood{background-color:BurlyWood}option.LightCyan{background-color:LightCyan}option.Lavender{background-color:Lavender}option.DarkSalmon{background-color:DarkSalmon}option.Violet{background-color:Violet}option.PaleGoldenRod{background-color:PaleGoldenRod}option.LightCoral{background-color:LightCoral}option.Khaki{background-color:Khaki}option.AliceBlue{background-color:AliceBlue}option.HoneyDew{background-color:HoneyDew}option.Azure{background-color:Azure}option.SandyBrown{background-color:SandyBrown}option.Wheat{background-color:Wheat}option.Beige{background-color:Beige}option.WhiteSmoke{background-color:WhiteSmoke}option.MintCream{background-color:MintCream}option.GhostWhite{background-color:GhostWhite}option.Salmon{background-color:Salmon}option.AntiqueWhite{background-color:AntiqueWhite}option.Linen{background-color:Linen}option.LightGoldenRodYellow{background-color:LightGoldenRodYellow}option.OldLace{background-color:OldLace}option.Red{background-color:Red}option.Fuchsia{background-color:Fuchsia}option.Magenta{background-color:Magenta}option.DeepPink{background-color:DeepPink}option.OrangeRed{background-color:OrangeRed}option.Tomato{background-color:Tomato}option.HotPink{background-color:HotPink}option.Coral{background-color:Coral}option.Darkorange{background-color:Darkorange}option.LightSalmon{background-color:LightSalmon}option.Orange{background-color:Orange}option.LightPink{background-color:LightPink}option.Pink{background-color:Pink}option.Gold{background-color:Gold}option.PeachPuff{background-color:PeachPuff}option.NavajoWhite{background-color:NavajoWhite}option.Moccasin{background-color:Moccasin}option.Bisque{background-color:Bisque}option.MistyRose{background-color:MistyRose}option.BlanchedAlmond{background-color:BlanchedAlmond}option.PapayaWhip{background-color:PapayaWhip}option.LavenderBlush{background-color:LavenderBlush}option.SeaShell{background-color:SeaShell}option.Cornsilk{background-color:Cornsilk}option.LemonChiffon{background-color:LemonChiffon}option.FloralWhite{background-color:FloralWhite}option.Snow{background-color:Snow}option.Yellow{background-color:Yellow}option.LightYellow{background-color:LightYellow}option.Ivory{background-color:Ivory}option.White{background-color:White}@media all{.fc-button-print span{background:url(../openolat/images/printer.png) no-repeat right 50%;padding:0 20px 0 0}#o_cal_manage_calendars{float:right;margin-right:10px;margin-top:5px}#o_cal_config_below_cal_container{padding:6px;position:relative;overflow:hidden}#o_cal_config_below_cal_container div.b_contexthelp_wrapper a.b_contexthelp{top:0;right:0}.o_cal_embedded_course_container{padding-top:6px}.o_cal_embedded_course_container #b_content_popup{position:absolute;top:0;right:0}.o_course_run_peekview .o_cal_peekview ul li{list-style:none}#o_cal_wv_actions{vertical-align:middle;line-height:16px;padding-right:30px;float:right;display:inline;position:relative}#o_cal_wv_nav{text-align:left;vertical-align:middle;line-height:16px;float:left;display:inline;position:absolute;top:5px;left:5px}.o_cal_wv_prev,.o_cal_wv_next{margin-left:0 !important;margin-right:0 !important}.o_cal_wv_prev span{width:20px;height:20px;float:left;background:transparent url(arrow_left_big.png) no-repeat center center}.o_cal_wv_next span{width:20px;height:20px;float:left;background:transparent url(arrow_right_big.png) no-repeat center center}#o_cal_wv{padding:0 0px 5px 0px;position:relative;width:auto}#o_cal_wv_header_wrapper{padding-top:10px;position:relative;clear:both}#o_cal_wv_header{border:1px solid #888;position:relative;height:20px;margin-bottom:2px;background:#FFF}.o_cal_wv_grid_wrapper{position:relative;border:1px solid #888;background:#FFF;padding-bottom:1px}.o_cal_wv_grid{position:relative;width:auto;height:600px;overflow:scroll !important;overflow-x:hidden !important}#o_cal_wv_daylong{border:1px solid #888;position:relative;width:auto;overflow:visible;margin-bottom:2px;background:#FFF}.o_cal_wv_dlday{border-left:1px solid #888;position:absolute;width:13%;background:#FFF}.o_cal_wv_time{position:absolute;width:9%}.o_cal_wv_legend_hours{margin:0;padding:0;height:20px;text-align:center;color:#888}.o_cal_wv_legend_hour{border-bottom:1px solid #DDD;margin:0;padding:0;height:39px}.o_cal_wv_legend_hour div{padding:3px 3px 0 3px;text-align:center;color:#444;overflow:hidden;height:16px}.o_cal_wv_day{border-left:1px solid #888;position:absolute;width:13%;border-collapse:collapse;background:#FFF}.o_cal_wv_legend_day{margin:0;padding:0;height:20px}.o_cal_wv_legend_day div{padding:3px 3px 0px 3px;height:15px;overflow:hidden;text-align:center;color:#888}.o_cal_wv_hour{border-bottom:1px dotted #DDD;margin:0;padding:0;height:19px}.o_cal_wv_half_hour{border-bottom:1px solid #DDD;margin:0;padding:0;height:19px}.o_cal_wv_half_hour:hover{background:#DCDDE0}.o_cal_wv_hour:hover{background:#DCDDE0}.o_cal_wv_row0{left:0}.o_cal_wv_row1{left:9%}.o_cal_wv_row2{left:22%}.o_cal_wv_row3{left:35%}.o_cal_wv_row4{left:48%}.o_cal_wv_row5{left:61%}.o_cal_wv_row6{left:74%}.o_cal_wv_row7{left:87%}.o_cal_wv_holiday{background:#eee}.o_cal_wv_today{background:#fff5cc}.o_cal_wv_lastday{border-right:1px solid #888}.o_cal_wv_lasthour{border-bottom:0}.o_cal_wv_event_wrapper{padding:0;margin:0;padding-bottom:2px;position:absolute;overflow:hidden;z-index:10}.o_cal_wv_event{border:1px solid;padding:0;margin:0;position:relative;overflow:hidden;z-index:10}.o_cal_wv_event_overflow{position:absolute;right:2px;z-index:20}.o_cal_wv_event:hover{border-color:#000;z-index:11}.o_cal_wv_event_header{height:1em;overflow:hidden;padding:0px 2px 3px 2px;font-weight:bold;vertical-align:bottom}.o_cal_wv_event_content{padding:1px 2px 1px 2px}.o_cal_toptoolbar{margin-bottom:0.8em;min-width:707px;padding-bottom:8px;border-bottom:1px solid #eee}.o_cal_toptoolbar .o_cal_pagination{float:left;height:2em;width:235px}.o_cal_toptoolbar .o_cal_gotodate{float:left;height:2em;width:350px}.o_cal_gotodate div.b_form div.b_form_element_wrapper div.b_form_element{margin-left:0}.o_cal_toptoolbar .o_cal_search{float:left;height:2em}.o_cal_wv_devent_wrapper{padding:0;margin:0;position:relative;top:-1px;left:-1px;width:auto;height:20px}.o_cal_wv_devent{border:1px solid;padding:0;margin:0;width:100%;height:19px;overflow:hidden;z-index:11}.o_cal_wv_devent:hover{border-color:#000;z-index:12}.o_cal_wv_devent_content{padding:1px 2px 1px 2px}.o_cal_config{margin:2em 0;position:relative;padding:5px}.o_cal_manage_config{position:relative;padding:5px}.o_cal_manage_config fieldset{position:relative;display:inline}.o_cal_config fieldset{position:relative;display:inline}.o_cal_config_scrollwrapper{width:400px;height:100px;overflow:scroll;overflow-x:hidden;border:1px solid #BFBFBF;position:relative}.o_cal_config_row{clear:both;padding:2px 15px 0 0}.o_cal_config_enabled{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/check_on.png) no-repeat;float:left;display:inline}a.o_cal_config_enabled:hover{background:url(../openolat/images/cal/check_on_over.png) no-repeat}.o_cal_config_disabled{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/check_off.png) no-repeat;float:left;display:inline}.o_cal_config_calendar{border:1px solid;padding:0;margin:0;padding:1px 6px 1px 4px;position:relative;height:14px;width:200px;overflow:hidden;float:left;display:inline}.o_cal_config_chosecolor{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/color.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_subscribeical{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_remove_subscribeical{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export_remove.png) no-repeat 0 0;float:left;display:inline}a.o_cal_config_unsubscribe{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_remove.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_regenerate_link{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar_ical_export_regen.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_remove_cal{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/delete.png) no-repeat 2px 0px;float:left;display:inline}.o_cal_config_addevent{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--plus.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_importevent{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--arrow.png) no-repeat 0 0;float:left;display:inline}.o_cal_config_readonly{position:relative;width:20px;height:16px;background:url(../openolat/images/cal/calendar--plus.png) no-repeat 0 0;opacity:0.6;float:left;display:inline}#o_cal_colorchooser{background:#DCDDE0;border:1px solid #999999;float:left;display:inline;padding:3px;position:relative}#o_cal_colorchooser div{position:relative;border:1px solid #FFF;margin:5px;float:left;display:inline}#o_cal_colorchooser div:hover{border:1px solid #000}#o_cal_colorchooser a{position:relative;width:20px;height:20px;float:left;display:inline}.o_cal_colorchooser_selected{background:url(../openolat/images/cal/selectedcolor.gif) no-repeat 2px 2px}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5d5d5d !important}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:white !important}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:white !important}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5d5d5d !important}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:white !important}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:white !important}div.o_cal_gotodate div.b_form_element{margin-left:0%;margin-top:-4px}div.o_cal_search_subscribe{float:right;margin-right:20px}div.o_cal_week_year_label{font-weight:bold;margin-top:8px}.o_cal_config_regenerate_link{position:relative;float:left;display:inline}.o_cal_wv_event_tooltip{display:none}.o_cal_tooltip_buttons{text-align:right}.o_cal_wv .x-tip-body div{padding:0.2em 0}div.o_cal_wv_event_tooltip_content{padding-top:1em}div.o_cal_tooltip_buttons{padding-top:1em}body.o_cal_print{background:white}body.o_cal_print .o_cal_toptoolbar.b_clearfix{display:none}body.o_cal_print .o_cal_wv{display:none}body.o_cal_print .o_cal_wv_print{display:block}body.o_cal_print #o_cal_config .b_float_right{display:none}body.o_cal_print #o_cal_config_below_cal_container .b_subcolumns{display:none}body.o_cal_print .o_cal_wv_print ul{list-style-type:none;margin:0 0 0 0;padding:0 0 0 0}body.o_cal_print .o_cal_event{clear:left;margin:0.2em 0}body.o_cal_print .o_cal_wv_list *{float:left;width:100%}body.o_cal_print .o_cal_event span{padding:0 0.4em;display:block}body.o_cal_print .o_cal_date{font-weight:bold}body.o_cal_print .o_cal_time{width:25%}body.o_cal_print .o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick;background:white}body.o_cal_print .o_cal_subject p{padding:0 0.4em;margin:0;color:black}body.o_cal_print .o_cal_location{float:right;width:34%}body.o_cal_print .o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}body.o_cal_print .o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block;color:black;background:white}}.o_glossary{margin:0 100px 0 100px}.o_glossary_entry{margin:0px 0 0px 0;padding:10px;border-top:1px solid #DCDDE0;border-left:1px solid #DCDDE0;border-right:1px solid #DCDDE0}.o_glossary_commands{float:right}.o_glossary_addcommand{float:right}.o_glossary dt{font-weight:bold}dt span.o_glossary_author{font-weight:normal}dt span.o_glossary_modifier{font-weight:normal;color:#98221F}dt span.o_glossary_modifier a,dt span.o_glossary_modifier a:hover{color:#98221F}dt o_glossary_synonym{font-size:80%;font-variant:small-caps;font-style:italic}dd{padding-left:20px;clear:both}.o_glossary_register{margin-bottom:10px}.o_glossary_register_active{font-weight:bold;background-color:lightgrey;font-size:120%}.o_tm_glossary{border-bottom:1px dotted #666699}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}@media print{.o_cal_toptoolbar.b_clearfix{display:none}.o_cal_wv{display:none}.o_cal_wv_print{display:block}#o_cal_config .b_float_right{display:none}#o_cal_config_below_cal_container .b_subcolumns{display:none}.o_cal_wv_print ul{list-style-type:none;margin-left:0}.o_cal_event{clear:left;margin:0.2em 0}.o_cal_wv_list *{float:left;width:100%}.o_cal_event span{padding:0 0.4em;display:block}.o_cal_date{font-weight:bold}.o_cal_time{width:25%}.o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick}.o_cal_subject p{padding:0 0.4em;margin:0}.o_cal_location{float:right;width:34%}.o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}.o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block}#o_cal_config_below_cal_container{border:none;background:none;overflow:visible}#o_cal_config_below_cal_container *{background:none;color:black}#o_cal_config_below_cal_container fieldset{border:none}#o_cal_config_below_cal_container fieldset legend{font-weight:bold}}#o_feed .o_box{border:1px solid #eee;padding:0.8em;margin-bottom:2em;background:white;background:-moz-linear-gradient(top, white 80%, #f8f8f8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(80%, white), color-stop(100%, #f8f8f8));background:-webkit-linear-gradient(top, white 80%, #f8f8f8 100%);background:-o-linear-gradient(top, white 80%, #f8f8f8 100%);background:-ms-linear-gradient(top, white 80%, #f8f8f8 100%);background:linear-gradient(top, white 80%, #f8f8f8 100%);border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px}#o_feed div.o_feed_edit{float:right;position:relative;top:0.2em;margin-right:0}#o_feed #o_link_container{margin-bottom:0.8em}#o_feed #o_link_container div.o_home{text-align:center}#o_feed #o_link_container div.o_older_items{float:left;display:inline}#o_feed #o_link_container div.o_newer_items{float:right;display:inline}#o_feed .b_year_navigation{text-align:center}#o_feed .b_year_navigation .b_months{border-top:1px solid #eee;padding-top:1em;margin-top:0.5em;clear:both;list-style:none}#o_feed .b_year_navigation span.b_disabled{background-image:none}div.o_feed_peekview{margin:1em 0 1em 0}div.o_feed_peekview h5{font-size:1em;position:relative;left:-20px}div.o_feed_peekview div.o_feed_peekview_item{padding-left:20px}#o_feed div.b_datecomp{top:2px;float:left;display:inline}#o_feed p.o_podcast_date{font-size:80%;color:#aaaaaa}#o_feed div.o_podcast_info img.icon{float:left;margin:0 1.5em 1.5em 0;max-width:120px;max-height:120px}#o_feed div.o_podcast_no_image{float:left;margin:0 1em 1em 0;width:100px;height:100px;color:#dfdfdf;background:white;text-align:center;padding:20px;border:2px dashed #dfdfdf;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}#o_feed div.o_podcast_no_image span{vertical-align:middle}#o_feed div.o_podcast_subscription{clear:both}#o_feed div.o_podcast_subscription a.o_podcast_rss_link{display:block;float:right;width:16px;height:16px;background:url(../openolat/images/feed.png) no-repeat}#o_feed div.o_podcast_episode{padding:10px;margin-top:20px;border:1px solid #dfdfdf;background-color:#fdfdfd;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}#o_feed div.o_podcast_episode div.b_ratings_and_comments{margin:2em 0 0 0;padding-bottom:0;border-bottom:0}#o_feed div.o_podcast_episode div.o_podcast_audio{margin-bottom:3px}#o_feed div.o_podcast_episode div.o_podcast_audio embed{width:200px;height:24px}#o_feed div.o_podcast_episode div.o_podcast_video{margin-bottom:3px}#o_feed div.o_podcast_episode div.o_podcast_video embed{width:200px;height:157px}#o_feed .back_link.o_podcast{margin-bottom:1.5em}div.o_podcast_peekview div.o_feed_peekview_item a.o_feed_item_icon{background-image:url(../openolat/images/control/speaker-volume.png)}#o_feed .o_blog_posts .o_post,#o_feed .o_blog_post .o_post{margin-bottom:1em;padding:10px;border:1px solid #dfdfdf;background-color:#fdfdfd;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px}.o_post-readmorelinks{margin-top:1em;list-style:none}.o_post-readmorelinks,.o_post-readmorelinks li{margin-left:0;padding-left:0}#o_feed .o_blog_posts .o_draft{padding:0.8em;background-color:#fcf7ac;border:1px solid #fddc55}#o_feed .o_blog_posts .o_scheduled{padding:0.8em;background-color:#d9ffd0;border:1px solid #beffae}#o_feed div.o_blog_info div.o_blog_subscription{min-height:16px;padding-left:20px;background:url(../openolat/images/feed.png) no-repeat}#o_feed .o_blog_info .o_author,#o_feed .o_blog_posts .o_item_info{color:#7D7D7D;font-size:90%;margin:0}#o_feed .o_blog_posts p.o_item_info span.o_item_info_mod{color:#98221F}#o_feed .o_blog_post .back_link{margin-bottom:1.5em}div.o_blog_peekview div.o_feed_peekview_item a.o_feed_item_icon{background-image:url(../openolat/images/comment.png)}#o_instantmessaging_status_changer{padding:1em 0 0 0;margin:0}#o_instantmessaging_status_changer a.b_contexthelp{margin-top:5px;padding-right:5px}#o_instantmessaging_status_changer ul{list-style-type:none;padding:0;margin:0}#o_instantmessaging_status_changer li{padding:0;margin:0}#o_instantmessaging_status_changer li a{padding:0.1em 0 0.1em 20px;background-repeat:no-repeat;background-position:0 50%}.o_instantmessaging_chat_history{border:1px solid #ACAAAA;height:170px;font-size:90%;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_instantmessaging_chat_history div.o_instantmessaging_message_group{border-top:1px solid #eee;padding:3px 3px 3px 40px;min-height:40px;position:relative;background:#fff}.o_instantmessaging_chat_history div.o_instantmessaging_message_group.o_odd{background:#F4F4F4}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_avatar{position:absolute;top:3px;left:3px;border:1px solid #bbb;width:30px;height:30px;background-color:#fff;background-repeat:no-repeat;background-position:50% 50%}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_from{text-align:left;color:#999;text-decoration:none;font-weight:500}.o_instantmessaging_chat_history div.o_instantmessaging_message_group a:hover{color:#000;text-decoration:none}.o_instantmessaging_chat_history div.o_instantmessaging_message_group a:hover div.o_instantmessaging_from{color:#000}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_body{padding:3px 0 3px 0}.o_instantmessaging_chat_history div.o_instantmessaging_message_group div.o_instantmessaging_body span.o_instantmessaging_date{text-align:right;color:#999;font-size:90%;font-weight:200}.o_instantmessaging_chat_form input{width:99%}.o_instantmessaging_chat_form div.b_button_group{margin-top:1em}#o_instantmessages_buddieslist{font-size:90%;padding:1em 0 0 0;margin:0}#o_instantmessages_buddieslist a.b_contexthelp{margin-top:5px;padding-right:5px}#o_instantmessages_buddieslist ul{list-style-type:none;padding:0;margin:0}#o_instantmessages_buddieslist li{margin:0;padding:0}#o_instantmessages_buddieslist li.o_instantmessaging_group{padding-bottom:0.5em}#o_instantmessages_buddieslist li.o_instantmessaging_group div.o_instantmessaging_groupname{padding:0 0 0 20px;background:url(../openolat/images/users.png) no-repeat 0 50%}#o_instantmessages_buddieslist a.o_instantmessaging_vip span{font-weight:bold}#o_instantmessages_buddieslist li a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler{border-bottom:1px #eee solid;margin:0 0 0.5em 0;padding:0 0 0.5em 0}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler span{white-space:nowrap}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%;margin-right:1em}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_showgroupswitch{background-image:url(../openolat/images/users_conf.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_hidegroupswitch{zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=60);-moz-opacity:0.6;-khtml-opacity:0.6;opacity:0.6;background-image:url(../openolat/images/users_conf.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_showofflineswitch{background-image:url(../openolat/images/im/status-offline.png)}#o_instantmessages_buddieslist #o_instantmessages_buddieslist_toggler a.o_instantmessaging_hideofflineswitch{background-image:url(../openolat/images/im/status.png)}#o_instantmessages_buddy{margin:1em 0 2em 0}#o_instantmessages_buddy a{padding:2px 0 2px 20px;background-repeat:no-repeat;background-position:0 50%}div.o_groupchat_roster{margin:0}div.o_groupchat_roster ul{list-style-type:none;margin:0;padding:0}div.o_groupchat_roster ul li{font-size:90%;margin:0;padding:0 0 0 20px;background:url(../openolat/images/user.png) no-repeat 0 50%}div.o_groupchat_roster ul li.o_instantmessaging_anonymous{background-image:url(../openolat/images/user_silhouette.png)}div.o_groupchat_roster ul li.o_instantmessaging_vip{font-weight:bold}div.o_groupchat_roster ul li.o_instantmessaging_vip.o_instantmessaging_anonymous{font-weight:normal}.o_instantmessaging_available_icon{background-image:url(../openolat/images/im/status.png)}.o_instantmessaging_dnd_icon{background-image:url(../openolat/images/im/status-away.png)}.o_instantmessaging_unavailable_icon{background-image:url(../openolat/images/im/status-offline.png)}.o_instantmessaging_new_msg_icon{background-image:url(../openolat/images/im/new_message.png)}.o_instantmessaging_chat_icon{background-image:url(../openolat/images/im/balloon-white-left.png)}.o_instantmessaging_refresh_icon{background-image:url(../openolat/images/qti/tries.png)}div.o_home_portaleditlink{position:absolute;top:1em;right:0.6em}.o_home_main{text-align:center}div.o_home_rsslink{clear:both;float:right;display:inline;margin:10px 0}div.o_home_rsslink a{float:right;display:inline}div.o_home_rsslink a.o_home_rsslink{background:url(../openolat/images/feed.png) no-repeat;width:16px;display:block;height:16px;line-height:0}.b_portlet{position:relative;margin:10px;min-height:13em}.b_portlet .b_portlet_showall{font-size:95%;position:absolute;right:0;top:0}.b_portlet .b_portlet_header{border-bottom:1px solid #ff6666;white-space:nowrap;overflow-y:hidden !important;overflow-x:hidden !important}.b_portlet .b_portlet_content{position:relative;padding:1em 0 0 0}.b_portlet div.b_portlet_table table{background:none;border:none}.b_portlet div.b_portlet_table table th,.b_portlet div.b_portlet_table table td{padding:0}.b_portlet div.b_portlet_table table tbody tr{background:transparent}.b_portlet div.b_portlet_table table tbody tr.b_table_odd td{background:transparent}.b_portlet div.b_portlet_table table tbody tr td{border:0 !important}.b_portlet div.b_portlet_table table tbody tr:hover,.b_portlet div.b_portlet_table table tbody tr:hover td,.b_portlet div.b_portlet_table table tbody tr:focus,.b_portlet div.b_portlet_table table tbody tr:focus td{background:transparent}.b_portlet div.b_portlet_table div.b_table_empty{background:none;padding:0;margin:0}div.o_portlet_repository_student td.b_first_child{width:24px}div.o_portlet_repository_teacher td.b_first_child{width:24px}.b_portlet .b_portlet_header{background-repeat:no-repeat;background-position:0% 50%;padding-left:27px;padding-top:5px;padding-bottom:5px}div.o_portlet_calendar div.b_portlet_header{background-image:url(../openolat/images/calendar_empty.png);padding-left:2px;padding-top:8px}div.o_portlet_calendar.o_day_1 div.b_portlet_header strong:before{content:"1";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_2 div.b_portlet_header strong:before{content:"2";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_3 div.b_portlet_header strong:before{content:"3";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_4 div.b_portlet_header strong:before{content:"4";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_5 div.b_portlet_header strong:before{content:"5";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_6 div.b_portlet_header strong:before{content:"6";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_7 div.b_portlet_header strong:before{content:"7";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_8 div.b_portlet_header strong:before{content:"8";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_9 div.b_portlet_header strong:before{content:"9";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_10 div.b_portlet_header strong:before{content:"10";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_11 div.b_portlet_header strong:before{content:"11";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_12 div.b_portlet_header strong:before{content:"12";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_13 div.b_portlet_header strong:before{content:"13";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_14 div.b_portlet_header strong:before{content:"14";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_15 div.b_portlet_header strong:before{content:"15";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_16 div.b_portlet_header strong:before{content:"16";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_17 div.b_portlet_header strong:before{content:"17";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_18 div.b_portlet_header strong:before{content:"18";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_19 div.b_portlet_header strong:before{content:"19";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_20 div.b_portlet_header strong:before{content:"20";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_21 div.b_portlet_header strong:before{content:"21";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_22 div.b_portlet_header strong:before{content:"22";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_23 div.b_portlet_header strong:before{content:"23";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_24 div.b_portlet_header strong:before{content:"24";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_25 div.b_portlet_header strong:before{content:"25";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_26 div.b_portlet_header strong:before{content:"26";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_27 div.b_portlet_header strong:before{content:"27";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_28 div.b_portlet_header strong:before{content:"28";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_29 div.b_portlet_header strong:before{content:"29";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_30 div.b_portlet_header strong:before{content:"30";font-size:smaller;padding-right:16px}div.o_portlet_calendar.o_day_31 div.b_portlet_header strong:before{content:"31";font-size:smaller;padding-right:16px}div.o_portlet_infomsg div.b_portlet_header{background-image:url(../openolat/images/comment.png)}div.o_portlet_quickstart div.b_portlet_header{background-image:url(../openolat/images/mouse.png)}div.o_portlet_bookmark div.b_portlet_header{background-image:url(../openolat/images/book-open-bookmark.png)}div.o_portlet_groups div.b_portlet_header{background-image:url(../openolat/images/users.png)}div.o_portlet_notes div.b_portlet_header{background-image:url(../openolat/images/sticky-note--pencil.png)}div.o_portlet_noti div.b_portlet_header{background-image:url(../openolat/images/mail.png)}div.o_portlet_eff div.b_portlet_header{background-image:url(../openolat/images/script-stamp.png)}div.o_portlet_repository_student div.b_portlet_header{background-image:url(../openolat/images/le_resources/book-open-text-image.png)}div.o_portlet_repository_teacher div.b_portlet_header{background-image:url(../openolat/images/le_resources/book-open-text-image-red.png)}div.b_portlet_iframe div.b_portlet_header{background-image:url(../openolat/images/layer.png)}div.b_portlet_sysinfo div.b_portlet_header{background-image:url(../openolat/images/exclamation.png)}div.b_portlet_dyk div.b_portlet_header{background-image:url(../openolat/images/light-bulb.png)}div.o_portlet_infomessages div.b_portlet_header{background-image:url(../openolat/images/information-button.png)}div.b_portlet.o_pt_w_if div.b_portlet_header{background-image:url(../openolat/images/globe.png)}div.b_portlet.b_portlet_edit{background:#FFE793;border:1px solid #FF9E3E;padding:2px}div.b_portlet.b_portlet_edit .b_portlet_header{height:23px}div.b_portlet_toolbox{position:absolute;top:0;right:0;padding:2px;height:20px;overflow-y:hidden !important;overflow-x:hidden !important}div.b_portlet_toolbox a,div.b_portlet_toolbox span.b_disabled{background-repeat:no-repeat;background-position:1px 1px;float:right;width:18px;height:18px;overflow:hidden}div.b_portlet_toolbox div{display:inline}div.b_portlet_toolbox > a,div.b_portlet_toolbox > span{border:1px solid #888;border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;background:#eee;background-repeat:no-repeat;background-position:center}div.b_portlet_toolbox a.b_portlet_edit_left{background-image:url(../openolat/images/arrow_left_big.png)}div.b_portlet_toolbox a.b_portlet_edit_right{background-image:url(../openolat/images/arrow_right_big.png)}div.b_portlet_toolbox a.b_portlet_edit_down{background-image:url(../openolat/images/arrow_down_big.png)}div.b_portlet_toolbox a.b_portlet_edit_up{background-image:url(../openolat/images/arrow_up_big.png)}div.b_portlet_toolbox a.b_portlet_edit_delete{background-image:url(../openolat/images/bin-metal-full.png)}div.b_portlet_toolbox a.b_portlet_edit_sort_auto{background-image:url(../openolat/images/table_sort.png)}div.b_portlet_toolbox a.b_portlet_edit_sort_manual{background-image:url(../openolat/images/table_gear.png)}div.b_portlet_toolbox span.b_portlet_edit_left_disabled{background-image:url(../openolat/images/arrow_left_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_right_disabled{background-image:url(../openolat/images/arrow_right_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_down_disabled{background-image:url(../openolat/images/arrow_down_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_up_disabled{background-image:url(../openolat/images/arrow_up_big.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_sort_auto_disabled{background-image:url(../openolat/images/table_sort.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}div.b_portlet_toolbox span.b_portlet_edit_sort_manual_disabled{background-image:url(../openolat/images/table_gear.png);zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity:0.2;opacity:0.2}.b_toolboxes{padding:6px}.b_toolboxes .b_toolbox{margin-bottom:20px}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper{border-bottom:1px solid #ff6666;background:inherit}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head{vertical-align:top}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head strong{font-weight:bold}.b_toolboxes .b_toolbox .b_toolbox_head_wrapper .b_toolbox_head_icon{background:transparent no-repeat 3px 50%;padding-left:19px;line-height:1.2em;color:black}.b_toolboxes .b_toolbox .b_toolbox_content ul{padding:0 0 0 6px;margin:0;list-style:none}.b_toolboxes .b_toolbox .b_toolbox_content li{padding:0;margin:0;line-height:1.7em;white-space:nowrap}.b_toolboxes .b_toolbox .b_toolbox_content li a{color:#667;background-repeat:no-repeat;background-position:0 50%;padding-left:20px;display:block}.b_toolboxes .b_toolbox .b_toolbox_content li a:focus,.b_toolboxes .b_toolbox .b_toolbox_content li a:hover,.b_toolboxes .b_toolbox .b_toolbox_content li a:active{color:#504D4E;text-decoration:underline}.b_toolboxes .b_toolbox .b_toolbox_content li div.b_note,.b_toolboxes .b_toolbox .b_toolbox_content li div.b_important,.b_toolboxes .b_toolbox .b_toolbox_content li div.b_warning{padding:0 0 0 20px;margin:0;border-bottom:0}.b_toolboxes .b_toolbox .b_toolbox_content li a.b_toolbox_toggle{padding-left:0;display:inline}.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_toggle_wrapper{float:right;font-size:90%}.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_link.b_disabled,.b_toolboxes .b_toolbox .b_toolbox_content li span.b_toolbox_disabled{color:#999;background:no-repeat 0 50% url(../openolat/images/bullet_white.png);padding-left:18px;display:block}div.b_portlet.o_pt_w_if div.b_portlet_header{background-image:url(../openolat/images/globe.png)}div.b_portlet p{margin-bottom:0}div.b_portlet_dyk_q{font-weight:bold}div.b_portlet_dyk_a{padding-top:5px}div.b_portlet_dyk_next{text-align:right}div.f_library_catalog div.b_tree ul{white-space:normal}div.f_library_catalog div.b_tree ul.b_tree_l1 li a.b_tree_icon{background-image:none !important}div.f_library_catalog div.f_metadata{background-color:#fcfcfc;margin-left:20px;padding:4px}div.f_library_catalog h4{padding-left:25px;background-repeat:no-repeat;background-position:center left}div.f_library_catalog div.f_folder_info div.f_metadata{margin-bottom:1.5em}div.f_library_catalog div.b_noti{right:90px}div.f_library_catalog div.f_thumbnails_switch{border:1px solid #E9EAEF;display:inline;position:absolute;top:0px;right:0px;float:right;padding:3px 3px 3px 23px}div.f_library_catalog div.f_thumbnails_on{background:url(../openolat/images/docs/document_preview.png) no-repeat 3px 50%}div.f_library_catalog div.f_thumbnails_off{background:url(../openolat/images/docs/document_preview.png) no-repeat 3px 50%;zoom:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=$percent)";filter:alpha(opacity=70);-moz-opacity:0.7;-khtml-opacity:0.7;opacity:0.7}div.f_library_catalog th,div.f_library_catalog td{text-align:left;font-size:0.9em;color:#999;margin:0;padding:0;border:0}div.f_library_catalog th{font-weight:bold;width:14em;vertical-align:top}div.f_library_catalog h3.b_filetype_folder{margin-top:20px}div.f_library_catalog div.f_item{margin-bottom:1em;padding:0.5em}div.f_library_catalog div.f_item div.f_item_thumbnail{width:200px;height:200px;float:left;margin-right:20px}div.f_library_catalog div.f_item div.f_item_links a{background-repeat:no-repeat}div.f_library_catalog div.f_item div.f_item_links a.b_filetype_file{display:block;width:70%;float:left;padding:2px 10px 2px 20px;background-repeat:no-repeat;margin:0}div.f_library_catalog div.f_item div.f_item_links a.f_permalink{text-decoration:none;display:block;width:9px;height:9px;float:right;padding:4px 2px 2px 2px;margin:0;background-position:center center}div.f_library_catalog div.f_item div.f_item_links span a.f_sendmail{text-decoration:none;background:url(../openolat/images/mail.png) no-repeat top left;display:block;width:16px;height:16px;float:right;padding:0 0 0 2px;margin:0}div.f_library_catalog div.f_item div.f_metadata{position:relative;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-o-border-radius:4px;moz-box-shadow:0 1px 2px #d3d3d3;-ms-box-shadow:0 1px 2px #d3d3d3;-o-box-shadow:0 1px 2px #d3d3d3;-webkit-box-shadow:0 1px 2px #d3d3d3;box-shadow:0 1px 2px #d3d3d3}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail{float:left;border-right:1px solid #eeeeee;margin-right:1em}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail_inner{width:200px;height:200px}div.f_library_catalog div.f_item div.f_metadata div.f_thumbnail_unavailable{width:200px;height:200px;background-repeat:no-repeat;background-position:50% 50%}div.f_library_catalog div.f_item div.f_metadata div.f_metadata_text{padding-bottom:35px}div.f_library_catalog div.f_item div.f_metadata div.f_metadata_text_inner{width:100%}div.f_library_catalog div.f_item div.f_metadata div.f_item_ratings{position:absolute;bottom:3px;right:3px;width:300px}div.f_library_catalog div.f_item div.f_metadata div.f_item_ratings div.b_ratings_and_comments{margin:0;border:none}div.f_library_catalog div.f_item_selected div.f_metadata{background-color:#F0F0F0 !important;moz-box-shadow:1 1px 4px #d3d3d3;-ms-box-shadow:1 1px 4px #d3d3d3;-o-box-shadow:1 1px 4px #d3d3d3;-webkit-box-shadow:1 1px 4px #d3d3d3;box-shadow:1 1px 4px #d3d3d3}div.f_library_catalog h3.f_search_results{background-image:url(../openolat/images/magnifier-zoom.png) !important}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox input{line-height:1.3em;margin:0;width:10em}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox input:focus{border:1px solid #504D4E}div.f_library_catalog div.b_toolbox div.o_toolbox_searchbox button{width:16px;height:16px;background:url(../openolat/images/magnifier-zoom.png) no-repeat;border:0;vertical-align:top}div.f_library_catalog_wide div.f_metadata{background-color:#fcfcfc}div.f_library_catalog_wide th,div.f_library_catalog_wide td{text-align:left;font-size:0.9em;color:#999;margin:0;padding:0;border:0}div.f_library_catalog_wide th{font-weight:bold;width:14em;vertical-align:top}div.f_library_catalog_wide h3.b_filetype_folder{margin-top:20px}div.f_library_catalog_wide div.f_item{margin-bottom:30px}div.f_library_catalog_wide div.f_item div.f_thumbnail{width:280px;height:158px;float:left;border-right:1px solid #999}div.f_library_catalog_wide div.f_item div.f_item_links a{background-repeat:no-repeat}div.f_library_catalog_wide div.f_item div.f_item_links a.b_filetype_file{display:block;width:70%;float:left;padding:2px 10px 2px 20px;background-repeat:no-repeat;margin:0}div.f_library_catalog_wide div.f_item div.f_item_links a.f_permalink{text-decoration:none;display:block;width:9px;height:9px;float:right;padding:4px 2px 2px 2px;margin:0;background-position:center center}div.f_library_catalog_wide div.f_item div.f_item_links span a.f_sendmail{text-decoration:none;background:url(../openolat/images/mail.png) no-repeat top left;display:block;width:16px;height:16px;float:right;padding:0 0 0 2px;margin:0}div.f_library_catalog_wide div.f_item div.f_metadata{position:relative;border:1px solid #999;moz-box-shadow:0 1px 2px #999999;-ms-box-shadow:0 1px 2px #999999;-o-box-shadow:0 1px 2px #999999;-webkit-box-shadow:0 1px 2px #999999;box-shadow:0 1px 2px #999999}div.f_library_catalog_wide div.f_item div.f_metadata div.f_thumbnail_inner{width:280px;height:158px}div.f_library_catalog_wide div.f_item div.f_metadata div.f_thumbnail_unavailable{width:280px;height:158px;background-image:url(../openolat/images/no_preview.png);background-repeat:no-repeat;background-position:50% 50%}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_text{margin:10px 220px 10px 300px}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_text_inner{width:100%}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_additional_infos{position:absolute;top:0;right:0;height:158px;width:210px;border-left:1px solid #999}div.f_library_catalog_wide div.f_item div.f_metadata div.f_metadata_additional_infos_inner{margin:10px 10px 10px 10px}div.f_library_catalog_wide div.f_item_selected div.f_metadata{background-color:#F0F0F0 !important;moz-box-shadow:1 1px 4px #d3d3d3;-ms-box-shadow:1 1px 4px #d3d3d3;-o-box-shadow:1 1px 4px #d3d3d3;-webkit-box-shadow:1 1px 4px #d3d3d3;box-shadow:1 1px 4px #d3d3d3}div.f_library_catalog_wide h3.f_search_results{background-image:url(../openolat/images/magnifier-zoom.png) !important}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox input{line-height:1.3em;margin:0;width:10em}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox input:focus{border:1px solid #504D4E}div.f_library_catalog_wide div.b_toolbox div.o_toolbox_searchbox button{width:16px;height:16px;background:url(../openolat/images/magnifier-zoom.png) no-repeat;border:0;vertical-align:top}div.f_library_catalog_condensed div.f_item_condensed{width:280px;height:280px;margin-right:30px;margin-bottom:30px;float:left;-webkit-box-shadow:0 1px 2px 0 #999;box-shadow:0 1px 2px 0 #999;border:1px solid #999;background-color:#fcfcfc}div.f_library_catalog_condensed div.f_item_condensed div.f_thumbnail{height:158px;width:280px}div.f_library_catalog_condensed div.f_item_condensed div.f_metadata_text{padding:12px 8px 12px 12px}div.f_library_catalog_condensed div.f_item_condensed div.o_eff_statement_progress{width:200px;margin:20px 0px 0px 20px}div.f_library_overview img{float:right;max-width:50%}div.f_library_overview p{padding-left:20px}div.f_library_overview div.f_library_big_icon{float:right;background-repeat:no-repeat;background-size:100%;width:45%;height:300px;margin:0 20px 0 20px}div.f_library_overview div.f_library_newest_files ul li{white-space:normal;padding-bottom:0.3em}div.f_library_overview div.f_library_newest_files ul li a{background-position:top left;min-height:16px}.f_library_big_icon{background-image:url(../openolat/images/library_image.png)}.f_library_icon{background-image:url(../openolat/images/library.png)}.f_thumbnail_unavailable{background-image:url(../openolat/images/no_preview.png)}#b_main.o_coaching div.o_eff_statement_progress{width:100%;height:15px;background-color:#eeeeee;border:1px solid #777777}#b_main.o_coaching div.o_eff_statement_progress div.o_eff_statement_solved{height:15px;background:#ff6666;background:-moz-linear-gradient(top, #ff6666 0%, red 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ff6666), color-stop(100%, red));background:-webkit-linear-gradient(top, #ff6666 0%, red 100%);background:-o-linear-gradient(top, #ff6666 0%, red 100%);background:-ms-linear-gradient(top, #ff6666 0%, red 100%);background:linear-gradient(top, #ff6666 0%, red 100%)}#b_main.o_coaching .o_eff_statement_rg div.o_eff_statement_progress{background:#f85032;background:-moz-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f85032), color-stop(50%, #f16f5c), color-stop(51%, #f6290c), color-stop(100%, #e73827));background:-webkit-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:-ms-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%);background:linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #e73827 100%)}#b_main.o_coaching .o_eff_statement_rg div.o_eff_statement_progress div.o_eff_statement_solved{background:#9dd53a;background:-moz-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #9dd53a), color-stop(50%, #a1d54f), color-stop(51%, #80c217), color-stop(100%, #7cbc0a));background:-webkit-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-o-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:-ms-linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%);background:linear-gradient(top, #9dd53a 0%, #a1d54f 50%, #80c217 51%, #7cbc0a 100%)}#b_main.o_coaching div.o_eff_statement_details{margin:10px 0 10px 0}#b_main.o_coaching .b_toolbar_center span.b_disabled{display:none}div.o_eff_statement_progress{width:100%;height:15px;background-color:#eeeeee;border:1px solid #777777}div.o_eff_statement_progress div.o_eff_statement_solved{height:15px;background-color:#81afca}.o_eff_statement_rg div.o_eff_statement_progress{background-color:red}.o_eff_statement_rg div.o_eff_statement_progress div.o_eff_statement_solved{background-color:green}div.o_eff_statement_details{margin:10px 0 10px 0}div.o_eff_statement_recalculating{padding-left:30px;background:transparent url(../openolat/images/ajax-loader.gif) no-repeat top left}.ui-widget{font-family:Courier;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-dialog{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-dialog .ui-widget-header .ui-icon-closethick{background:white url("../openolat/images/close.png") no-repeat center center}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:2px 30px 2px 5px}.ui-dialog.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-dialog.ui-widget-content{border-color:red}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-autocomplete-input{line-height:1.5em;font-size:98%}.ui-autocomplete{z-index:10000}.ui-autocomplete.ui-menu{padding:1px}.ui-autocomplete.ui-corner-all{border:1px solid red;border-top:none;-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:2px;-webkit-border-bottom-left-radius:2px;-moz-border-radius-topleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:2px;-moz-border-radius-bottomleft:2px;border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px;moz-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 3px 6px rgba(0, 0, 0, 0.3)}.ui-autocomplete a.ui-corner-all{border:none;margin:-1px;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0}.ui-autocomplete a.ui-corner-all.ui-state-focus{background:#ffdbc1}.ui-autocomplete .b_error_icon{color:#990000;font-style:italic}.ui-datepicker{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-datepicker .ui-widget-header .ui-datepicker-prev.ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:white url("../openolat/images/arrow_right_big.png") no-repeat center center}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:white url("../openolat/images/arrow_left_big.png") no-repeat center center}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #ff6666;background:#ffcccc}.ui-datepicker.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-datepicker.ui-widget-content{border-color:red}.ui-tooltip{moz-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-ms-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-o-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);-webkit-box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3);box-shadow:0px 0px 6px rgba(0, 0, 0, 0.3)}.ui-tooltip.ui-corner-all{border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-o-border-radius:2px}.ui-tooltip.ui-widget-content{border:1px solid red}ul.tagit li.tagit-choice.ui-widget-content.ui-state-default{background:#DEE7F8;border:1px solid #CAD8F3}ul.tagit.ui-corner-all{border:none;background:none}.ui-layout-pane{border:none}.ui-layout-resizer{background:none;border-width:1px;border-style:dotted}.ui-layout-toggler-hover,.ui-layout-resizer-hover .ui-layout-toggler-hover{background-color:red}.ui-layout-resizer-open-hover,.ui-layout-resizer-dragging{background:#ffcccc}.fc-state-highlight{background:#ffdbc1}#b_page_wrapper{border-bottom:0;padding:0 10px 0 10px;moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}#b_header{height:50px}#b_header #b_logo{position:absolute;top:10px;left:0;width:120px;height:40px;background:url("images/openolat_powerd_by_120x30.png") no-repeat}@media print{.o_noprint{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}#b_toplink{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}body{font-size:10pt}.b_noti{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}#b_main.o_loginscreen{background-image:none}#b_main.o_home{background-image:none}#b_main.o_editor{background-image:none}#b_main{moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;border:none}body,#b_page_margins,#b_page,#b_main,#b_page_wrapper{margin:0;padding:0;border:0}body *{font-family:"Times New Roman", Times, serif}code,pre{font-family:"Courier New", Courier, mono}#b_page_margins,#b_page{width:100% !important;min-width:0;max-width:none}#b_footer,#b_topnav,#b_nav,#search{display:none}#b_col1,#b_col2{display:none}#b_col3{margin:0 !important;border:none !important}.b_c25l,.b_c33l,.b_c38l,.b_c50l,.b_c62l,.b_c66l,.b_c75l,.b_c25r,.b_c33r,.b_c38r,.b_c50r,.b_c62r,.b_c66r,.b_c75r{width:100%;margin:0;float:none;overflow:visible;display:table}.b_subc,.b_subcl,.b_subcr{margin:0;padding:0}h1,h2,h3,h4,h5,h6{page-break-after:avoid}#b_page a[href^="http:"],#b_page a[href^="https:"]{padding-left:0;background-image:none}#b_col1_content:before,#b_col2_content:before,#b_col3_content:before{content:"";color:#888;background:inherit;display:block;font-weight:700;font-size:1.5em}.b_floatbox,.b_subcolumns,.b_subcolums_oldgecko{overflow:visible;display:table}#jsMath_PrintWarning{display:none !important;visibility:hidden !important;height:0px !important;width:0px !important}.o_wiki_wrapper .b_c20l,.o_wiki_wrapper .o_wikimod_nav{display:none}.o_wiki_wrapper .b_c80r{width:100%}.o_wiki_wrapper .b_c80r div.b_tabbedpane_tabs{display:none}.o_cal_toptoolbar.b_clearfix{display:none}.o_cal_wv{display:none}.o_cal_wv_print{display:block}#o_cal_config .b_float_right{display:none}#o_cal_config_below_cal_container .b_subcolumns{display:none}.o_cal_wv_print ul{list-style-type:none;margin-left:0}.o_cal_event{clear:left;margin:0.2em 0}.o_cal_wv_list *{float:left;width:100%}.o_cal_event span{padding:0 0.4em;display:block}.o_cal_date{font-weight:bold}.o_cal_time{width:25%}.o_cal_subject{width:40%;border-left-style:solid;border-left-width:thick}.o_cal_subject p{padding:0 0.4em;margin:0}.o_cal_location{float:right;width:34%}.o_cal_config_scrollwrapper{width:auto;height:auto;overflow:visible;overflow-x:visible}.o_cal_config_calendar{border-width:0;border-left-style:solid;border-left-width:thick;float:none;display:block}#o_cal_config_below_cal_container{border:none;background:none;overflow:visible}#o_cal_config_below_cal_container *{background:none;color:black}#o_cal_config_below_cal_container fieldset{border:none}#o_cal_config_below_cal_container fieldset legend{font-weight:bold}} diff --git a/src/test/java/org/olat/course/editor/PublishProcessTest.java b/src/test/java/org/olat/course/editor/PublishProcessTest.java index 20399d67b19c5597e35d2171ec5e58e400bb4ef2..b30e6b58128d94a3cd59ebe6163fd641f685ca70 100644 --- a/src/test/java/org/olat/course/editor/PublishProcessTest.java +++ b/src/test/java/org/olat/course/editor/PublishProcessTest.java @@ -268,7 +268,8 @@ public class PublishProcessTest extends OlatTestCase { PublishProcess pp = PublishProcess.getInstance(course, cetm, locale); // create publish node list pp.createPublishSetFor(nodeIds); - StatusDescription[] sds = pp.testPublishSet(locale); + PublishSetInformations set = pp.testPublishSet(locale); + StatusDescription[] sds = set.getWarnings(); Assert.assertNotNull(sds); Assert.assertEquals(0, sds.length); pp.applyPublishSet(author, locale); diff --git a/src/test/java/org/olat/course/nodes/cl/manager/CheckboxManagerTest.java b/src/test/java/org/olat/course/nodes/cl/manager/CheckboxManagerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..098d6f7deee3a369bb2347e941c09995c06f16d1 --- /dev/null +++ b/src/test/java/org/olat/course/nodes/cl/manager/CheckboxManagerTest.java @@ -0,0 +1,423 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.cl.manager; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import junit.framework.Assert; + +import org.junit.Test; +import org.olat.core.commons.persistence.DB; +import org.olat.core.id.Identity; +import org.olat.core.id.OLATResourceable; +import org.olat.core.util.resource.OresHelper; +import org.olat.course.nodes.cl.model.AssessmentData; +import org.olat.course.nodes.cl.model.Checkbox; +import org.olat.course.nodes.cl.model.CheckboxList; +import org.olat.course.nodes.cl.model.DBCheck; +import org.olat.course.nodes.cl.model.DBCheckbox; +import org.olat.test.JunitTestHelper; +import org.olat.test.OlatTestCase; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * + * Initial date: 06.02.2014<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class CheckboxManagerTest extends OlatTestCase { + + @Autowired + private DB dbInstance; + @Autowired + private CheckboxManagerImpl checkboxManager; + + @Test + public void createCheckBox() { + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-1", 2345l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId = UUID.randomUUID().toString(); + + DBCheckbox checkbox = checkboxManager.createDBCheckbox(checkboxId, ores, resSubPath); + dbInstance.commit(); + + Assert.assertNotNull(checkbox); + Assert.assertNotNull(checkbox.getKey()); + Assert.assertNotNull(checkbox.getCreationDate()); + Assert.assertEquals(checkboxId, checkbox.getCheckboxId()); + Assert.assertEquals("checkbox-1", checkbox.getResName()); + Assert.assertEquals(new Long( 2345l), checkbox.getResId()); + Assert.assertEquals(resSubPath, checkbox.getResSubPath()); + } + + @Test + public void loadCheckBox() { + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-2", 2346l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId = UUID.randomUUID().toString(); + DBCheckbox checkbox = checkboxManager.createDBCheckbox(checkboxId, ores, resSubPath); + dbInstance.commit(); + + //load it + List<DBCheckbox> checkboxList = checkboxManager.loadCheckbox(ores, resSubPath); + Assert.assertNotNull(checkboxList); + Assert.assertEquals(1, checkboxList.size()); + DBCheckbox dbCheckbox = checkboxList.get(0); + Assert.assertEquals(checkbox, dbCheckbox); + //paranoia check + Assert.assertNotNull(dbCheckbox.getCreationDate()); + Assert.assertEquals(checkboxId, dbCheckbox.getCheckboxId()); + Assert.assertEquals(resSubPath, dbCheckbox.getResSubPath()); + Assert.assertEquals("checkbox-2", dbCheckbox.getResName()); + Assert.assertEquals(new Long( 2346l), dbCheckbox.getResId()); + Assert.assertEquals(resSubPath, dbCheckbox.getResSubPath()); + } + + @Test + public void loadCheckBox_withcheckboxId() { + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-7", 2351l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId = UUID.randomUUID().toString(); + DBCheckbox checkbox = checkboxManager.createDBCheckbox(checkboxId, ores, resSubPath); + dbInstance.commit(); + + //load it + DBCheckbox loadedBox = checkboxManager.loadCheckbox(ores, resSubPath, checkboxId); + Assert.assertNotNull(loadedBox); + Assert.assertEquals(checkbox, loadedBox); + } + + @Test + public void removeCheckBox() { + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-3", 2347l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId = UUID.randomUUID().toString(); + DBCheckbox checkbox = checkboxManager.createDBCheckbox(checkboxId, ores, resSubPath); + dbInstance.commit(); + Assert.assertNotNull(checkbox); + + //load it + List<DBCheckbox> checkboxList = checkboxManager.loadCheckbox(ores, resSubPath); + Assert.assertNotNull(checkboxList); + Assert.assertEquals(1, checkboxList.size()); + dbInstance.commitAndCloseSession(); + + //remove + checkboxManager.removeCheckbox(checkboxList.get(0)); + dbInstance.commitAndCloseSession(); + + //reload + List<DBCheckbox> deletedCheckboxList = checkboxManager.loadCheckbox(ores, resSubPath); + Assert.assertNotNull(checkboxList); + Assert.assertEquals(0, deletedCheckboxList.size()); + } + + @Test + public void syncCheckBox() { + // build a list of checkbox to sync + CheckboxList list = new CheckboxList(); + Checkbox checkbox1 = new Checkbox(); + checkbox1.setCheckboxId(UUID.randomUUID().toString()); + checkbox1.setTitle("Sync me"); + list.add(checkbox1); + + Checkbox checkbox2 = new Checkbox(); + checkbox2.setCheckboxId(UUID.randomUUID().toString()); + checkbox2.setTitle("Sync me too"); + list.add(checkbox2); + + //sync them to the database + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-4", 2348l); + String resSubPath = UUID.randomUUID().toString(); + checkboxManager.syncCheckbox(list, ores, resSubPath); + dbInstance.commitAndCloseSession(); + + //load them + List<DBCheckbox> dbCheckboxList = checkboxManager.loadCheckbox(ores, resSubPath); + Assert.assertNotNull(dbCheckboxList); + Assert.assertEquals(2, dbCheckboxList.size()); + + for(DBCheckbox dbCheckbox:dbCheckboxList) { + Assert.assertNotNull(dbCheckbox); + Assert.assertNotNull(dbCheckbox.getKey()); + Assert.assertNotNull(dbCheckbox.getCheckboxId()); + Assert.assertTrue(dbCheckbox.getCheckboxId().equals(checkbox1.getCheckboxId()) + || dbCheckbox.getCheckboxId().equals(checkbox2.getCheckboxId())); + } + } + + @Test + public void createCheck() { + Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("check-1"); + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-5", 2349l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId = UUID.randomUUID().toString(); + DBCheckbox checkbox = checkboxManager.createDBCheckbox(checkboxId, ores, resSubPath); + + //create a check + DBCheck check = checkboxManager.createCheck(checkbox, id, new Float(1.0), Boolean.TRUE); + dbInstance.commitAndCloseSession(); + //paranoia check + Assert.assertNotNull(check); + Assert.assertNotNull(check.getKey()); + Assert.assertNotNull(check.getCreationDate()); + Assert.assertNotNull(check.getLastModified()); + Assert.assertEquals(id, check.getIdentity()); + Assert.assertEquals(checkbox, check.getCheckbox()); + Assert.assertEquals(Boolean.TRUE, check.getChecked()); + Assert.assertEquals(1.0f, check.getScore().floatValue(), 0.00001); + } + + @Test + public void loadCheck() { + Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("check-2"); + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-6", 2350l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId = UUID.randomUUID().toString(); + DBCheckbox checkbox = checkboxManager.createDBCheckbox(checkboxId, ores, resSubPath); + + //create a check + DBCheck check = checkboxManager.createCheck(checkbox, id, new Float(1.0), Boolean.TRUE); + dbInstance.commitAndCloseSession(); + + //load the check + DBCheck loadedCheck = checkboxManager.loadCheck(checkbox, id); + //paranoia check + Assert.assertNotNull(loadedCheck); + Assert.assertEquals(check, loadedCheck); + Assert.assertEquals(id, loadedCheck.getIdentity()); + Assert.assertEquals(checkbox, loadedCheck.getCheckbox()); + Assert.assertEquals(Boolean.TRUE, loadedCheck.getChecked()); + Assert.assertEquals(1.0f, loadedCheck.getScore().floatValue(), 0.00001); + } + + @Test + public void loadChecks_byOres() { + Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("check-3"); + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-8", 2352l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId = UUID.randomUUID().toString(); + DBCheckbox checkbox = checkboxManager.createDBCheckbox(checkboxId, ores, resSubPath); + //create a check + DBCheck check = checkboxManager.createCheck(checkbox, id, null, Boolean.TRUE); + dbInstance.commitAndCloseSession(); + + //load the check + List<DBCheck> loadedChecks = checkboxManager.loadCheck(id, ores, resSubPath); + Assert.assertNotNull(loadedChecks); + Assert.assertEquals(1, loadedChecks.size()); + Assert.assertEquals(check, loadedChecks.get(0)); + } + + @Test + public void testCheck() { + Identity id = JunitTestHelper.createAndPersistIdentityAsRndUser("check-2"); + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-6", 2350l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId = UUID.randomUUID().toString(); + DBCheckbox checkbox = checkboxManager.createDBCheckbox(checkboxId, ores, resSubPath); + dbInstance.commitAndCloseSession(); + + //check + checkboxManager.check(checkbox, id, new Float(1.515), Boolean.FALSE); + dbInstance.commitAndCloseSession(); + + //load the check + DBCheck loadedCheck = checkboxManager.loadCheck(checkbox, id); + //paranoia check + Assert.assertNotNull(loadedCheck); + Assert.assertEquals(id, loadedCheck.getIdentity()); + Assert.assertEquals(checkbox, loadedCheck.getCheckbox()); + Assert.assertEquals(Boolean.FALSE, loadedCheck.getChecked()); + Assert.assertEquals(1.515f, loadedCheck.getScore().floatValue(), 0.00001); + } + + @Test + public void loadAssessmentDatas() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-4"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-5"); + Identity id3 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-6"); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-9", 2353l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId1 = UUID.randomUUID().toString(); + DBCheckbox checkbox1 = checkboxManager.createDBCheckbox(checkboxId1, ores, resSubPath); + String checkboxId2 = UUID.randomUUID().toString(); + DBCheckbox checkbox2 = checkboxManager.createDBCheckbox(checkboxId2, ores, resSubPath); + //create a check + DBCheck check1_1 = checkboxManager.createCheck(checkbox1, id1, null, Boolean.TRUE); + DBCheck check1_2 = checkboxManager.createCheck(checkbox2, id1, null, Boolean.TRUE); + DBCheck check2_1 = checkboxManager.createCheck(checkbox1, id2, null, Boolean.TRUE); + DBCheck check3_1 = checkboxManager.createCheck(checkbox1, id3, null, Boolean.TRUE); + DBCheck check3_2 = checkboxManager.createCheck(checkbox2, id3, null, Boolean.TRUE); + dbInstance.commitAndCloseSession(); + + //load the check + List<AssessmentData> loadedChecks = checkboxManager.getAssessmentDatas(ores, resSubPath, null); + Assert.assertNotNull(loadedChecks); + Assert.assertEquals(3, loadedChecks.size()); + + List<DBCheck> collectedChecks = new ArrayList<>(); + for(AssessmentData loadedCheck:loadedChecks) { + for(DBCheck loaded:loadedCheck.getChecks()) { + collectedChecks.add(loaded); + } + } + + Assert.assertEquals(5, collectedChecks.size()); + Assert.assertTrue(collectedChecks.contains(check1_1)); + Assert.assertTrue(collectedChecks.contains(check1_2)); + Assert.assertTrue(collectedChecks.contains(check2_1)); + Assert.assertTrue(collectedChecks.contains(check3_1)); + Assert.assertTrue(collectedChecks.contains(check3_2)); + } + + @Test + public void countChecked() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-7"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-8"); + Identity id3 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-12"); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-10", 2354l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId1 = UUID.randomUUID().toString(); + DBCheckbox checkbox1 = checkboxManager.createDBCheckbox(checkboxId1, ores, resSubPath); + String checkboxId2 = UUID.randomUUID().toString(); + DBCheckbox checkbox2 = checkboxManager.createDBCheckbox(checkboxId2, ores, resSubPath); + String checkboxId3 = UUID.randomUUID().toString(); + DBCheckbox checkbox3 = checkboxManager.createDBCheckbox(checkboxId3, ores, resSubPath); + String checkboxId4 = UUID.randomUUID().toString(); + DBCheckbox checkbox4 = checkboxManager.createDBCheckbox(checkboxId4, ores, resSubPath); + //create a check + checkboxManager.createCheck(checkbox1, id1, null, Boolean.TRUE); + checkboxManager.createCheck(checkbox2, id1, null, Boolean.TRUE); + checkboxManager.createCheck(checkbox1, id2, null, Boolean.TRUE); + checkboxManager.createCheck(checkbox3, id2, null, Boolean.TRUE); + checkboxManager.createCheck(checkbox4, id2, null, Boolean.TRUE); + dbInstance.commitAndCloseSession(); + + //count the checks + int id1Checked = checkboxManager.countChecked(id1, ores, resSubPath); + Assert.assertEquals(2, id1Checked); + + int id2Checked = checkboxManager.countChecked(id2, ores, resSubPath); + Assert.assertEquals(3, id2Checked); + + int id3Checked = checkboxManager.countChecked(id3, ores, resSubPath); + Assert.assertEquals(0, id3Checked); + } + + @Test + public void calculateScore() { + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-9"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-10"); + Identity id3 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-11"); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-10", 2355l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId1 = UUID.randomUUID().toString(); + DBCheckbox checkbox1 = checkboxManager.createDBCheckbox(checkboxId1, ores, resSubPath); + String checkboxId2 = UUID.randomUUID().toString(); + DBCheckbox checkbox2 = checkboxManager.createDBCheckbox(checkboxId2, ores, resSubPath); + String checkboxId3 = UUID.randomUUID().toString(); + DBCheckbox checkbox3 = checkboxManager.createDBCheckbox(checkboxId3, ores, resSubPath); + String checkboxId4 = UUID.randomUUID().toString(); + DBCheckbox checkbox4 = checkboxManager.createDBCheckbox(checkboxId4, ores, resSubPath); + //create a check + checkboxManager.createCheck(checkbox1, id1, 3.0f, Boolean.TRUE); + checkboxManager.createCheck(checkbox2, id1, 2.0f, Boolean.TRUE); + checkboxManager.createCheck(checkbox1, id2, 4.0f, Boolean.TRUE); + checkboxManager.createCheck(checkbox3, id2, 5.5f, Boolean.TRUE); + checkboxManager.createCheck(checkbox4, id2, 1.0f, Boolean.FALSE); + dbInstance.commitAndCloseSession(); + + //count the checks + float score1 = checkboxManager.calculateScore(id1, ores, resSubPath); + Assert.assertEquals(5.0f, score1, 0.0001); + + float score2 = checkboxManager.calculateScore(id2, ores, resSubPath); + Assert.assertEquals(9.5f, score2, 0.0001); + + float score3 = checkboxManager.calculateScore(id3, ores, resSubPath); + Assert.assertEquals(0.0f, score3, 0.0001); + } + + @Test + public void calculateResource() { + //create checkbox to delete + Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-13"); + Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-14"); + Identity id3 = JunitTestHelper.createAndPersistIdentityAsRndUser("check-15"); + + OLATResourceable ores = OresHelper.createOLATResourceableInstance("checkbox-11", 2356l); + String resSubPath = UUID.randomUUID().toString(); + String checkboxId1 = UUID.randomUUID().toString(); + DBCheckbox checkbox1 = checkboxManager.createDBCheckbox(checkboxId1, ores, resSubPath); + String checkboxId2 = UUID.randomUUID().toString(); + DBCheckbox checkbox2 = checkboxManager.createDBCheckbox(checkboxId2, ores, resSubPath); + String checkboxId3 = UUID.randomUUID().toString(); + DBCheckbox checkbox3 = checkboxManager.createDBCheckbox(checkboxId3, ores, resSubPath); + //create a check + checkboxManager.createCheck(checkbox1, id1, 3.0f, Boolean.TRUE); + checkboxManager.createCheck(checkbox2, id1, 2.0f, Boolean.TRUE); + checkboxManager.createCheck(checkbox1, id2, 4.0f, Boolean.TRUE); + checkboxManager.createCheck(checkbox3, id2, 5.5f, Boolean.TRUE); + checkboxManager.createCheck(checkbox3, id3, 1.0f, Boolean.FALSE); + dbInstance.commitAndCloseSession(); + + //create a reference which must stay + OLATResourceable oresRef = OresHelper.createOLATResourceableInstance("checkbox-12", 2357l); + String resSubPathRef = UUID.randomUUID().toString(); + String checkboxIdRef = UUID.randomUUID().toString(); + DBCheckbox checkboxRef = checkboxManager.createDBCheckbox(checkboxIdRef, oresRef, resSubPathRef); + checkboxManager.createCheck(checkboxRef, id1, 3.0f, Boolean.TRUE); + checkboxManager.createCheck(checkboxRef, id3, 2.0f, Boolean.TRUE); + dbInstance.commitAndCloseSession(); + + //delete all checks and checklist of the resource + checkboxManager.deleteCheckbox(ores, resSubPath); + dbInstance.commitAndCloseSession(); + + //verify id1 + List<DBCheck> checksId1 = checkboxManager.loadCheck(id1, ores, resSubPath); + Assert.assertNotNull(checksId1); + Assert.assertEquals(0, checksId1.size()); + List<DBCheck> checksId1Ref = checkboxManager.loadCheck(id1, oresRef, resSubPathRef); + Assert.assertNotNull(checksId1Ref); + Assert.assertEquals(1, checksId1Ref.size()); + //verify id2 + List<DBCheck> checksId2 = checkboxManager.loadCheck(id2, ores, resSubPath); + Assert.assertNotNull(checksId2); + Assert.assertEquals(0, checksId2.size()); + List<DBCheck> checksId2Ref = checkboxManager.loadCheck(id2, oresRef, resSubPathRef); + Assert.assertNotNull(checksId2Ref); + Assert.assertEquals(0, checksId2Ref.size()); + //verify id3 + List<DBCheck> checksId3 = checkboxManager.loadCheck(id3, ores, resSubPath); + Assert.assertNotNull(checksId3); + Assert.assertEquals(0, checksId3.size()); + List<DBCheck> checksId3Ref = checkboxManager.loadCheck(id3, oresRef, resSubPathRef); + Assert.assertNotNull(checksId3Ref); + Assert.assertEquals(1, checksId3Ref.size()); + } +}