diff --git a/pom.xml b/pom.xml
index 1b9cfd8ff6b82bcce6eafef0719e7c5f14ba74f1..359e39ed828ff910954a4cf6eaedb922856dcae7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,38 +125,43 @@
 		        <version>1.3.0</version>
 		        <executions>
 		          <execution>
+                <phase>process-resources</phase>
 		            <goals>
 		              <goal>compress</goal>
 		            </goals>
 		          </execution>
 		        </executions>        
 		        <configuration>
-		          <nosuffix>true</nosuffix>
-		          <sourceDirectory>src/main/webapp/static/js/jquery</sourceDirectory>
+          		<suffix>.min</suffix>
+          		<force>true</force>
+		          <encoding>UTF-8</encoding>
     					<outputDirectory>${basedir}/target/jquery</outputDirectory>
+    					<sourceDirectory>${project.build.sourceDirectory}/../js</sourceDirectory>
+    					<!-- 
     					<excludes>
-		            <exclude>${basedir}/src/**/*.js</exclude>
+		            <exclude>**/*</exclude>
 		        	</excludes>
+		        	-->
+		        	<includes>
+		            <include>${basedir}/src/main/webapp/static/js/jquery/openolat/jquery.oolog.js</include>
+		           	<include>${basedir}/src/main/webapp/static/js/jquery/openolat/jquery.translator.js</include>
+		         		<include>${basedir}/src/main/webapp/static/js/jquery/periodic/jquery.periodic.js</include>
+		          	<include>${basedir}/src/main/webapp/static/js/jquery/tagit/tag-it.js</include>
+		          </includes>
+		          <!-- 
 		          <aggregations>
 		            <aggregation>
-		              <!-- insert new line after each concatenation (default: false) -->
-		              <insertNewLine>true</insertNewLine>
-		              <inputDir>${basedir}/src/main/webapp/static/js/jquery</inputDir>
-		              <output>${basedir}/target/jquery/all.js</output>
-		              <!-- files to include, path relative to output's directory or absolute path-->
-		              <!--inputDir>base directory for non absolute includes, default to parent dir of output</inputDir-->
+		            	<output>${basedir}/src/main/webapp/static/js/jquery/jquery.all.js</output>
+                	<removeIncluded>false</removeIncluded>
 		              <includes>
-		                <include>openolat/jquery.oolog.js</include>
-		                <include>openolat/jquery.translator.js</include>
+		                <include>${basedir}/src/main/webapp/static/js/jquery/openolat/jquery.oolog.js</include>
+		                <include>${basedir}/src/main/webapp/static/js/jquery/openolat/jquery.translator.js</include>
+		                <include>${basedir}/src/main/webapp/static/js/jquery/periodic/jquery.periodic.js</include>
+		                <include>${basedir}/src/main/webapp/static/js/jquery/tagit/tag-it.js</include>
 		              </includes>
-		              <!-- files to exclude, path relative to output's directory -->
-		              <excludes>
-		                <exclude>*.min.js</exclude>
-		                <exclude>*.js</exclude>
-		                <exclude>*.css</exclude>
-		              </excludes>
 		            </aggregation>
 		          </aggregations>
+		          -->
 		        </configuration>
 		      </plugin>
 				</plugins>
diff --git a/src/main/java/org/olat/admin/user/UserSearchFlexiTableModel.java b/src/main/java/org/olat/admin/user/UserSearchFlexiTableModel.java
index 4c90d53ded3e2044302d0c8d9c8983cfb25a7206..50faaf416619ea4b49713064bdd8fbc6d2df4e93 100644
--- a/src/main/java/org/olat/admin/user/UserSearchFlexiTableModel.java
+++ b/src/main/java/org/olat/admin/user/UserSearchFlexiTableModel.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel;
 import org.olat.core.gui.components.table.DefaultTableDataModel;
@@ -58,7 +59,7 @@ public class UserSearchFlexiTableModel extends DefaultTableDataModel<UserResultW
 	}
 	
 	@Override
-	public void load(int firstResult, int maxResults) {
+	public void load(int firstResult, int maxResults, SortKey... sortedCol) {
 		//already loaded
 	}
 
diff --git a/src/main/java/org/olat/admin/user/groups/GroupSearchController.java b/src/main/java/org/olat/admin/user/groups/GroupSearchController.java
index bf16ac25b3c52adc42e5daa5908fecca8cc7cca1..6a986062f6b9594fc6f31d2f036da2fdc3442e40 100644
--- a/src/main/java/org/olat/admin/user/groups/GroupSearchController.java
+++ b/src/main/java/org/olat/admin/user/groups/GroupSearchController.java
@@ -25,6 +25,7 @@ import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.PersistenceHelper;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
@@ -384,7 +385,7 @@ public class GroupSearchController extends StepFormBasicController {
 		}
 		
 		@Override
-		public void load(int firstResult, int maxResults) {
+		public void load(int firstResult, int maxResults, SortKey... orderBy) {
 			//already loaded
 		}
 
diff --git a/src/main/java/org/olat/catalog/ui/_content/catalog.html b/src/main/java/org/olat/catalog/ui/_content/catalog.html
index 90bb528300a67bf3837dc91d3f6a7940baf1a2c5..8f0e4e517c8078c61a155037420e5fa5afa8d015 100644
--- a/src/main/java/org/olat/catalog/ui/_content/catalog.html
+++ b/src/main/java/org/olat/catalog/ui/_content/catalog.html
@@ -102,7 +102,7 @@
 								</div>
 <script type="text/javascript">
 /* <![CDATA[ */
-jQuery(document).ready(function() {
+jQuery(function() {
 	jQuery('#leaf$ri').tooltip({
 		items: "span",
 		content: function(){ return jQuery('#o_tooltip_$ri').html(); }	
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_content/body.html b/src/main/java/org/olat/core/commons/chiefcontrollers/_content/body.html
index dc1172a611739377ac16765c64a5fd7538b7b1f4..e0c3bbd1fe2e43dfecad335178e0cb0ac47b825b 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/_content/body.html
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_content/body.html
@@ -59,10 +59,11 @@ function b_start(){
 /* ]]> */
 </script>
 <script type="text/javascript" src='$r.staticLink("js/jquery/jquery-migrate-1.0.0.min.js")'></script>
-<script type="text/javascript" src='$r.staticLink("js/jquery/jquery-ui-1.10.0.custom.min.js")'></script>
-<link type="text/css" href='$r.staticLink("js/jquery/jquery-ui.css")' rel="stylesheet"/>
+<script type="text/javascript" src='$r.staticLink("js/jquery/ui/jquery-ui-1.10.0.custom.min.js")'></script>
+<link type="text/css" href='$r.staticLink("js/jquery/ui/jquery-ui-1.10.0.custom.min.css")' rel="stylesheet"/>
 <script type="text/javascript" src='$r.staticLink("js/jquery/periodic/jquery.periodic.js")'></script>
 <script type="text/javascript" src='$r.staticLink("js/jquery/datatables/jquery.dataTables.min.js")'></script>
+<link type="text/css" href='$r.staticLink("js/jquery/datatables/css/jquery.dataTables.css")' rel="stylesheet"/>
 
 <script type="text/javascript" src='$r.staticLink("js/jshashtable-2.1_src.js")'></script>
 <script type="text/javascript" src='$r.staticLink("js/jsMath/easy/load.js")'></script>
@@ -142,7 +143,7 @@ $r.render("olatContentPanel")
 <script type="text/javascript">
 /* <![CDATA[ */ 
 // init size and listen to text resize events
-jQuery(document).ready(function() {
+jQuery(function() {
 	b_initEmPxFactor(); /*Ext.EventManager.onTextResize(b_initEmPxFactor) */
 });
 /* ]]> */
diff --git a/src/main/java/org/olat/core/commons/persistence/PersistenceHelper.java b/src/main/java/org/olat/core/commons/persistence/PersistenceHelper.java
index 5b069725bbd0b5c32fd2a5a0cc9c386ce79ea816..545e1ad801115b69b2589f627523e42e08a16ec8 100644
--- a/src/main/java/org/olat/core/commons/persistence/PersistenceHelper.java
+++ b/src/main/java/org/olat/core/commons/persistence/PersistenceHelper.java
@@ -106,6 +106,20 @@ public class PersistenceHelper {
 		}
 		return result;
 	}
+	
+	public static void appendGroupBy(StringBuilder sb, String dbRef, SortKey... orderBy) {
+		if(orderBy != null && orderBy.length > 0 && orderBy[0] != null) {
+			sb.append(" order by ");
+			for(SortKey sort:orderBy) {
+				sb.append(dbRef).append(".").append(sort.getKey());
+				if(sort.isAsc()) {
+					sb.append(" asc ");
+				} else {
+					sb.append(" desc ");
+				}
+			}
+		}
+	}
 
 	/**
 	 * 
diff --git a/src/main/java/org/olat/core/commons/persistence/SortKey.java b/src/main/java/org/olat/core/commons/persistence/SortKey.java
new file mode 100644
index 0000000000000000000000000000000000000000..0902299f7103f24ed3078bdfbad81cf881f9b398
--- /dev/null
+++ b/src/main/java/org/olat/core/commons/persistence/SortKey.java
@@ -0,0 +1,57 @@
+/**
+ * <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.commons.persistence;
+
+/**
+ * 
+ * Initial date: 13.02.2013<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class SortKey {
+
+	private boolean asc;
+	private String key;
+	
+	public SortKey() {
+		//
+	}
+	
+	public SortKey(String key, boolean asc) {
+		this.key = key;
+		this.asc = asc;
+	}
+	
+	public boolean isAsc() {
+		return asc;
+	}
+	
+	public void setAsc(boolean asc) {
+		this.asc = asc;
+	}
+	
+	public String getKey() {
+		return key;
+	}
+	
+	public void setKey(String key) {
+		this.key = key;
+	}
+}
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 29b5f41c54cfe4d0503ab009750b7f4c72ed6c18..cffb150310eff1eec510c5c2ac514b42de396031 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
@@ -25,6 +25,8 @@
 */ 
 package org.olat.core.gui.components.form.flexible.elements;
 
+import java.util.Set;
+
 import org.olat.core.gui.components.form.flexible.FormItem;
 
 /**
@@ -34,6 +36,19 @@ public interface FlexiTableElement extends FormItem {
 
 	public static final String ROM_SELECT_EVENT = "rSelect";
 	
+
+	public boolean isMultiSelect();
+	
+	public Set<Integer> getMultiSelectedIndex();
+	
+	public boolean isMultiSelectedIndex(int index);
+	
+	/**
+	 * Enable multi-selection
+	 * @return
+	 */
+	public void setMultiSelect(boolean enable);
+	
 	
 	public int getPageSize();
 	
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormItemImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormItemImpl.java
index eff4ca063d1a41960c1624de9879e48b02c41f82..bfe387bac0c4b52fb8ded39f0111f3da68b7171d 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormItemImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormItemImpl.java
@@ -582,7 +582,9 @@ public abstract class FormItemImpl implements FormItem, InlineElement {
 	/**
 	 * @see org.olat.core.gui.components.form.flexible.FormComponent#validate(java.util.List)
 	 */
-	public abstract void validate(List<ValidationStatus> validationResults);
+	public void validate(List<ValidationStatus> validationResults) {
+		
+	}
 
 	/**
 	 * @see org.olat.core.gui.components.form.flexible.FormItem#reset()
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java
index 7fea36d4ef9cf4e32efcb64522ee294e29a9c23c..c576cfeeef0a79a03a60dc65aaa77fd70f8f7b26 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java
@@ -141,7 +141,7 @@ class TextAreaElementRenderer implements ComponentRenderer {
 
 		// resize element to fit content
 		if (teC.isAutoHeightEnabled()) {
-			sb.append("<script type='text/javascript'>jQuery(document).ready(function(){try{var iter=0; var obj=$('");
+			sb.append("<script type='text/javascript'>jQuery(function(){try{var iter=0; var obj=$('");
 			sb.append(id);
 			if (!source.isEnabled()) sb.append("_disabled");			
 			sb.append("');while (obj.scrollHeight>obj.offsetHeight && iter < 99){ iter++; obj.rows = obj.rows + 1}} catch(e){}});</script>");
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 22dfabe607101a5e4c6e332c6e218e2bdf845e70..22b9c759eee68d1d14a787ef1a7331733c0b1357 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
@@ -33,21 +33,54 @@ package org.olat.core.gui.components.form.flexible.impl.elements.table;
  */
 public class DefaultFlexiColumnModel implements FlexiColumnModel {
 
-	
 	private String headerKey;
+
+	private boolean sortable;
+	private String sortedKey;
+	
 	private int alignment;
 	private FlexiCellRenderer cellRenderer;
 
 	public DefaultFlexiColumnModel(String headerKey) {
+		this(headerKey, false, null);
+	}
+	
+	public DefaultFlexiColumnModel(String headerKey, boolean sortable, String sortKey) {
+		this(headerKey, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT,  new TextFlexiCellRenderer());
+	}
+	
+	public DefaultFlexiColumnModel(String headerKey, boolean sortable, String sortKey, int alignment, FlexiCellRenderer cellRenderer) {
+		this.sortable = sortable;
+		this.sortedKey = sortKey;
 		this.headerKey = headerKey;
-		this.alignment = FlexiColumnModel.ALIGNMENT_LEFT;
-		this.cellRenderer = new TextFlexiCellRenderer();
+		this.alignment = alignment;
+		this.cellRenderer = cellRenderer;
 	}
 	
 	public String getHeaderKey() {
 		return headerKey;
 	}
 
+	@Override
+	public boolean isSortable() {
+		return sortable;
+	}
+
+	@Override
+	public void setSortable(boolean enable) {
+		sortable = enable;
+	}
+
+	@Override
+	public String getSortKey() {
+		return sortedKey;
+	}
+
+	@Override
+	public void setSortKey(String sortedKey) {
+		this.sortedKey = sortedKey;
+	}
+
 	public int getAlignment() {
 		return alignment;
 	}
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 794b6ee315abc64e28df8d8ef8b340b849385b71..35c8711cad8326aa6b02bbfeadd1d4101a19245a 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
@@ -36,6 +36,14 @@ public interface FlexiColumnModel {
 	public static int ALIGNMENT_LEFT = 1;
 	public static int ALIGNMENT_RIGHT = 2;
 	public static int ALIGNMENT_CENTER = 3;
+	
+	public boolean isSortable();
+	
+	public void setSortable(boolean enable);
+	
+	public String getSortKey();
+
+	public void setSortKey(String sortedKey);
 
 	public String getHeaderKey();
 
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModel.java
index 6f7d06fb9935883029d0b1379020b2a912c3b33a..c687835c3f3a5217862a96b0c60f8af6d1a64ed5 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModel.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModel.java
@@ -26,6 +26,8 @@
 
 package org.olat.core.gui.components.form.flexible.impl.elements.table;
 
+import org.olat.core.commons.persistence.SortKey;
+
 /**
  * Interface for table data model including column models.
  * @author Christian Guretzki
@@ -42,7 +44,7 @@ public interface FlexiTableDataModel {
 	 * @param firstResult
 	 * @param maxResults
 	 */
-	public void load(int firstResult, int maxResults);
+	public void load(int firstResult, int maxResults, SortKey... orderBy);
 
 	/**
 	 * Return Object for certain table cell.
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModelImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModelImpl.java
index f7179b6c65bed07c3a43717dbd523371bb9c86d1..549c65433fe524bb056ee928cb05ddbcab04ab6d 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModelImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModelImpl.java
@@ -26,6 +26,7 @@
 
 package org.olat.core.gui.components.form.flexible.impl.elements.table;
 
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.gui.components.table.TableDataModel;
 
 /**
@@ -59,7 +60,7 @@ public class FlexiTableDataModelImpl<T> implements FlexiTableDataModel {
 	}
 
 	@Override
-	public void load(int firstResult, int maxResults) {
+	public void load(int firstResult, int maxResults, SortKey... orderby) {
 		//already loaded
 	}
 
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 05b66800b3b1186b05d1b9b08b7e852f6386f865..39eb0c1c6337d1f72b25eaf6e2406164b2ae4dde 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
@@ -25,9 +25,12 @@
 */ 
 package org.olat.core.gui.components.form.flexible.impl.elements.table;
 
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.dispatcher.mapper.MapperService;
@@ -49,6 +52,9 @@ import org.olat.core.util.ValidationStatus;
  */
 public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableElement, FormItemCollection {
 
+	//settings
+	private boolean multiSelect;
+	
 	private int rowCount = -1;
 	private int pageSize;
 	
@@ -56,6 +62,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 	private FlexiTableComponent component;
 	private String mapperUrl;
 	
+	private Set<Integer> multiSelectedIndex;
 	private Map<String,FormItem> components = new HashMap<String,FormItem>();
 	
 	public FlexiTableElementImpl(UserRequest ureq, String name, FlexiTableDataModel tableModel) {
@@ -79,6 +86,13 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		}
 	}
 	
+	public boolean isMultiSelect() {
+		return multiSelect;
+	}
+	public void setMultiSelect(boolean multiSelect) {
+		this.multiSelect = multiSelect;
+	}
+	
 	@Override
 	public int getPageSize() {
 		return pageSize;
@@ -117,6 +131,11 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 	 */
 	@Override
 	public void evalFormRequest(UserRequest ureq) {
+		String[] selectedIndexArr = getRootForm().getRequestParameterValues("ftb_ms");
+		if(selectedIndexArr != null) {
+			setMultiSelectIndex(selectedIndexArr);
+		}
+
 		String selectedIndex = getRootForm().getRequestParameter("select");
 		if(StringHelper.containsNonWhitespace(selectedIndex)) {
 			int index = selectedIndex.lastIndexOf('-');
@@ -138,6 +157,37 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 	protected void doSelect(UserRequest ureq, int index) {
 		getRootForm().fireFormEvent(ureq, new SelectionEvent(ROM_SELECT_EVENT, index, this, FormEvent.ONCLICK));
 	}
+	
+	public Set<Integer> getMultiSelectedIndex() {
+		return multiSelectedIndex == null ? Collections.<Integer>emptySet() : multiSelectedIndex;
+	}
+	
+	public boolean isMultiSelectedIndex(int index) {
+		if(multiSelectedIndex == null) {
+			return false;
+		}
+		return multiSelectedIndex.contains(new Integer(index));
+	}
+	
+	protected void setMultiSelectIndex(String[] selections) {
+		if(multiSelectedIndex == null) {
+			multiSelectedIndex = new HashSet<Integer>();
+		}
+		multiSelectedIndex.clear();
+		//selection format row_{formDispId}-{index}
+		if(selections.length > 0) {
+			int index = selections[0].lastIndexOf('-');
+			if(index > 0) {
+				for(String selection:selections) {	
+					if(index > 0 && index+1 < selection.length()) {
+						String rowStr = selection.substring(index+1);
+						int row = Integer.parseInt(rowStr);
+						multiSelectedIndex.add(new Integer(row));
+					}
+				}
+			}
+		}
+	}
 
 	@Override
 	public void validate(List<ValidationStatus> validationResults) {
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 a1ee3117da3f5e9c1ea53848c511ef85dfffc3cc..b88e6e93291b1351c5e231f45871a8042542a396 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
@@ -25,9 +25,9 @@ import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.dispatcher.mapper.Mapper;
 import org.olat.core.gui.Windows;
-import org.olat.core.gui.components.Window;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.control.ChiefController;
 import org.olat.core.gui.media.JSONMediaResource;
@@ -61,10 +61,26 @@ public class FlexiTableModelMapper implements Mapper {
 		String firstRowStr = request.getParameter("iDisplayStart");
 		String maxRowStr = request.getParameter("iDisplayLength");
 		String echo = request.getParameter("sEcho");
-
+		String sortCol = request.getParameter("iSortCol_0");
+		String sortDir = request.getParameter("sSortDir_0");
 		
+		int sortedColIndex = -1;
+		if(StringHelper.containsNonWhitespace(sortCol)) {
+			sortedColIndex = Integer.parseInt(sortCol);
+			if(ftE.isMultiSelect()) {
+				sortedColIndex--;
+			}
+		}
+
 		if(StringHelper.isLong(firstRowStr) && StringHelper.isLong(maxRowStr)) {
 			FlexiTableDataModel model = ftE.getTableDataModel();
+			FlexiTableColumnModel columnModel = model.getTableColumnModel();
+			
+			SortKey orderBy = null;
+			if(sortedColIndex >= 0 && sortedColIndex < columnModel.getColumnCount()) {
+				FlexiColumnModel sortedColumn = model.getTableColumnModel().getColumnModel(sortedColIndex);
+				orderBy = new SortKey(sortedColumn.getSortKey(), "asc".equals(sortDir));
+			}
 
 			int rows = ftE.getTableDataModel().getRowCount();
 			String dispatchId = ftE.getComponent().getDispatchID();
@@ -83,8 +99,8 @@ public class FlexiTableModelMapper implements Mapper {
 				int maxRows = Integer.parseInt(maxRowStr);
 				int lastRow = Math.min(rows, firstRow + maxRows);
 				//paged loading
-				model.load(firstRow, maxRows);
-				
+				model.load(firstRow, maxRows, orderBy);
+
 				for (int i = firstRow; i < lastRow; i++) {
 					JSONObject row = new JSONObject();
 					
@@ -100,6 +116,16 @@ public class FlexiTableModelMapper implements Mapper {
 					}
 					ftE.addFormItem(select);
 					ftE.addFormItem(mark);
+					
+					if(ftE.isMultiSelect()) {
+						StringBuilder sb = new StringBuilder();
+						sb.append("<input type='checkbox' name='ftb_ms' value='").append(rowIdPrefix).append(i).append("'");
+						if(ftE.isMultiSelectedIndex(i)) {
+							sb.append(" checked='checked'");
+						}   
+						sb.append(">");
+						row.put("choice", sb.toString());
+					}
 
 					row.put("key", key);
 					row.put("subject", subject);
@@ -125,7 +151,6 @@ public class FlexiTableModelMapper implements Mapper {
 	private String renderFormItem(FormItem item, HttpServletRequest request, Translator translator) {
 		UserSession usess = CoreSpringFactory.getImpl(UserSessionManager.class).getUserSession(request);
 		ChiefController cc = (ChiefController)Windows.getWindows(usess).getAttribute("AUTHCHIEFCONTROLLER");
-		Window w = cc.getWindow();
-		return w.renderComponent(item.getComponent());
+		return cc.getWindow().renderComponent(item.getComponent());
 	}
 }
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableRenderer.java
index 87c536e2b74a540addd5d8dbd5082edc4992e097..bed04eb0d64abe56257be3aa4d947f457db41e82 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableRenderer.java
@@ -58,48 +58,135 @@ class FlexiTableRenderer implements ComponentRenderer {
 		//
 		FlexiTableComponent ftC = (FlexiTableComponent) source;
 		FlexiTableElementImpl ftE = ftC.getFlexiTableElement();
+		FlexiTableDataModel dataModel = ftE.getTableDataModel();
+		
 		Form rootForm = ftE.getRootForm();
 		String id = ftC.getFormDispatchId();
-		//
-		if (!source.isEnabled()) {
-			// read only view
-			// ...
-		} else {
-			// read write view
-			// ...
-		}
-		target.append("<div class=\"b_table_wrapper b_floatscrollbox\">");// TODO:cg: ev add $!tableConfig.getCustomCssClass()
-		
-		// starting real table table
-		target.append("<table id=\"").append(id).append("\">");
 
-		int rows = ftE.getTableDataModel().getRowCount();
-		int cols = ftE.getTableDataModel().getTableColumnModel().getColumnCount();
+		target.append("<div class=\"b_table_wrapper b_floatscrollbox\">")
+		      .append("<table id=\"").append(id).append("\">");
+		      
+		renderTHead(target, ftE, translator);
+		renderTBody(renderer, target, ftC, ubu, translator, renderResult);
 
-		// 1. build header links
+		target.append("</table>")
+		       .append("</div>");
+		
+		if (source.isEnabled()) {
+			target.append(FormJSHelper.getJSStartWithVarDeclaration(id));
+			target.append(FormJSHelper.getSetFlexiFormDirty(ftE.getRootForm(), id));
+			target.append(FormJSHelper.getJSEnd());
+		}
+		
+		int rows = dataModel.getRowCount();
+		
+		target.append("<script>")
+		  .append("jQuery(function() {\n")
+      .append("	jQuery('#").append(id).append("').dataTable( {\n")
+      .append("		'bScrollInfinite': true,\n")
+      .append("		'bScrollCollapse': true,\n")
+      .append("		'sScrollY': '200px',\n")
+      .append("		'bProcessing': true,\n")
+      .append("		'bServerSide': true,\n")
+      .append("		'iDisplayLength': 20,\n")
+      .append("		'iDeferLoading': ").append(rows).append(",\n")
+      .append("		'sAjaxSource': '").append(ftE.getMapperUrl()).append("',\n")
+      .append("		'fnRowCallback': function( nRow, aData, iDisplayIndex ) {\n")
+      .append("			jQuery(nRow).draggable({ ")
+      .append("				containment: '#b_main',")
+      .append("				accept: function(event,ui){ console.log('Accept'); return true; },\n")
+      .append("				helper: function(event) {\n")
+      .append("				  return jQuery(\"<div class='ui-widget-header' style='z-index:10000;'>I'm a custom helper</div>\");\n")
+      .append("				},\n")
+      .append("				start: function(event,ui){ console.log('Start'); },\n")
+      .append("				stop: function(event,ui){ console.log('Stop'); }\n")
+      .append("			});\n")
+      .append("		},\n")
+      .append("		'aoColumns': [\n")
+      .append("			{'mData':'choice', bSortable: false },\n")
+      .append("			{'mData':'key'},\n")
+      .append("			{'mData':'subject'},\n")
+      .append("			{'mData':'select', bSortable: false },\n")
+      .append("			{'mData':'mark', bSortable: false }\n")
+      .append("		]\n")
+      .append("	});\n")
+      //clic rows
+      .append("	jQuery('#").append(id).append(" tbody tr').live('click', function(event, ui) {\n")
+      .append("   var link = false;\n")
+      .append("   var rowId = null;\n")
+      .append("   if(event.target.tagName == 'A' || event.target.tagName == 'INPUT') {\n")
+      .append("     return;\n")
+      .append("   }\n")
+      .append("   jQuery(event.target).parents().each(function(index,el) {\n")
+      .append("     if(el.tagName == 'A' || el.tagName == 'INPUT') {\n")
+      .append("       link = true;\n")
+      .append("     } else if (el.tagName == 'TR' && rowId == null) {\n")
+      .append("       rowId = jQuery(el).attr('id');\n")
+      .append("       return false;\n")
+      .append("     }\n")
+      .append("   });\n")
+      .append("	  if(!link) {\n")
+      .append(FormJSHelper.generateXHRFnCallVariables(rootForm, id, 1))
+      .append("    o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt,'select',rowId);")
+      .append("   };")
+      .append("	});\n")
+      .append("});\n")
+		  .append("</script>\n");
+	}
+	
+	/**
+	 * 
+	 * @param target
+	 * @param ftE
+	 * @param translator
+	 */
+	private void renderTHead(StringOutput target, FlexiTableElementImpl ftE, Translator translator) {
+		FlexiTableDataModel dataModel = ftE.getTableDataModel();
+		FlexiTableColumnModel columnModel = dataModel.getTableColumnModel();
+		      
 		target.append("<thead><tr>");
 
-		for (int i = 0; i<cols; i++) {
-				FlexiColumnModel fcm = ftE.getTableDataModel().getTableColumnModel().getColumnModel(i);
-				String header = translator.translate(fcm.getHeaderKey());
-
-				target.append("<th class=\"");
-				// add css class for first and last column to support older browsers
-				if (i == 0) target.append(" b_first_child");
-				if (i == cols-1) target.append(" b_last_child");
-				target.append("\">");
-				target.append(header);
-				target.append("</th>");
+		int col = 0;
+		if(ftE.isMultiSelect()) {
+			target.append("<th class='b_first_child'>").append("choice").append("</th>");
+			col++;
+		}
+		
+		int cols = columnModel.getColumnCount();
+		for(int i=0; i<cols; i++) {
+			FlexiColumnModel fcm = columnModel.getColumnModel(i);
+			String header = translator.translate(fcm.getHeaderKey());
+				
+			target.append("<th class=\"");
+			// add css class for first and last column to support older browsers
+			if (col == 0) target.append(" b_first_child");
+			if (col == cols-1) target.append(" b_last_child");
+			target.append("\">").append(header).append("</th>");
+			col++;
   	}
 		target.append("</tr></thead>");
+	}
+	
+	public void renderTBody(Renderer renderer, StringOutput target, FlexiTableComponent ftC,
+			URLBuilder ubu, Translator translator, RenderResult renderResult) {
+		
+		String id = ftC.getFormDispatchId();
+		FlexiTableElementImpl ftE = ftC.getFlexiTableElement();
+		FlexiTableDataModel dataModel = ftE.getTableDataModel();
+		FlexiTableColumnModel columnModel = dataModel.getTableColumnModel();
 
 		// build rows
 		target.append("<tbody>");
-		// the really selected rowid (from the tabledatamodel)
 		
+		// the really selected rowid (from the tabledatamodel)
 		int firstRow = ftE.getFirstRow();
 		int maxRows = ftE.getMaxRows();
+		int rows = dataModel.getRowCount();
 		int lastRow = Math.min(rows, firstRow + maxRows);
+		int cols = columnModel.getColumnCount();
+		
+		String rowIdPrefix = "row_" + id + "-";
+		
 		for (int i = firstRow; i < lastRow; i++) {
 			// use alternating css class
 			String cssClass;
@@ -109,17 +196,29 @@ class FlexiTableRenderer implements ComponentRenderer {
 			if (i == 0) cssClass += " b_first_child";
 			if (i == rows-1) cssClass += " b_last_child";
 
-			target.append("<tr id='row_").append(id).append("-").append(i)
+			target.append("<tr id='").append(rowIdPrefix).append(i)
 			      .append("' class=\"").append(cssClass).append("\">");
+			
+			int col = 0;
+			if(ftE.isMultiSelect()) {
+				target.append("<td class='b_first_child'>")
+				      .append("<input type='checkbox' name='ftb_ms' value='").append(rowIdPrefix).append(i).append("'");
+				if(ftE.isMultiSelectedIndex(i)) {
+					target.append(" checked='checked'");
+				}   
+				target.append("/></td>");
+				col++;
+			}
+			
 			for (int j = 0; j < cols; j++) {
 				FlexiColumnModel fcm = ftE.getTableDataModel().getTableColumnModel().getColumnModel(j);
 				int alignment = fcm.getAlignment();
 				cssClass = (alignment == FlexiColumnModel.ALIGNMENT_LEFT ? "b_align_normal" : (alignment == FlexiColumnModel.ALIGNMENT_RIGHT ? "b_align_inverse" : "b_align_center"));
 				// add css class for first and last column to support older browsers
-				if (j == 0) cssClass += " b_first_child";
-				if (j == cols-1) cssClass += " b_last_child";				
+				if (col == 0) cssClass += " b_first_child";
+				if (col == cols-1) cssClass += " b_last_child";				
 				target.append("<td class=\"").append(cssClass).append("\">");
-				if (j == 0) target.append("<a name=\"table\"></a>"); //add once for accessabillitykey
+				if (col == 0) target.append("<a name=\"table\"></a>"); //add once for accessabillitykey
 				
 				Object cellValue = ftE.getTableDataModel().getValueAt(i, j);
 				if (cellValue instanceof FormItem) {
@@ -128,7 +227,8 @@ class FlexiTableRenderer implements ComponentRenderer {
 					if(ftE.getRootForm() != formItem.getRootForm()) {
 						formItem.setRootForm(ftE.getRootForm());
 					}
-					formItem.getComponent().getHTMLRendererSingleton().render(renderer, target, formItem.getComponent(), ubu, translator, renderResult, args);
+					formItem.getComponent().getHTMLRendererSingleton().render(renderer, target, formItem.getComponent(),
+							ubu, translator, renderResult, null);
 					ftE.addFormItem(formItem);
 				} else {
 					ftE.getTableDataModel().getTableColumnModel().getColumnModel(j).
@@ -140,63 +240,7 @@ class FlexiTableRenderer implements ComponentRenderer {
 			
 		}				
 		// end of table table
-		target.append("</tbody></table>");
-		target.append("</div>");
-		
-		if (source.isEnabled()) {
-			// add set dirty form only if enabled
-			target.append(FormJSHelper.getJSStartWithVarDeclaration(id));
-			/* deactivated due OLAT-3094 and OLAT-3040
-			if (ftE.hasFocus()) {
-				target.append(FormJSHelper.getFocusFor(id));
-			}
-			*/
-			target.append(FormJSHelper.getSetFlexiFormDirty(ftE.getRootForm(), id));
-			target.append(FormJSHelper.getJSEnd());
-		}
-		
-		target.append("<script>")
-		  .append("jQuery(document).ready(function() {\n")
-      .append("	jQuery('#").append(id).append("').dataTable( {\n")
-      .append("		'bScrollInfinite': true,\n")
-      .append("		'bScrollCollapse': true,\n")
-      .append("		'sScrollY': '200px',\n")
-      .append("		'bProcessing': true,\n")
-      .append("		'bServerSide': true,\n")
-      .append("		'iDisplayLength': 20,\n")
-      .append("		'iDeferLoading': ").append(rows).append(",\n")
-      .append("		'sAjaxSource': '").append(ftE.getMapperUrl()).append("',\n")
-      .append("		'fnRowCallback': function( nRow, aData, iDisplayIndex ) {\n")
-      .append("			jQuery(nRow).draggable({ ")
-      .append("				start: function(event,ui){ console.log('Start'); },\n")
-      .append("				stop: function(event,ui){ console.log('Stop'); }\n")
-      .append("			});\n")
-      .append("		},\n")
-      .append("		'aoColumns': [\n")
-      .append("			{'mData':'key'},\n")
-      .append("			{'mData':'subject'},\n")
-      .append("			{'mData':'select'},\n")
-      .append("			{'mData':'mark'}\n")
-      .append("		]\n")
-      .append("	});\n")
-      //clic rows
-      .append("	jQuery('#").append(id).append(" tbody tr').live('click', function(event, ui) {\n")
-      .append("   var link = false;\n")
-      .append("   var rowId = null;\n")
-      .append("   jQuery(event.target).parents().each(function(index,el) {\n")
-      .append("     if(el.tagName == 'A') {")
-      .append("       link = true;\n")
-      .append("     } else if (el.tagName == 'TR' && rowId == null) {\n")
-      .append("       rowId = jQuery(el).attr('id');\n")
-      .append("     }\n")
-      .append("   });\n")
-      .append("	  if(!link) {\n")
-      .append(FormJSHelper.generateXHRFnCallVariables(rootForm, id, 1))
-      .append("    o_ffXHREvent(formNam, dispIdField, dispId, eventIdField, eventInt,'select',rowId);")
-      .append("   };")
-      .append("	});\n")
-      .append("});\n")
-		  .append("</script>\n");
+		target.append("</tbody>");
 	}
 
 	/**
diff --git a/src/main/java/org/olat/core/gui/components/tree/MenuTree.java b/src/main/java/org/olat/core/gui/components/tree/MenuTree.java
index 9e490227c5d5b5600dfa9b88372cfdcfe51663ef..92228677d4c0d9ca0865be8b531bd69b3493aea9 100644
--- a/src/main/java/org/olat/core/gui/components/tree/MenuTree.java
+++ b/src/main/java/org/olat/core/gui/components/tree/MenuTree.java
@@ -106,7 +106,8 @@ public class MenuTree extends Component {
 	private String selectedNodeId = null;
 	private Set<String> openNodeIds = new HashSet<String>();
 	private boolean expandServerOnly = true; // default is serverside menu
-	private boolean dragAndDropEnabled = false; 
+	private boolean dragEnabled = false;
+	private boolean dropEnabled = false;
 	private boolean expandSelectedNode = true;
 	private boolean rootVisible = true;
 	//fxdiff VCRP-9: drag and drop in menu tree
@@ -172,7 +173,7 @@ public class MenuTree extends Component {
 			String sneValue = ureq.getParameter(SIBLING_NODE);
 			boolean sibling = StringHelper.containsNonWhitespace(sneValue);
 			boolean atTheEnd = "end".equals(sneValue);
-			handleDropped(ureq, nodeId, targetNodeId, sibling, atTheEnd);
+			handleDropped(ureq, targetNodeId, nodeId, sibling, atTheEnd);
 		}
 	}
 	
@@ -305,9 +306,8 @@ public class MenuTree extends Component {
 	}
 	
 	@Override
-	//fxdiff VCRP-9: drag and drop in menu tree
 	public void validate(UserRequest ureq, ValidationResult vr) {
-		if(dragAndDropEnabled) {
+		if(dragEnabled || dropEnabled) {
 			dragAndDropCmp.validate(ureq, vr);
 			if(dndFeedbackUri == null && treeModel instanceof DnDTreeModel) {
 				dndFeedbackUri = CoreSpringFactory.getImpl(MapperService.class).register(ureq.getUserSession(), new DnDFeedbackMapper(this));
@@ -399,18 +399,26 @@ public class MenuTree extends Component {
 		this.expandServerOnly = expandServerOnly;
 	}
 	
+	public boolean isDragEnabled() {
+		return dragEnabled;
+	}
+
 	/**
-	 * @return Is Drag & Drop enable for the tree
+	 * @param enableDragAndDrop Enable or not drag and drop
 	 */
-	public boolean isDragAndDropEnabled() {
-		return dragAndDropEnabled;
+	public void setDragEnabled(boolean enabled) {
+		dragEnabled = enabled;
 	}
 
 	/**
-	 * @param enableDragAndDrop Enable or not drag and drop
+	 * @return Is Drag & Drop enable for the tree
 	 */
-	public void setDragAndDropEnabled(boolean dragAndDropEnabled) {
-		this.dragAndDropEnabled = dragAndDropEnabled;
+	public boolean isDropEnabled() {
+		return dropEnabled;
+	}
+	
+	public void setDropEnabled(boolean enabled) {
+		dropEnabled = enabled;
 	}
 	
 	/**
diff --git a/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java b/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java
index 8103eda259c4f9ded7f68250ec8258ffff462d2d..8cb0687156cebc277fe8a17370d649721d1aa771 100644
--- a/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java
@@ -96,7 +96,7 @@ public class MenuTreeRenderer implements ComponentRenderer {
 		
 		AJAXFlags flags = renderer.getGlobalSettings().getAjaxFlags();
 		target.append("\n<div id='dd1-ct' class='b_tree");
-		if(tree.isDragAndDropEnabled()) {
+		if(tree.isDragEnabled() || tree.isDropEnabled()) {
 			target.append(" b_dd_ct");
 		}
 		if(!tree.isRootVisible()) {
@@ -145,7 +145,7 @@ public class MenuTreeRenderer implements ComponentRenderer {
 		}
 		String ident = curRoot.getIdent();
 		target.append("\"><div id='dd").append(ident).append("' class=\"b_tree_item_wrapper");
-		if(tree.isDragAndDropEnabled()) {
+		if(tree.isDragEnabled() || tree.isDropEnabled()) {
 			target.append(" b_dd_item");
 		}
 		if(selected) {
@@ -153,7 +153,7 @@ public class MenuTreeRenderer implements ComponentRenderer {
 		}
 		target.append("\">");
 		
-		if(tree.isDragAndDropEnabled()) {
+		if(tree.isDragEnabled() || tree.isDropEnabled()) {
 			appendDragAndDropObj(curRoot, tree, target, ubu, flags);
 		}
 		
@@ -265,7 +265,7 @@ public class MenuTreeRenderer implements ComponentRenderer {
 		
 		// display title and close menu item
 		target.append("<span");
-		if(tree.isDragAndDropEnabled()) {
+		if(tree.isDragEnabled() || tree.isDropEnabled()) {
 			target.append(" class='b_dd_item' id='da").append(ident).append("'");
 		}
 		target.append(">");
@@ -280,8 +280,8 @@ public class MenuTreeRenderer implements ComponentRenderer {
 		target.append("</div>");
 		
 		//append div to drop as sibling
-		if(!renderChildren && tree.isDragAndDropEnabled()) {
-			appendSiblingDropObj(curRoot, level, tree, target, false);
+		if(!renderChildren && (tree.isDragEnabled() || tree.isDropEnabled())) {
+			appendSiblingDropObj(curRoot, level, tree, target, ubu, flags, false);
 		}
 		
 		if (renderChildren) {
@@ -289,8 +289,8 @@ public class MenuTreeRenderer implements ComponentRenderer {
 			renderChildren(target, level, curRoot, selPath, openNodeIds, ubu, flags, markedNode, tree);
 			
 			//append div to drop as sibling after the children
-			if(tree.isDragAndDropEnabled()) {
-				appendSiblingDropObj(curRoot, level, tree, target, true);
+			if(tree.isDragEnabled() || tree.isDropEnabled()) {
+				appendSiblingDropObj(curRoot, level, tree, target, ubu, flags, true);
 			}
 		}
 		
@@ -315,33 +315,43 @@ public class MenuTreeRenderer implements ComponentRenderer {
 	}
 	
 	//fxdiff VCRP-9: drag and drop in menu tree
-	private void appendSiblingDropObj(TreeNode node, int level, MenuTree tree, StringOutput target, boolean after) {
-		String id = (after ? "dt" : "ds") + node.getIdent();
-		target.append("<div id='").append(id).append("' class='b_dd_sibling b_dd_sibling_l").append(level).append("'>")
-			//.append("<script type='text/javascript'>Ext.get('").append(id).append("').dd = new Ext.dd.DDTarget('").append(id).append("','").append(dndGroup).append("');</script>")
-			.append("<script type='text/javascript'>jQuery('#").append(id)
-			.append("').droppable({hoverClass:'b_dd_over', accept: treeAcceptDrop, over: onTreeDragOver, out:onTreeDragOut, drop:onTreeDrop});</script>")
-			.append("&nbsp;&nbsp;</div>");
+	private void appendSiblingDropObj(TreeNode node, int level, MenuTree tree, StringOutput target, URLBuilder ubu, AJAXFlags flags, boolean after) {
+		if(tree.isDropEnabled()) {
+			String id = (after ? "dt" : "ds") + node.getIdent();
+			target.append("<div id='").append(id).append("' class='b_dd_sibling b_dd_sibling_l").append(level).append("'>")
+				.append("<script type='text/javascript'>jQuery('#").append(id).append("')");
+			appendDroppable(node, tree, target, ubu, flags);
+			target.append("</script>&nbsp;&nbsp;</div>");
+		}
 	}
 	
 	//fxdiff VCRP-9: drag and drop in menu tree
 	private void appendDragAndDropObj(TreeNode node, MenuTree tree, StringOutput target, URLBuilder ubu, AJAXFlags flags) {
 		String id = node.getIdent();
-		String feedBackUri = tree.getDndFeedbackUri();
-		StringOutput endUrl = new StringOutput();
-		ubu.buildURI(endUrl, new String[] { COMMAND_ID, NODE_IDENT }, new String[] { COMMAND_TREENODE_DROP, id }, flags.isIframePostEnabled() ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
-		target.append("<script type='text/javascript'>")
-		 //.append("Ext.get('dd").append(id).append("').dd = new Ext.fxMenuTree.DDProxy('dd").append(id).append("','").append(dndGroup).append("','").append(endUrl).append("','").append(feedBackUri).append("');")
-		 //.append("Ext.get('da").append(id).append("').dd = new Ext.fxMenuTree.DDProxy('da").append(id).append("','").append(dndGroup).append("','").append(endUrl).append("','").append(feedBackUri).append("');")
-		 .append("jQuery('#dd").append(id).append("')");
-		appendDraggable(target);
-		target.append("jQuery('#da").append(id).append("')");
-		appendDraggable(target);
+		target.append("<script type='text/javascript'>");
+		
+		if(tree.isDragEnabled()) {
+			target.append("jQuery('#dd").append(id).append("')");
+			appendDraggable(target);
+			target.append("jQuery('#da").append(id).append("')");
+			appendDraggable(target);
+		}
+		if(tree.isDropEnabled()) {
+			target.append("jQuery('#dd").append(id).append("')");
+			appendDroppable(node, tree, target, ubu, flags);
+		}
 		target.append("</script>");
 	}
 	
+	private void appendDroppable(TreeNode node, MenuTree tree, StringOutput sb, URLBuilder ubu, AJAXFlags flags) {
+		String feedBackUri = tree.getDndFeedbackUri();
+		StringOutput endUrl = new StringOutput(64);
+		ubu.buildURI(endUrl, new String[] { COMMAND_ID, NODE_IDENT }, new String[] { COMMAND_TREENODE_DROP, node.getIdent() }, flags.isIframePostEnabled() ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
+		sb.append(".droppable({ fbUrl: '").append(feedBackUri).append("', endUrl: '").append(endUrl).append("', hoverClass:'b_dd_over', accept: treeAcceptDrop, drop:onTreeDrop});");
+	}
+	
 	private void appendDraggable(StringOutput sb) {
-		sb.append(".draggable({start:onTreeStartDrag, revert:'invalid' });");
+		sb.append(".draggable({start:onTreeStartDrag, stop: onTreeStopDrag, revert:'invalid' });");
 	}
 	
 	//fxdiff VCRP-9: drag and drop in menu tree
@@ -386,21 +396,11 @@ public class MenuTreeRenderer implements ComponentRenderer {
 		return (curSel == curRoot);
 	}
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#renderHeaderIncludes(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator)
-	 */
 	public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderingState rstate) {
-		// nothing to include
+		//
 	}
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#renderBodyOnLoadJSFunctionCall(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component)
-	 */
 	public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) {
-	//
+		//
 	}
-
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/components/tree/_static/js/dd.js b/src/main/java/org/olat/core/gui/components/tree/_static/js/dd.js
index 35aad436a5d943fd3e5d5443e570b0502934022d..aaa11220231ca3ef1d8e3cbbefe339286870c61d 100644
--- a/src/main/java/org/olat/core/gui/components/tree/_static/js/dd.js
+++ b/src/main/java/org/olat/core/gui/components/tree/_static/js/dd.js
@@ -1,108 +1,70 @@
-function onTreeStartDrag(e, targetId) {
-	console.log('onTreeStartDrag', e, targetId);
+function onTreeStartDrag(event, ui) {
+	jQuery(event.target).addClass('b_dd_proxy');
 }
 
-function onTreeDragOver(e, targetId) {
-	console.log('onTreeDragOver', e, targetId);
+function onTreeStopDrag(event, ui) {
+	jQuery(event.target).removeClass('b_dd_proxy');
 }
 
-function onTreeDragOut(e, targetId) {
-	console.log('onTreeDragOut', e, targetId);
-}
-	
-function onTreeEndDrag(e, targetId) {
-	console.log('onTreeEndDrag', e, targetId);
-}
-
-function onTreeAccept(e, targetId) {
-	console.log('onTreeAccept', e, targetId);
-}
+function onTreeDrop(event, ui) {
+	var dragEl = jQuery(ui.draggable[0]);
+	var el = jQuery(this);
+	el.css({position:'', width:''});
+	var url =  el.droppable('option','endUrl');
+	if(url.lastIndexOf('/') == (url.length - 1)) {
+		url = url.substring(0,url.length-1);
+	}
+	var dragId = dragEl.attr('id')
+	var targetId = dragId.substring(2, dragId.length);
+	url += '%3Atnidle%3A' + targetId;
 
-function onTreeDrop(el, targetId) {
-	console.log('onTreeDrop', el, targetId);
+	var droppableId = el.attr('id');
+	if(droppableId.indexOf('ds') == 0) {
+		url += '%3Asne%3Ayes';
+	} else if(droppableId.indexOf('dt') == 0) {
+		url += '%3Asne%3Aend';
+	}
+	frames['oaa0'].location.href = url + '/';
 }
 
-function treeAcceptDrop(el, targetId) {
-	console.log('treeAcceptDrop', el);
-	return false;
-}
+function treeAcceptDrop(el) {
+	var dragEl = jQuery(el);
+	var dragElId = dragEl.attr('id');
+	var dropEl = jQuery(this)
+	var dropElId = dropEl.attr('id');//dropped
 
-/*Ext.namespace('Ext.fxMenuTree');
-Ext.fxMenuTree.DDProxy = function(id, group, dropUrl, overUrl) {
-	var config = {dragData:{end:dropUrl, over:overUrl}, scope:this };
-	Ext.fxMenuTree.DDProxy.superclass.constructor.call(this, id, group, config);
-};
-  
-Ext.extend(Ext.fxMenuTree.DDProxy, Ext.dd.DDProxy, {
-    startDrag: function(x, y) {
-        var dragEl = Ext.get(this.getDragEl());
-        var el = Ext.get(this.getEl());
-        dragEl.applyStyles({border:'','z-index':2000});
-        dragEl.update(el.dom.innerHTML);
-        dragEl.addClass(el.dom.className + ' b_dd_proxy');
-    },
-    
-	onDragOver: function(e, targetId) {
-		if(targetId && (targetId.indexOf('dd') == 0 || targetId.indexOf('ds') == 0 || targetId.indexOf('dt') == 0 || targetId.indexOf('da') == 0)) {
-			var target = Ext.get(targetId);
-    		this.lastTarget = target;
-    		if(this.config.dragData.over && this.config.dragData.over.length > 0) {
-    			var url = this.config.dragData.over + "/";
-    			var dropId = this.id.substring(2,this.id.length);
-    			var targetId = this.lastTarget.id.substring(2,this.lastTarget.id.length);
-    			var sibling = "";
-    			if(this.lastTarget.id.indexOf('ds') == 0) {
-    				sibling = "yes";
-    			} else if(this.lastTarget.id.indexOf('dt') == 0) {
-    				sibling = "end";
-    			}
-    			//use prototype for the Ajax call
-    			var stat = new Ajax.Request(url, { 
-    				method: 'get',
-    				asynchronous : false,
-            		parameters : { nidle:dropId, tnidle:targetId, sne:sibling },
-            		onSuccess: function(transport) {
-            			//use prototype to parse JSON response
-            			var response = transport.responseText.evalJSON();
-            			if(response.dropAllowed) {
-            				target.addClass('b_dd_over');
-            			} else {
-            				target.removeClass('b_dd_over');
-            			}
-					}
-          		});
-    		} else {
-    			target.addClass('b_dd_over');
-    		}
-    	}
-	},
+	if(dragElId.indexOf('dd') == 0 || dragElId.indexOf('ds') == 0 ||
+		 dragElId.indexOf('dt') == 0 || dragElId.indexOf('da') == 0 ||
+		 dragElId.indexOf('row') == 0) {
 		
-	onDragOut: function(e, targetId) {
-    	if(targetId && (targetId.indexOf('dd') == 0 || targetId.indexOf('ds') == 0 || targetId.indexOf('dt') == 0 || targetId.indexOf('da') == 0)) {
-    		var target = Ext.get(targetId);
-    		this.lastTarget = null;
-    		target.removeClass('b_dd_over');
-    	}
-	},
+		var dragNodeId = dragElId.substring(2, dragElId.length);
+		var dropId = dropElId.substring(2, dropElId.length);
+		if(dragNodeId == dropId) {
+			return false;
+		} 
 		
-	endDrag: function() {
-    	var dragEl = Ext.get(this.getDragEl());
-    	var el = Ext.get(this.getEl());
-    	if(this.lastTarget) {
-    		Ext.get(this.lastTarget).appendChild(el);
-    		el.applyStyles({position:'', width:''});
-    		var url =  this.config.dragData.end;
-    		if(url.lastIndexOf('/') == (url.length - 1)) {
-    			url = url.substring(0,url.length-1);
-    		}
-    		var targetId = this.lastTarget.id.substring(2,url.length);
-    		url += '%3Atnidle%3A' + targetId;
-    		if(this.lastTarget.id.indexOf('ds') == 0) {
-    			url += '%3Asne%3Ayes';
-    		} else if(this.lastTarget.id.indexOf('dt') == 0) {
-    			url += '%3Asne%3Aend';
-    		}
-    		frames['oaa0'].location.href = url + '/';
-    	}
+		var dropAllowed = dropEl.data(dragNodeId);
+		if(dropAllowed === undefined) {
+			var sibling = "";
+			if(dragElId.indexOf('ds') == 0) {
+				sibling = "yes";
+			} else if(dragElId.indexOf('dt') == 0) {
+				sibling = "end";
+			}
+			var url = dropEl.droppable('option', 'fbUrl');
+			//use prototype for the Ajax call
+			jQuery.ajax(url, { 
+				method:'GET',
+				data: { nidle:dragNodeId, tnidle:dropId, sne:sibling },
+				dataType: "json",
+				async: false,
+				success: function(data) {
+					dropAllowed = data.dropAllowed;
+				}
+	  		});
+			dropEl.data(dragNodeId, dropAllowed);
+		}
+		return dropAllowed;
 	}
-});*/
\ No newline at end of file
+	return false;
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/control/floatingresizabledialog/_content/index.html b/src/main/java/org/olat/core/gui/control/floatingresizabledialog/_content/index.html
index df37eb307ca0b1a4670a3fefeed835bdfc258f6b..55fab6e33d9b130ac8f9bf2663db05dbb798a30a 100644
--- a/src/main/java/org/olat/core/gui/control/floatingresizabledialog/_content/index.html
+++ b/src/main/java/org/olat/core/gui/control/floatingresizabledialog/_content/index.html
@@ -14,7 +14,13 @@
 		jQuery('#${panelName}').dialog({
 			title: '$title',
 			width: ${width},
-			height: ${height}
+			height: ${height},
+			position: [$offsetX, $offsetY],
+			stack: true,
+			close: function() {
+				o_beforeserver();
+				$r.javaScriptBgCommand("close")
+			}
 		});
 	});
 /* ]]> */
diff --git a/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/_content/autocomplete.html b/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/_content/autocomplete.html
index 91ac044ada8c4a1b357b0dc31d31f99fc81031c3..488099c6decae24caf94506c7c9736f0d1f8acc4 100644
--- a/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/_content/autocomplete.html
+++ b/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/_content/autocomplete.html
@@ -38,6 +38,9 @@ jQuery(function(){
 					}));
 				}
 	    });
+	  },
+	  open: function() {
+		  jQuery(this).autocomplete('widget').css('z-index', 10000);
 	  },
 		select: function( event, ui ) {
 			$r.javaScriptBgCommand("select") + '?key=' + ui.item.value;
diff --git a/src/main/java/org/olat/core/gui/control/generic/textmarker/_content/tmContainer.html b/src/main/java/org/olat/core/gui/control/generic/textmarker/_content/tmContainer.html
index 3417428b65ae40de954dd3817277c971544f584c..2bf04b03d71459408cd543605187588b60deec1a 100644
--- a/src/main/java/org/olat/core/gui/control/generic/textmarker/_content/tmContainer.html
+++ b/src/main/java/org/olat/core/gui/control/generic/textmarker/_content/tmContainer.html
@@ -30,7 +30,8 @@ $r.render("tmComponent")
 				var url = b_glossaryTermMapperPath + "/" + glossaryId + "/terms.js";
 				jQuery.ajax(url, {
 					async: false, 
-					encoding : 'UTF-8', method : 'get', 
+					encoding : 'UTF-8',
+					method : 'get', 
 				 	success: function(data, textStatus, jqXHR) {
 				 		jQuery(document).data("o_glossaries")[glossaryId] = eval(jqXHR.responseText);
 				  }
diff --git a/src/main/java/org/olat/core/gui/control/winmgr/_content/serverpart.html b/src/main/java/org/olat/core/gui/control/winmgr/_content/serverpart.html
index af847d97dd7ba0d1a39da97bcd862179510330c1..87361c50319137fc4d7752241c5b9f4d9e792cf3 100644
--- a/src/main/java/org/olat/core/gui/control/winmgr/_content/serverpart.html
+++ b/src/main/java/org/olat/core/gui/control/winmgr/_content/serverpart.html
@@ -2,17 +2,7 @@
 <div style="height:0px">
 <script type="text/javascript">
 /* <![CDATA[ */ 
-
-function log(s) {
-	try {
-		if (!window.ActiveXObject) {
-			##console.log(s);
-		}
-	} catch (me) {}
-}
-
 var stopped = true;
-
 function initPolling () {
 	o_info.lastClickTime = new Date().getTime();
 	pollgrowth = 0;
@@ -41,18 +31,13 @@ var pollError = 0;
 var pollgrowth = 0;
 var timestampLastPoll = new Date().getTime();
 
-
 // set timestamp cookie to inform other windows that they are outdated
 var sbtimestamp = new Date().getTime();
 var sbcookie = 'OLAT-UI-TIMESTAMP';
 if (window.opener == null) document.cookie = sbcookie+'='+sbtimestamp+'; path=/';
-//
-
 
-##
 ## starts an interval which checks every second whether to send an poll request based on
 ## the pollperiod or not 10 min after the last click the poll process stops
-##
 
 function tick () {
 	//console.log("starting poller with interval: "+pollperiod);
@@ -103,13 +88,11 @@ function tick () {
 	});
 }
 
-
 jQuery(document).ready(initPolling);
 
 #if ($isAdmin)
 ##check whether polling started or not. Wrap in ext makes it more stable
-jQuery(document).ready(
-	function() { 
+jQuery(function() { 
 		setTimeout( function(){ if (!o_info.ajaxpp) {
 			showMessageBox('error', 'error',  'Some core functionality could not be started. Please log out of OLAT and login again. ');
 			if(jQuery(document).ooLog().isDebugEnabled()) jQuery(document).ooLog('debug','Could not initialize polling!', "serverpart.html");
@@ -149,7 +132,5 @@ JSON <iframe src="javascript:false;document.write('');"  name="$iframeName" clas
 </div>
 #end	
 ## below we need to provide an action attribute to make it html 4.01 transitional
-##fxdiff
 	<form id="o_oaap" method="post" action="#" onsubmit="return false" target="oaa0"><input type="hidden" name="v"></form>
-</div>
-
+</div>
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/gui/media/ServletUtil.java b/src/main/java/org/olat/core/gui/media/ServletUtil.java
index 757dfc49cf205eb97258523d8a65c84e435720dd..9c01c9d7cd024f110ce9c3f2f68f782b0a32059e 100644
--- a/src/main/java/org/olat/core/gui/media/ServletUtil.java
+++ b/src/main/java/org/olat/core/gui/media/ServletUtil.java
@@ -36,6 +36,7 @@ import java.io.PrintWriter;
 import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Enumeration;
 import java.util.List;
 import java.util.StringTokenizer;
 
@@ -60,6 +61,17 @@ import org.olat.core.util.session.UserSessionManager;
 public class ServletUtil {
 	private static final OLog log = Tracing.createLoggerFor(ServletUtil.class);
 
+	
+	
+	public static void printOutRequestParameter(HttpServletRequest request) {
+		for(Enumeration<String> names=request.getParameterNames(); names.hasMoreElements(); ) {
+			String name = names.nextElement();
+			System.out.println(name + " :: " + request.getParameter(name));
+		}
+	}
+	
+	
+	
 	/**
 	 * @param httpReq
 	 * @param httpResp
diff --git a/src/main/java/org/olat/core/gui/render/intercept/debug/GuiDebugDispatcherController.java b/src/main/java/org/olat/core/gui/render/intercept/debug/GuiDebugDispatcherController.java
index 0f9104a61bf38aaf045bcaf567097f9f3ef06d0a..1334055c6817f5510daa409423231d61ef10814f 100644
--- a/src/main/java/org/olat/core/gui/render/intercept/debug/GuiDebugDispatcherController.java
+++ b/src/main/java/org/olat/core/gui/render/intercept/debug/GuiDebugDispatcherController.java
@@ -193,7 +193,7 @@ public class GuiDebugDispatcherController extends BasicController implements Int
 									+ "<div>"
 									+ "  <span id=\"o_guidebugst"
 									+ did
-									+ "\" onmouseover=\"o_debu_show(this.parentNode.parentNode, $('o_guidebugtt"
+									+ "\" onmouseover=\"o_debu_show(this.parentNode.parentNode, jQuery('#o_guidebugtt"
 									+ did
 									+ "'))\" "
 									+
diff --git a/src/main/java/org/olat/course/editor/EditorMainController.java b/src/main/java/org/olat/course/editor/EditorMainController.java
index 9bff74b71f8d87f96e9c253b0dd7ca268a8b3678..7255d1ddf696c5c6017cd05f7185254e9af11707 100644
--- a/src/main/java/org/olat/course/editor/EditorMainController.java
+++ b/src/main/java/org/olat/course/editor/EditorMainController.java
@@ -261,7 +261,8 @@ public class EditorMainController extends MainLayoutBasicController implements G
 			menuTree = new MenuTree("luTree");
 			menuTree.setExpandSelectedNode(false);
 			//fxdiff VCRP-9: drag and drop in menu tree
-			menuTree.setDragAndDropEnabled(true);
+			menuTree.setDragEnabled(true);
+			menuTree.setDropEnabled(true);
 			menuTree.setDragAndDropGroup("courseEditorGroup");
 						
 
diff --git a/src/main/java/org/olat/course/groupsandrights/GroupsAndRightsController.java b/src/main/java/org/olat/course/groupsandrights/GroupsAndRightsController.java
index 80ce343baf4cf11a98d2e2b12e1a37968fc5f914..6c4c3cfa4743f3853f42c41e63697b9e4f3e27fe 100644
--- a/src/main/java/org/olat/course/groupsandrights/GroupsAndRightsController.java
+++ b/src/main/java/org/olat/course/groupsandrights/GroupsAndRightsController.java
@@ -27,6 +27,7 @@ import java.util.Map;
 import java.util.UUID;
 
 import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
@@ -266,7 +267,7 @@ public class GroupsAndRightsController extends FormBasicController {
 		}
 
 		@Override
-		public void load(int firstResult, int maxResults) {
+		public void load(int firstResult, int maxResults, SortKey... sortedCol) {
 			//already loaded
 		}
 
diff --git a/src/main/java/org/olat/course/member/wizard/ImportMemberOverviewDataModel.java b/src/main/java/org/olat/course/member/wizard/ImportMemberOverviewDataModel.java
index b988925e69d59f303a995ace20103458ae788d09..917fca8dbf278c8ab907841b32733af9f4c04699 100644
--- a/src/main/java/org/olat/course/member/wizard/ImportMemberOverviewDataModel.java
+++ b/src/main/java/org/olat/course/member/wizard/ImportMemberOverviewDataModel.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel;
 import org.olat.core.gui.components.table.DefaultTableDataModel;
@@ -64,7 +65,7 @@ public class ImportMemberOverviewDataModel extends DefaultTableDataModel<Identit
 	}
 	
 	@Override
-	public void load(int firstResult, int maxResults) {
+	public void load(int firstResult, int maxResults, SortKey... orderBy) {
 		//already loaded
 	}
 
diff --git a/src/main/java/org/olat/course/nodes/st/_content/run.html b/src/main/java/org/olat/course/nodes/st/_content/run.html
index 72983ec941a2c068a29e7c48e6eb6adbbe5774b7..e274586644fc534ffc40207af5dd3420fe5bfbd5 100644
--- a/src/main/java/org/olat/course/nodes/st/_content/run.html
+++ b/src/main/java/org/olat/course/nodes/st/_content/run.html
@@ -77,7 +77,7 @@
 ## Add event JS event listeners for click and keydown events on all the gotonodes links
 <script type="text/javascript">
 /* <![CDATA[ */ 
-jQuery(document).ready(function() {
+jQuery(function() {
 	jQuery('div.o_course_run_toc a.o_gotoNode').each(function(n,m) {
 		jQuery(m).on('keydown click', function(){window.scrollTo(0,0);});
 	});
diff --git a/src/main/java/org/olat/course/tree/CourseEditorTreeModel.java b/src/main/java/org/olat/course/tree/CourseEditorTreeModel.java
index 2959b03a2b60faf41ec77690bfd16f411b2a393c..a818bf40d91c3d7795a92b88bf963a5eec3d2df4 100644
--- a/src/main/java/org/olat/course/tree/CourseEditorTreeModel.java
+++ b/src/main/java/org/olat/course/tree/CourseEditorTreeModel.java
@@ -40,9 +40,11 @@ import org.olat.course.nodes.CourseNode;
  * Description:<br>
  * 
  * @author Felix Jost
+ * @Author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  */
-//fxdiff VCRP-9: drag and drop in menu tree
 public class CourseEditorTreeModel extends GenericTreeModel implements DnDTreeModel {
+
+	private static final long serialVersionUID = 7021325125068249016L;
 	private long latestPublishTimestamp = -1;
 	private long highestNodeId; // start at Long.MAX_VALUE - 1000000; if set to
 															// zero -> meaning we read from an old
@@ -233,14 +235,12 @@ public class CourseEditorTreeModel extends GenericTreeModel implements DnDTreeMo
 			}
 		}
 		return cloneCn;
-
 	}
 	
-	//fxdiff VCRP-9: drag and drop in menu tree
 	@Override
 	public boolean canDrop(TreeNode droppedNode, TreeNode targetNode, boolean sibling) {
 		if(droppedNode == null || targetNode == null) return false;
-
+		
 		CourseEditorTreeNode selectedNode = getCourseEditorNodeById(droppedNode.getIdent());
 		CourseEditorTreeNode parentNode = getCourseEditorNodeById(targetNode.getIdent());
 		if(selectedNode == null || parentNode == null) return false;
@@ -255,7 +255,6 @@ public class CourseEditorTreeModel extends GenericTreeModel implements DnDTreeMo
 		return true;
 	}
 	
-	//fxdiff VCRP-9: drag and drop in menu tree
 	public boolean checkIfIsChild(CourseEditorTreeNode prospectChild, CourseEditorTreeNode sourceTree) {
 		if (sourceTree.getIdent().equals(prospectChild.getIdent())) {
 			return true;
diff --git a/src/main/java/org/olat/group/ui/main/EditMembershipController.java b/src/main/java/org/olat/group/ui/main/EditMembershipController.java
index 9595f61bce8130c33fa209c844019a89f7b4bddd..1f44f33dd60350db17087f5b4f9dbbe52d16220b 100644
--- a/src/main/java/org/olat/group/ui/main/EditMembershipController.java
+++ b/src/main/java/org/olat/group/ui/main/EditMembershipController.java
@@ -28,6 +28,7 @@ import java.util.UUID;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.PersistenceHelper;
+import org.olat.core.commons.persistence.SortKey;
 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;
@@ -378,7 +379,7 @@ public class EditMembershipController extends FormBasicController {
 		}
 
 		@Override
-		public void load(int firstResult, int maxResults) {
+		public void load(int firstResult, int maxResults, SortKey... sortedCol) {
 			//already loaded
 		}
 
diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoWindowControlController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoWindowControlController.java
index 0da4e156a09b07b3b79303e49946b9164a970395..1e7e1076bc1854c71c6a619c7e42554d5e3615d9 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoWindowControlController.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoWindowControlController.java
@@ -38,8 +38,8 @@ import org.olat.core.gui.dev.controller.SourceViewController;
 
 public class GuiDemoWindowControlController extends BasicController {
 	
-	VelocityContainer vcMain;
-	GuiDemoPushPopController pushpop;
+	private VelocityContainer vcMain;
+	private GuiDemoPushPopController pushpop;
 	private Link infoButton;
 	private Link warnButton;
 	private Link errorButton;
@@ -57,21 +57,17 @@ public class GuiDemoWindowControlController extends BasicController {
 		//add source view control
     Controller sourceview = new SourceViewController(ureq, wControl, this.getClass(), vcMain);
     vcMain.put("sourceview", sourceview.getInitialComponent());
-				
-		this.putInitialPanel(vcMain);
+		putInitialPanel(vcMain);
 	}
 
 	public void event(UserRequest ureq, Component source, Event event) {
 		if (source == infoButton){
-			this.showInfo("guidemo.window.control.info.message", "");			
-		}
-		else if (source == warnButton){
-			this.showWarning("guidemo.window.control.warn.message", "");			
-		}
-		else if (source == errorButton){
-			this.showError("guidemo.window.control.error.message", "");			
-		}
-		else if (source == pushButton){
+			showInfo("guidemo.window.control.info.message", "");			
+		} else if (source == warnButton){
+			showWarning("guidemo.window.control.warn.message", "");			
+		} else if (source == errorButton){
+			showError("guidemo.window.control.error.message", "");			
+		} else if (source == pushButton){
 			pushpop = new GuiDemoPushPopController(ureq, getWindowControl());
 			pushpop.addControllerListener(this);
 			getWindowControl().pushToMainArea(pushpop.getInitialComponent());
@@ -81,10 +77,9 @@ public class GuiDemoWindowControlController extends BasicController {
 	public void event(UserRequest ureq, Controller source, Event event) {
 		if (source == pushpop) {
 			getWindowControl().pop();
-			this.showInfo("guidemo.window.control.pushpop", "");			
+			showInfo("guidemo.window.control.pushpop", "");			
 		}
 	}
 
 	protected void doDispose() {}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/instantMessaging/ui/ChatController.java b/src/main/java/org/olat/instantMessaging/ui/ChatController.java
index 1fcfb488f65ffe8c6a54cd7114bd9fcbfdd00b00..982fd6b2b5d60ba016872ab10d172a9b0ffab6d2 100644
--- a/src/main/java/org/olat/instantMessaging/ui/ChatController.java
+++ b/src/main/java/org/olat/instantMessaging/ui/ChatController.java
@@ -304,6 +304,11 @@ public class ChatController extends BasicController implements GenericEventListe
 	}
 	
 	private void appendToMessageHistory(InstantMessage message, boolean focus) {
+		if(message == null || message.getBody() == null) {
+			System.out.println();
+		}
+		
+		
 		String m = message.getBody().replaceAll("<br/>\n", "\r\n");
 		m = prepareMsgBody(m.replaceAll("<", "&lt;").replaceAll(">", "&gt;")).replaceAll("\r\n", "<br/>\n");
 		String creationDate = formatter.formatTime(message.getCreationDate());
diff --git a/src/main/java/org/olat/instantMessaging/ui/_content/chatMsgField.html b/src/main/java/org/olat/instantMessaging/ui/_content/chatMsgField.html
index 5710b74d2d24a871e8438c3081e279c757943176..909e6fa1058e429ee421c4d135bda3275e4062b8 100644
--- a/src/main/java/org/olat/instantMessaging/ui/_content/chatMsgField.html
+++ b/src/main/java/org/olat/instantMessaging/ui/_content/chatMsgField.html
@@ -27,9 +27,13 @@
 <script type="text/javascript">
 /* <![CDATA[ */
 	//setTimeout used because otherwise it would not work the first time the chatwindow is displayed
-	setTimeout(function() {
-		var d = $("$id");
-		if (d && d.offsetHeight < d.scrollHeight) d.scrollTop = d.scrollHeight + 13;
-	}, 42);
+	jQuery(function() {
+		jQuery('#$id').each(function(index, el) {
+			var chatEl = jQuery(el);
+			if(chatEl.offset().top < chatEl.height()) {
+				chatEl.scrollTop(chatEl.height() + 13);
+			}
+		})
+	});
 /* ]]> */ 
 </script>
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/qpool/QuestionPoolService.java b/src/main/java/org/olat/modules/qpool/QuestionPoolService.java
index 17cafef8357a76309ecd43d03f704761cb2248d8..84860bdd3d14452d2a83faca2bb549e678415033 100644
--- a/src/main/java/org/olat/modules/qpool/QuestionPoolService.java
+++ b/src/main/java/org/olat/modules/qpool/QuestionPoolService.java
@@ -21,6 +21,7 @@ package org.olat.modules.qpool;
 
 import java.util.List;
 
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.id.Identity;
 
 /**
@@ -36,7 +37,7 @@ public interface QuestionPoolService {
 
 	public int getNumOfItemsInPool(Pool pool);
 	
-	public List<QuestionItem> getItemsOfPool(Pool pool, int firstResult, int maxResults);
+	public List<QuestionItem> getItemsOfPool(Pool pool, int firstResult, int maxResults, SortKey... orderBy);
 	
 	public int getNumOfFavoritItems(Identity identity);
 	
diff --git a/src/main/java/org/olat/modules/qpool/manager/PoolDAO.java b/src/main/java/org/olat/modules/qpool/manager/PoolDAO.java
index 4e1846909c41d4fe423e97505ab1019c0b95ebb6..1449d520c69e4f9fd529c0ddbb3be8afe322d9e5 100644
--- a/src/main/java/org/olat/modules/qpool/manager/PoolDAO.java
+++ b/src/main/java/org/olat/modules/qpool/manager/PoolDAO.java
@@ -25,6 +25,8 @@ import java.util.List;
 import javax.persistence.TypedQuery;
 
 import org.olat.core.commons.persistence.DB;
+import org.olat.core.commons.persistence.PersistenceHelper;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.modules.qpool.Pool;
 import org.olat.modules.qpool.QuestionItem;
 import org.olat.modules.qpool.model.PoolImpl;
@@ -88,9 +90,11 @@ public class PoolDAO {
 				.getSingleResult().intValue();
 	}
 	
-	public List<QuestionItem> getItemsOfPool(Pool pool, int firstResult, int maxResults) {
+	public List<QuestionItem> getItemsOfPool(Pool pool, int firstResult, int maxResults, SortKey... orderBy) {
 		StringBuilder sb = new StringBuilder();
 		sb.append("select pool2item.item from qpool2item pool2item where pool2item.pool.key=:poolKey");
+		PersistenceHelper.appendGroupBy(sb, "pool2item.item", orderBy);
+		
 		TypedQuery<QuestionItem> query = dbInstance.getCurrentEntityManager()
 				.createQuery(sb.toString(), QuestionItem.class)
 				.setParameter("poolKey", pool.getKey());
diff --git a/src/main/java/org/olat/modules/qpool/manager/QuestionPoolServiceImpl.java b/src/main/java/org/olat/modules/qpool/manager/QuestionPoolServiceImpl.java
index 83c4174376b369fd9f22a44a01c5079db0f60a4b..2119c8b311cae4b6c0c37620012de73686b5712d 100644
--- a/src/main/java/org/olat/modules/qpool/manager/QuestionPoolServiceImpl.java
+++ b/src/main/java/org/olat/modules/qpool/manager/QuestionPoolServiceImpl.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.olat.core.commons.persistence.DB;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.id.Identity;
 import org.olat.modules.qpool.Pool;
 import org.olat.modules.qpool.QuestionItem;
@@ -83,8 +84,8 @@ public class QuestionPoolServiceImpl implements QuestionPoolService, Application
 	}
 
 	@Override
-	public List<QuestionItem> getItemsOfPool(Pool pool, int firstResult, int maxResults) {
-		return poolDao.getItemsOfPool(pool, firstResult, maxResults);
+	public List<QuestionItem> getItemsOfPool(Pool pool, int firstResult, int maxResults, SortKey... orderBy) {
+		return poolDao.getItemsOfPool(pool, firstResult, maxResults, orderBy);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/qpool/ui/ItemRowsSource.java b/src/main/java/org/olat/modules/qpool/ui/ItemRowsSource.java
index 27635e1224ede9a9fae1846b30c6f0270399b308..1415ab92166f2f3e96c82ad7e4e2b06f13fae363 100644
--- a/src/main/java/org/olat/modules/qpool/ui/ItemRowsSource.java
+++ b/src/main/java/org/olat/modules/qpool/ui/ItemRowsSource.java
@@ -21,6 +21,8 @@ package org.olat.modules.qpool.ui;
 
 import java.util.List;
 
+import org.olat.core.commons.persistence.SortKey;
+
 /**
  * 
  * Initial date: 12.02.2013<br>
@@ -31,5 +33,5 @@ public interface ItemRowsSource {
 	
 	public int getRowCount();
 	
-	public List<QuestionItemRow> getRows(int firstResult, int maxResults);
+	public List<QuestionItemRow> getRows(int firstResult, int maxResults, SortKey... orderBy);
 }
diff --git a/src/main/java/org/olat/modules/qpool/ui/MarkedItemsSource.java b/src/main/java/org/olat/modules/qpool/ui/MarkedItemsSource.java
index ac551a46a063755867f4ad0439d34a57cc3501a4..19068ed9b7393b4f5a49bdf3c7f421c988874ce7 100644
--- a/src/main/java/org/olat/modules/qpool/ui/MarkedItemsSource.java
+++ b/src/main/java/org/olat/modules/qpool/ui/MarkedItemsSource.java
@@ -22,6 +22,7 @@ package org.olat.modules.qpool.ui;
 import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.id.Identity;
 import org.olat.modules.qpool.QuestionItem;
 import org.olat.modules.qpool.QuestionPoolService;
@@ -48,7 +49,7 @@ public class MarkedItemsSource implements QuestionItemsSource {
 	}
 
 	@Override
-	public List<QuestionItem> getItems(int firstResult, int maxResults) {
+	public List<QuestionItem> getItems(int firstResult, int maxResults, SortKey... orderBy) {
 		return qpoolService.getFavoritItems(me, firstResult, maxResults);
 	}
 }
diff --git a/src/main/java/org/olat/modules/qpool/ui/MyQuestionItemsSource.java b/src/main/java/org/olat/modules/qpool/ui/MyQuestionItemsSource.java
index 62178a549dd723db1f4def934e053688d6ca445c..158c8b76d8be1d4435141a5e9843552d7983c105 100644
--- a/src/main/java/org/olat/modules/qpool/ui/MyQuestionItemsSource.java
+++ b/src/main/java/org/olat/modules/qpool/ui/MyQuestionItemsSource.java
@@ -22,6 +22,7 @@ package org.olat.modules.qpool.ui;
 import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.id.Identity;
 import org.olat.modules.qpool.QuestionItem;
 import org.olat.modules.qpool.QuestionPoolService;
@@ -48,7 +49,7 @@ public class MyQuestionItemsSource implements QuestionItemsSource {
 	}
 
 	@Override
-	public List<QuestionItem> getItems(int firstResult, int maxResults) {
+	public List<QuestionItem> getItems(int firstResult, int maxResults, SortKey... orderBy) {
 		return qpoolService.getItems(me, firstResult, maxResults);
 	}
 }
diff --git a/src/main/java/org/olat/modules/qpool/ui/PooledItemsSource.java b/src/main/java/org/olat/modules/qpool/ui/PooledItemsSource.java
index 59fdd597d06b8639b1e1308ae830a20d78117c49..ab797fc43879cc25d52c4e7a7efa4d5d8c7582c8 100644
--- a/src/main/java/org/olat/modules/qpool/ui/PooledItemsSource.java
+++ b/src/main/java/org/olat/modules/qpool/ui/PooledItemsSource.java
@@ -22,6 +22,7 @@ package org.olat.modules.qpool.ui;
 import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.modules.qpool.Pool;
 import org.olat.modules.qpool.QuestionItem;
 import org.olat.modules.qpool.QuestionPoolService;
@@ -48,7 +49,7 @@ public class PooledItemsSource implements QuestionItemsSource {
 	}
 
 	@Override
-	public List<QuestionItem> getItems(int firstResult, int maxResults) {
-		return qpoolService.getItemsOfPool(pool, firstResult, maxResults);
+	public List<QuestionItem> getItems(int firstResult, int maxResults, SortKey... orderBy) {
+		return qpoolService.getItemsOfPool(pool, firstResult, maxResults, orderBy);
 	}
 }
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionItemDataModel.java b/src/main/java/org/olat/modules/qpool/ui/QuestionItemDataModel.java
index 338c82d84fc458147af18c31e8811a2d433368ec..94590a6b8cef3460cf79c71684f64287e1fe8f27 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionItemDataModel.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionItemDataModel.java
@@ -22,6 +22,7 @@ package org.olat.modules.qpool.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.FlexiTableColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel;
 import org.olat.core.gui.components.table.TableDataModel;
@@ -69,7 +70,7 @@ public class QuestionItemDataModel implements FlexiTableDataModel, TableDataMode
 	}
 
 	@Override
-	public void load(int firstResult, int maxResults) {
+	public void load(int firstResult, int maxResults, SortKey... orderBy) {
 		if(rows == null) {
 			rows = new ArrayList<QuestionItemRow>();
 		}
@@ -77,8 +78,7 @@ public class QuestionItemDataModel implements FlexiTableDataModel, TableDataMode
 		for(int i=rows.size(); i<firstResult; i++) {
 			rows.add(null);
 		}
-		
-		List<QuestionItemRow> newRows = source.getRows(firstResult, maxResults);
+		List<QuestionItemRow> newRows = source.getRows(firstResult, maxResults, orderBy);
 		for(int i=0; i<newRows.size(); i++) {
 			int rowIndex = i + firstResult;
 			if(rowIndex < rows.size()) {
@@ -89,6 +89,7 @@ public class QuestionItemDataModel implements FlexiTableDataModel, TableDataMode
 		}
 	}
 
+
 	@Override
 	public int getColumnCount() {
 		return columnModel.getColumnCount();
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionItemsSource.java b/src/main/java/org/olat/modules/qpool/ui/QuestionItemsSource.java
index 077e6c000100f73e50769b690d850db416e57ff3..3a12113a69b02a0b5e1865a967bdefa44242d045 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionItemsSource.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionItemsSource.java
@@ -21,6 +21,7 @@ package org.olat.modules.qpool.ui;
 
 import java.util.List;
 
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.modules.qpool.QuestionItem;
 
 /**
@@ -33,6 +34,6 @@ public interface QuestionItemsSource {
 	
 	public int getNumOfItems();
 	
-	public List<QuestionItem> getItems(int firstResult, int maxResults);
+	public List<QuestionItem> getItems(int firstResult, int maxResults, SortKey... orderBy);
 
 }
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
index e1713ab20dbc32a9f79721fc60eafcbe8f295617..fe9f202f58948abc4e11a484c2e1133208fcaa0b 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
@@ -26,6 +26,7 @@ import java.util.Set;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.commons.services.mark.MarkManager;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
@@ -53,6 +54,8 @@ import org.olat.modules.qpool.QuestionPoolService;
  */
 public class QuestionListController extends FormBasicController implements StackedControllerAware, ItemRowsSource {
 
+	private FormLink createList;
+	
 	private FlexiTableElement itemsTable;
 	private QuestionItemDataModel model;
 	private StackedController stackPanel;
@@ -81,13 +84,17 @@ public class QuestionListController extends FormBasicController implements Stack
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		//add the table
 		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("item.key"));
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("item.subject"));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("item.key", true, "key"));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("item.subject", true, "subject"));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("select"));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel("mark"));
 
 		model = new QuestionItemDataModel(columnsModel, this);
 		itemsTable = uifactory.addTableElement(ureq, "items", model, 20, getTranslator(), formLayout);
+		itemsTable.setMultiSelect(true);
+		
+		createList = uifactory.addFormLink("create.list", formLayout, Link.BUTTON);
+		
 	}
 
 	@Override
@@ -104,7 +111,11 @@ public class QuestionListController extends FormBasicController implements Stack
 	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
 		if(source instanceof FormLink) {
 			FormLink link = (FormLink)source;
-			if("select".equals(link.getCmd())) {
+			if(link == createList) {
+				Set<Integer> selections = itemsTable.getMultiSelectedIndex();
+				System.out.println(selections.size());
+				
+			} else if("select".equals(link.getCmd())) {
 				QuestionItemRow row = (QuestionItemRow)link.getUserObject();
 				doSelect(ureq, row.getItem());
 			} else if("mark".equals(link.getCmd())) {
@@ -127,6 +138,14 @@ public class QuestionListController extends FormBasicController implements Stack
 		super.formInnerEvent(ureq, source, event);
 	}
 	
+	public QuestionItem getQuestionItemAt(int index) {
+		QuestionItemRow row = model.getObject(index);
+		if(row != null) {
+			return row.getItem();
+		}
+		return null;
+	}
+	
 	protected void doSelect(UserRequest ureq, QuestionItem item) {
 		QuestionItemDetailsController detailsCtrl = new QuestionItemDetailsController(ureq, getWindowControl(), item);
 		LayoutMain3ColsController mainCtrl = new LayoutMain3ColsController(ureq, getWindowControl(), detailsCtrl);
@@ -150,11 +169,11 @@ public class QuestionListController extends FormBasicController implements Stack
 	}
 
 	@Override
-	public List<QuestionItemRow> getRows(int firstResult, int maxResults) {
+	public List<QuestionItemRow> getRows(int firstResult, int maxResults, SortKey... orderBy) {
 		Set<Long> marks = markManager.getMarkResourceIds(getIdentity(), "QuestionItem", Collections.<String>emptyList());
 		
 		
-		List<QuestionItem> items = source.getItems(firstResult, maxResults);
+		List<QuestionItem> items = source.getItems(firstResult, maxResults, orderBy);
 		List<QuestionItemRow> rows = new ArrayList<QuestionItemRow>(items.size());
 		for(QuestionItem item:items) {
 			QuestionItemRow row = forgeRow(item, marks);
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionPoolMainEditorController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionPoolMainEditorController.java
index 77458e5b870ae195527f366273b2a2e6d085cb7e..6d639d43c1c1e00b5a50bcb97c39fc5aca7bef67 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionPoolMainEditorController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionPoolMainEditorController.java
@@ -28,9 +28,9 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.panel.Panel;
 import org.olat.core.gui.components.stack.StackedController;
 import org.olat.core.gui.components.stack.StackedControllerAware;
-import org.olat.core.gui.components.tree.GenericTreeModel;
 import org.olat.core.gui.components.tree.GenericTreeNode;
 import org.olat.core.gui.components.tree.MenuTree;
+import org.olat.core.gui.components.tree.TreeDropEvent;
 import org.olat.core.gui.components.tree.TreeModel;
 import org.olat.core.gui.components.tree.TreeNode;
 import org.olat.core.gui.control.Event;
@@ -40,6 +40,7 @@ import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.id.context.ContextEntry;
 import org.olat.core.id.context.StateEntry;
 import org.olat.modules.qpool.Pool;
+import org.olat.modules.qpool.QuestionItem;
 import org.olat.modules.qpool.QuestionPoolService;
 
 /**
@@ -57,6 +58,7 @@ public class QuestionPoolMainEditorController extends BasicController implements
 	private QuestionsController myQuestionsCtrl;
 	private QuestionsController markedQuestionsCtrl;
 	private QuestionsController selectedPoolCtrl;
+	private QuestionsController currentCtrl;
 	private LayoutMain3ColsController columnLayoutCtr;
 	
 	private final QuestionPoolService qpoolService;
@@ -69,6 +71,7 @@ public class QuestionPoolMainEditorController extends BasicController implements
 		menuTree = new MenuTree("qpoolTree");
 		menuTree.setTreeModel(buildTreeModel());
 		menuTree.setSelectedNode(menuTree.getTreeModel().getRootNode());
+		menuTree.setDropEnabled(true);
 		menuTree.addListener(this);
 		menuTree.setRootVisible(false);
 		
@@ -94,15 +97,23 @@ public class QuestionPoolMainEditorController extends BasicController implements
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if(menuTree == source) {
-			TreeNode node = menuTree.getSelectedNode();
-			Object uNode = node.getUserObject();
-			if("menu.database.my".equals(uNode)) {
-				doSelectMyQuestions(ureq);
-			} else if("menu.database.favorit".equals(uNode)) {
-				doSelectMarkedQuestions(ureq);
-			} else if(uNode instanceof Pool) {
-				Pool pool = (Pool)uNode;
-				doSelect(ureq, pool);
+			if(event instanceof TreeDropEvent) {
+				TreeDropEvent e = (TreeDropEvent)event;
+				String targetId = e.getTargetNodeId();
+				String dropId = e.getDroppedNodeId();
+				//drop id w_o_fi1000002357-4
+				doDrop(targetId, dropId);
+			} else {
+				TreeNode node = menuTree.getSelectedNode();
+				Object uNode = node.getUserObject();
+				if("menu.database.my".equals(uNode)) {
+					doSelectMyQuestions(ureq);
+				} else if("menu.database.favorit".equals(uNode)) {
+					doSelectMarkedQuestions(ureq);
+				} else if(uNode instanceof Pool) {
+					Pool pool = (Pool)uNode;
+					doSelect(ureq, pool);
+				}
 			}
 		}
 	}
@@ -112,12 +123,26 @@ public class QuestionPoolMainEditorController extends BasicController implements
 		//
 	}
 	
+	private void doDrop(String targetId, String dropId) {
+		try {
+			int lastIndex = dropId.lastIndexOf('-');
+			String rowStr = dropId.substring(lastIndex+1, dropId.length());
+			int row = Integer.parseInt(rowStr);
+			
+			QuestionItem item = currentCtrl.getQuestionAt(row);
+			System.out.println("Item: " + item);
+		} catch (Exception e) {
+			logError("Cannot drop with id: " + dropId, e);
+		}
+	}
+	
 	private void doSelectMyQuestions(UserRequest ureq) {
 		if(myQuestionsCtrl == null) {
 			myQuestionsCtrl = new QuestionsController(ureq, getWindowControl(), new MyQuestionItemsSource(getIdentity()));
 			myQuestionsCtrl.setStackedController(stackPanel);
 			listenTo(myQuestionsCtrl);
 		}
+		currentCtrl = myQuestionsCtrl;
 		content.setContent(myQuestionsCtrl.getInitialComponent());
 	}
 	
@@ -127,6 +152,7 @@ public class QuestionPoolMainEditorController extends BasicController implements
 			markedQuestionsCtrl.setStackedController(stackPanel);
 			listenTo(markedQuestionsCtrl);
 		}
+		currentCtrl = markedQuestionsCtrl;
 		content.setContent(markedQuestionsCtrl.getInitialComponent());
 	}
 	
@@ -136,11 +162,12 @@ public class QuestionPoolMainEditorController extends BasicController implements
 			selectedPoolCtrl.setStackedController(stackPanel);
 			listenTo(selectedPoolCtrl);
 		}
+		currentCtrl = selectedPoolCtrl;
 		content.setContent(selectedPoolCtrl.getInitialComponent());
 	}
 	
 	private TreeModel buildTreeModel() {
-		GenericTreeModel gtm = new GenericTreeModel();
+		QuestionPoolMenuTreeModel gtm = new QuestionPoolMenuTreeModel();
 		GenericTreeNode rootNode = new GenericTreeNode(translate("topnav.qpool"), "topnav.qpool.alt");
 		rootNode.setCssClass("o_sel_qpool_home");
 		gtm.setRootNode(rootNode);
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionPoolMenuTreeModel.java b/src/main/java/org/olat/modules/qpool/ui/QuestionPoolMenuTreeModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b89cde2980af0ee3a20f899039718d402e2301b
--- /dev/null
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionPoolMenuTreeModel.java
@@ -0,0 +1,40 @@
+/**
+ * <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.modules.qpool.ui;
+
+import org.olat.core.gui.components.tree.DnDTreeModel;
+import org.olat.core.gui.components.tree.GenericTreeModel;
+import org.olat.core.gui.components.tree.TreeNode;
+
+/**
+ * 
+ * Initial date: 15.02.2013<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class QuestionPoolMenuTreeModel extends GenericTreeModel implements DnDTreeModel{
+
+	private static final long serialVersionUID = -665560407090871912L;
+
+	@Override
+	public boolean canDrop(TreeNode droppedNode, TreeNode targetNode,	boolean sibling) {
+		return !sibling;
+	}
+}
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionsController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionsController.java
index 51f0a95dd3406ddbb8e2be45e5ead04860d448b0..9c21c1192c58c0bebee47f98d277b3e9cc8f5798 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionsController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionsController.java
@@ -71,6 +71,10 @@ public class QuestionsController extends BasicController implements StackedContr
 	protected void doDispose() {
 		//
 	}
+	
+	public QuestionItem getQuestionAt(int index) {
+		return listCtrl.getQuestionItemAt(index);
+	}
 
 	@Override
 	public void setStackedController(StackedController stackPanel) {
diff --git a/src/main/java/org/olat/modules/qpool/ui/_content/item_list.html b/src/main/java/org/olat/modules/qpool/ui/_content/item_list.html
index d444cccd7bba380508a02a478645509c64003257..c39cf4004bf4531709ce958fa6abde0b34fbda25 100644
--- a/src/main/java/org/olat/modules/qpool/ui/_content/item_list.html
+++ b/src/main/java/org/olat/modules/qpool/ui/_content/item_list.html
@@ -1 +1,5 @@
-$r.render("items")
\ No newline at end of file
+$r.render("items")
+<div>
+$r.render("create.list")
+
+</div>
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties
index aec3469eaa8c22fa764fe974f53903c459e52a58..6e474b5424264f425653151a442c42d42aee1fef 100644
--- a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties
@@ -1,4 +1,5 @@
 #Mon Mar 02 09:54:04 CET 2009
+create.list=Liste erstellen
 topnav.qpool=Q-Pool
 topnav.qpool.alt=Question pools
 menu.database=Fragendatenbank
diff --git a/src/main/webapp/static/js/functions.js b/src/main/webapp/static/js/functions.js
index 3e5f3477f89f796f40f6f5eb5f3a267c5dc45ef1..0a553dd76b1d6b8b7f29a09577a703be432c77d9 100644
--- a/src/main/webapp/static/js/functions.js
+++ b/src/main/webapp/static/js/functions.js
@@ -950,19 +950,18 @@ function o_ffRegisterSubmit(formId, submElmId){
 function showInfoBox(title, content){
 	// Factory method to create message box
 	var uuid = Math.floor(Math.random() * 0x10000 /* 65536 */).toString(16);
-	var info = '<div id="' + uuid + '" class="b_msg-div msg"><div class="b_msg_info_content b_msg_info_winicon o_sel_info_message"><h3>'
+	var info = '<div id="' + uuid + '" class="b_msg-div msg" style="display:none;"><div class="b_msg_info_content b_msg_info_winicon o_sel_info_message"><h3>'
 		 + title + '</h3>' + content + '<br/><br/></div></div>';
     var msgCt = jQuery('#b_page').prepend(info);
     // Hide message automatically
-    var time = (content.length > 70) ? 6000 : 4000;
-    time = (content.length > 150) ? 8000 : time;
+    var time = (content.length > 150) ? 8000 : ((content.length > 70) ? 6000 : 4000);
     jQuery('#' + uuid).slideDown(300).delay(time).slideUp(300);
     // Visually remove message box immediately when user clicks on it
     // The ghost event from above is triggered anyway. 
     jQuery('#' + uuid).click(function(e) {
     	jQuery('#' + uuid).remove();
     });
-    // 	
+	
     // Help GC, prevent cyclic reference from on-click closure (OLAT-5755)
     title = null;
     content = null;
@@ -978,12 +977,21 @@ function showMessageBox(type, title, message, buttonCallback){
 	if(type == 'info'){
 		showInfoBox(title, message)
 	} else {
-		jQuery('<p>' + message + '</p>').dialog({
-			height: 140,
+		var prefix;
+		if("warn" == type) {
+			prefix = '<div><div class="b_msg_info_content b_msg_warn_winicon">';
+		} else if("error" == type) {
+			prefix = '<div><div class="b_msg_info_content b_msg_error_winicon">';
+		} else {
+			prefix = '<div><div>';
+		}
+		jQuery(prefix + '<p>' + message + '</p></div></div>').dialog({
+			height: 170,
+			width: 400,
 			modal: true,
 			title: title,
 			resizable:false
-		});
+		}).dialog('open');
 	}
 }
 
diff --git a/src/main/webapp/static/js/jquery/jquery-ui.css b/src/main/webapp/static/js/jquery/jquery-ui.css
deleted file mode 100644
index dd403d8bab5a334663e6d99d74693fbfcdc749bb..0000000000000000000000000000000000000000
--- a/src/main/webapp/static/js/jquery/jquery-ui.css
+++ /dev/null
@@ -1,474 +0,0 @@
-/*! jQuery UI - v1.9.2 - 2012-11-23
-* http://jqueryui.com
-* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
-* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
-.ui-helper-clearfix:after { clear: both; }
-.ui-helper-clearfix { zoom: 1; }
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-.ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }
-.ui-accordion .ui-accordion-icons { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-noicons { padding-left: .7em; }
-.ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
-
-.ui-autocomplete {
-	position: absolute;
-	top: 0;
-	left: 0;
-	cursor: default;
-}
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}
-.ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-
-.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }
-.ui-menu .ui-menu { margin-top: -3px; position: absolute; }
-.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }
-.ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }
-.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
-.ui-menu .ui-menu-item a.ui-state-focus,
-.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }
-
-.ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }
-.ui-menu .ui-state-disabled a { cursor: default; }
-
-/* icon support */
-.ui-menu-icons { position: relative; }
-.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
-
-/* left-aligned */
-.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
-
-/* right-aligned */
-.ui-menu .ui-menu-icon { position: static; float: right; }
-
-.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }
-.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
-.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
-.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
-.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
-.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
-.ui-spinner-up { top: 0; }
-.ui-spinner-down { bottom: 0; }
-
-/* TR overrides */
-.ui-spinner .ui-icon-triangle-1-s {
-	/* need to fix icons sprite */
-	background-position:-65px -16px;
-}
-
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-
-.ui-tooltip {
-	padding: 8px;
-	position: absolute;
-	z-index: 9999;
-	max-width: 300px;
-	-webkit-box-shadow: 0 0 5px #aaa;
-	box-shadow: 0 0 5px #aaa;
-}
-/* Fades and background-images don't work well together in IE6, drop the image */
-* html .ui-tooltip {
-	background-image: none;
-}
-body .ui-tooltip { border-width: 2px; }
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
-.ui-widget-content a { color: #222222/*{fcContent}*/; }
-.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
-.ui-widget-header a { color: #222222/*{fcHeader}*/; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
-.ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #212121/*{fcHover}*/; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-.ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
-.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }
\ No newline at end of file
diff --git a/src/main/webapp/static/js/jquery/ui/images/animated-overlay.gif b/src/main/webapp/static/js/jquery/ui/images/animated-overlay.gif
new file mode 100755
index 0000000000000000000000000000000000000000..d441f75ebfbdf26a265dfccd670120d25c0a341c
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/animated-overlay.gif differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.png b/src/main/webapp/static/js/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100755
index 0000000000000000000000000000000000000000..f5f09827f693ed896898f5987c03852d9257ecfa
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-bg_flat_0_aaaaaa_40x100.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.png b/src/main/webapp/static/js/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100755
index 0000000000000000000000000000000000000000..9e7a5125257e93d8ddab93f0d685db5128eddbd4
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-bg_flat_75_ffffff_40x100.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.png b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100755
index 0000000000000000000000000000000000000000..42f16314434dcbe73286dc902150677b11cad1fa
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_55_fbf9ee_1x400.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100755
index 0000000000000000000000000000000000000000..3d583e1447019eb59071c99b1f4536e8d5d84129
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_65_ffffff_1x400.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_75_dadada_1x400.png b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100755
index 0000000000000000000000000000000000000000..84c34ed61fbf1a81d5764e8de47044a393ad0358
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_75_dadada_1x400.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.png b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100755
index 0000000000000000000000000000000000000000..56d1030895f2e2fa93b7725ea60c58fa3b1c3676
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_75_e6e6e6_1x400.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.png b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100755
index 0000000000000000000000000000000000000000..c5ae1338e044c572f1c2f1877b519a492c6a9707
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-bg_glass_95_fef1ec_1x400.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/src/main/webapp/static/js/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100755
index 0000000000000000000000000000000000000000..e504a3ca152cd424819cb7313fe13aa7c124ee0d
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-icons_222222_256x240.png b/src/main/webapp/static/js/jquery/ui/images/ui-icons_222222_256x240.png
new file mode 100755
index 0000000000000000000000000000000000000000..0de6293259d866646ee06e63162f42bc56c5bae4
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-icons_222222_256x240.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-icons_2e83ff_256x240.png b/src/main/webapp/static/js/jquery/ui/images/ui-icons_2e83ff_256x240.png
new file mode 100755
index 0000000000000000000000000000000000000000..513a241d44d68c31a0db4af7f0c4d4a3d5596822
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-icons_2e83ff_256x240.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-icons_454545_256x240.png b/src/main/webapp/static/js/jquery/ui/images/ui-icons_454545_256x240.png
new file mode 100755
index 0000000000000000000000000000000000000000..95032e4423f5589c377ac4ccdc1fa4e74b5a8e72
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-icons_454545_256x240.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-icons_888888_256x240.png b/src/main/webapp/static/js/jquery/ui/images/ui-icons_888888_256x240.png
new file mode 100755
index 0000000000000000000000000000000000000000..8449bebc24690ee945ba5827b2ae8d6d3fb5bb36
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-icons_888888_256x240.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/images/ui-icons_cd0a0a_256x240.png b/src/main/webapp/static/js/jquery/ui/images/ui-icons_cd0a0a_256x240.png
new file mode 100755
index 0000000000000000000000000000000000000000..e28c9249bdb6c65caf4de1face364db3a363787f
Binary files /dev/null and b/src/main/webapp/static/js/jquery/ui/images/ui-icons_cd0a0a_256x240.png differ
diff --git a/src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.css b/src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.css
new file mode 100755
index 0000000000000000000000000000000000000000..c443b95033c93979f1619b4837b626dcb0e4bdc2
--- /dev/null
+++ b/src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.css
@@ -0,0 +1,1014 @@
+/*! jQuery UI - v1.10.0 - 2013-02-14
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.tooltip.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0);
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-resizable {
+	position: relative;
+}
+.ui-resizable-handle {
+	position: absolute;
+	font-size: 0.1px;
+	display: block;
+}
+.ui-resizable-disabled .ui-resizable-handle,
+.ui-resizable-autohide .ui-resizable-handle {
+	display: none;
+}
+.ui-resizable-n {
+	cursor: n-resize;
+	height: 7px;
+	width: 100%;
+	top: -5px;
+	left: 0;
+}
+.ui-resizable-s {
+	cursor: s-resize;
+	height: 7px;
+	width: 100%;
+	bottom: -5px;
+	left: 0;
+}
+.ui-resizable-e {
+	cursor: e-resize;
+	width: 7px;
+	right: -5px;
+	top: 0;
+	height: 100%;
+}
+.ui-resizable-w {
+	cursor: w-resize;
+	width: 7px;
+	left: -5px;
+	top: 0;
+	height: 100%;
+}
+.ui-resizable-se {
+	cursor: se-resize;
+	width: 12px;
+	height: 12px;
+	right: 1px;
+	bottom: 1px;
+}
+.ui-resizable-sw {
+	cursor: sw-resize;
+	width: 9px;
+	height: 9px;
+	left: -5px;
+	bottom: -5px;
+}
+.ui-resizable-nw {
+	cursor: nw-resize;
+	width: 9px;
+	height: 9px;
+	left: -5px;
+	top: -5px;
+}
+.ui-resizable-ne {
+	cursor: ne-resize;
+	width: 9px;
+	height: 9px;
+	right: -5px;
+	top: -5px;
+}
+.ui-selectable-helper {
+	position: absolute;
+	z-index: 100;
+	border: 1px dotted black;
+}
+.ui-accordion .ui-accordion-header {
+	display: block;
+	cursor: pointer;
+	position: relative;
+	margin-top: 2px;
+	padding: .5em .5em .5em .7em;
+	min-height: 0; /* support: IE7 */
+}
+.ui-accordion .ui-accordion-icons {
+	padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-noicons {
+	padding-left: .7em;
+}
+.ui-accordion .ui-accordion-icons .ui-accordion-icons {
+	padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
+	position: absolute;
+	left: .5em;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-accordion .ui-accordion-content {
+	padding: 1em 2.2em;
+	border-top: 0;
+	overflow: auto;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-button {
+	display: inline-block;
+	position: relative;
+	padding: 0;
+	line-height: normal;
+	margin-right: .1em;
+	cursor: pointer;
+	vertical-align: middle;
+	text-align: center;
+	overflow: visible; /* removes extra width in IE */
+}
+.ui-button,
+.ui-button:link,
+.ui-button:visited,
+.ui-button:hover,
+.ui-button:active {
+	text-decoration: none;
+}
+/* to make room for the icon, a width needs to be set here */
+.ui-button-icon-only {
+	width: 2.2em;
+}
+/* button elements seem to need a little more width */
+button.ui-button-icon-only {
+	width: 2.4em;
+}
+.ui-button-icons-only {
+	width: 3.4em;
+}
+button.ui-button-icons-only {
+	width: 3.7em;
+}
+
+/* button text element */
+.ui-button .ui-button-text {
+	display: block;
+	line-height: normal;
+}
+.ui-button-text-only .ui-button-text {
+	padding: .4em 1em;
+}
+.ui-button-icon-only .ui-button-text,
+.ui-button-icons-only .ui-button-text {
+	padding: .4em;
+	text-indent: -9999999px;
+}
+.ui-button-text-icon-primary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+	padding: .4em 1em .4em 2.1em;
+}
+.ui-button-text-icon-secondary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+	padding: .4em 2.1em .4em 1em;
+}
+.ui-button-text-icons .ui-button-text {
+	padding-left: 2.1em;
+	padding-right: 2.1em;
+}
+/* no icon support for input elements, provide padding by default */
+input.ui-button {
+	padding: .4em 1em;
+}
+
+/* button icon element(s) */
+.ui-button-icon-only .ui-icon,
+.ui-button-text-icon-primary .ui-icon,
+.ui-button-text-icon-secondary .ui-icon,
+.ui-button-text-icons .ui-icon,
+.ui-button-icons-only .ui-icon {
+	position: absolute;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-button-icon-only .ui-icon {
+	left: 50%;
+	margin-left: -8px;
+}
+.ui-button-text-icon-primary .ui-button-icon-primary,
+.ui-button-text-icons .ui-button-icon-primary,
+.ui-button-icons-only .ui-button-icon-primary {
+	left: .5em;
+}
+.ui-button-text-icon-secondary .ui-button-icon-secondary,
+.ui-button-text-icons .ui-button-icon-secondary,
+.ui-button-icons-only .ui-button-icon-secondary {
+	right: .5em;
+}
+
+/* button sets */
+.ui-buttonset {
+	margin-right: 7px;
+}
+.ui-buttonset .ui-button {
+	margin-left: 0;
+	margin-right: -.3em;
+}
+
+/* workarounds */
+/* reset extra padding in Firefox, see h5bp.com/l */
+input.ui-button::-moz-focus-inner,
+button.ui-button::-moz-focus-inner {
+	border: 0;
+	padding: 0;
+}
+.ui-datepicker {
+	width: 17em;
+	padding: .2em .2em 0;
+	display: none;
+}
+.ui-datepicker .ui-datepicker-header {
+	position: relative;
+	padding: .2em 0;
+}
+.ui-datepicker .ui-datepicker-prev,
+.ui-datepicker .ui-datepicker-next {
+	position: absolute;
+	top: 2px;
+	width: 1.8em;
+	height: 1.8em;
+}
+.ui-datepicker .ui-datepicker-prev-hover,
+.ui-datepicker .ui-datepicker-next-hover {
+	top: 1px;
+}
+.ui-datepicker .ui-datepicker-prev {
+	left: 2px;
+}
+.ui-datepicker .ui-datepicker-next {
+	right: 2px;
+}
+.ui-datepicker .ui-datepicker-prev-hover {
+	left: 1px;
+}
+.ui-datepicker .ui-datepicker-next-hover {
+	right: 1px;
+}
+.ui-datepicker .ui-datepicker-prev span,
+.ui-datepicker .ui-datepicker-next span {
+	display: block;
+	position: absolute;
+	left: 50%;
+	margin-left: -8px;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-datepicker .ui-datepicker-title {
+	margin: 0 2.3em;
+	line-height: 1.8em;
+	text-align: center;
+}
+.ui-datepicker .ui-datepicker-title select {
+	font-size: 1em;
+	margin: 1px 0;
+}
+.ui-datepicker select.ui-datepicker-month-year {
+	width: 100%;
+}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year {
+	width: 49%;
+}
+.ui-datepicker table {
+	width: 100%;
+	font-size: .9em;
+	border-collapse: collapse;
+	margin: 0 0 .4em;
+}
+.ui-datepicker th {
+	padding: .7em .3em;
+	text-align: center;
+	font-weight: bold;
+	border: 0;
+}
+.ui-datepicker td {
+	border: 0;
+	padding: 1px;
+}
+.ui-datepicker td span,
+.ui-datepicker td a {
+	display: block;
+	padding: .2em;
+	text-align: right;
+	text-decoration: none;
+}
+.ui-datepicker .ui-datepicker-buttonpane {
+	background-image: none;
+	margin: .7em 0 0 0;
+	padding: 0 .2em;
+	border-left: 0;
+	border-right: 0;
+	border-bottom: 0;
+}
+.ui-datepicker .ui-datepicker-buttonpane button {
+	float: right;
+	margin: .5em .2em .4em;
+	cursor: pointer;
+	padding: .2em .6em .3em .6em;
+	width: auto;
+	overflow: visible;
+}
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
+	float: left;
+}
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi {
+	width: auto;
+}
+.ui-datepicker-multi .ui-datepicker-group {
+	float: left;
+}
+.ui-datepicker-multi .ui-datepicker-group table {
+	width: 95%;
+	margin: 0 auto .4em;
+}
+.ui-datepicker-multi-2 .ui-datepicker-group {
+	width: 50%;
+}
+.ui-datepicker-multi-3 .ui-datepicker-group {
+	width: 33.3%;
+}
+.ui-datepicker-multi-4 .ui-datepicker-group {
+	width: 25%;
+}
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
+	border-left-width: 0;
+}
+.ui-datepicker-multi .ui-datepicker-buttonpane {
+	clear: left;
+}
+.ui-datepicker-row-break {
+	clear: both;
+	width: 100%;
+	font-size: 0;
+}
+
+/* RTL support */
+.ui-datepicker-rtl {
+	direction: rtl;
+}
+.ui-datepicker-rtl .ui-datepicker-prev {
+	right: 2px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next {
+	left: 2px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+	right: 1px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+	left: 1px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+	clear: right;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+	float: left;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
+.ui-datepicker-rtl .ui-datepicker-group {
+	float: right;
+}
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+	border-right-width: 0;
+	border-left-width: 1px;
+}
+.ui-dialog {
+	position: absolute;
+	top: 0;
+	left: 0;
+	padding: .2em;
+	outline: 0;
+}
+.ui-dialog .ui-dialog-titlebar {
+	padding: .4em 1em;
+	position: relative;
+}
+.ui-dialog .ui-dialog-title {
+	float: left;
+	margin: .1em 0;
+	white-space: nowrap;
+	width: 90%;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+.ui-dialog .ui-dialog-titlebar-close {
+	position: absolute;
+	right: .3em;
+	top: 50%;
+	width: 21px;
+	margin: -10px 0 0 0;
+	padding: 1px;
+	height: 20px;
+}
+.ui-dialog .ui-dialog-content {
+	position: relative;
+	border: 0;
+	padding: .5em 1em;
+	background: none;
+	overflow: auto;
+}
+.ui-dialog .ui-dialog-buttonpane {
+	text-align: left;
+	border-width: 1px 0 0 0;
+	background-image: none;
+	margin-top: .5em;
+	padding: .3em 1em .5em .4em;
+}
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+	float: right;
+}
+.ui-dialog .ui-dialog-buttonpane button {
+	margin: .5em .4em .5em 0;
+	cursor: pointer;
+}
+.ui-dialog .ui-resizable-se {
+	width: 12px;
+	height: 12px;
+	right: -5px;
+	bottom: -5px;
+	background-position: 16px 16px;
+}
+.ui-draggable .ui-dialog-titlebar {
+	cursor: move;
+}
+.ui-menu {
+	list-style: none;
+	padding: 2px;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	margin: 0;
+	padding: 0;
+	width: 100%;
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px -2px 5px -2px;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration: none;
+	display: block;
+	padding: 2px .4em;
+	line-height: 1.5;
+	min-height: 0; /* support: IE7 */
+	font-weight: normal;
+}
+.ui-menu .ui-menu-item a.ui-state-focus,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+
+.ui-menu .ui-state-disabled {
+	font-weight: normal;
+	margin: .4em 0 .2em;
+	line-height: 1.5;
+}
+.ui-menu .ui-state-disabled a {
+	cursor: default;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item a {
+	position: relative;
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: .2em;
+	left: .2em;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	position: static;
+	float: right;
+}
+.ui-progressbar {
+	height: 2em;
+	text-align: left;
+	overflow: hidden;
+}
+.ui-progressbar .ui-progressbar-value {
+	margin: -1px;
+	height: 100%;
+}
+.ui-progressbar .ui-progressbar-overlay {
+	background: url("images/animated-overlay.gif");
+	height: 100%;
+	filter: alpha(opacity=25);
+	opacity: 0.25;
+}
+.ui-progressbar-indeterminate .ui-progressbar-value {
+	background-image: none;
+}
+.ui-tooltip {
+	padding: 8px;
+	position: absolute;
+	z-index: 9999;
+	max-width: 300px;
+	-webkit-box-shadow: 0 0 5px #aaa;
+	box-shadow: 0 0 5px #aaa;
+}
+body .ui-tooltip {
+	border-width: 2px;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #aaaaaa;
+	background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
+	color: #222222;
+}
+.ui-widget-content a {
+	color: #222222;
+}
+.ui-widget-header {
+	border: 1px solid #aaaaaa;
+	background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
+	color: #222222;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #222222;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #d3d3d3;
+	background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
+	font-weight: normal;
+	color: #555555;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #555555;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #999999;
+	background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #aaaaaa;
+	background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #fcefa1;
+	background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
+	color: #363636;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #363636;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cd0a0a;
+	background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
+	color: #cd0a0a;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #cd0a0a;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #cd0a0a;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70);
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35);
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+	background-position: 16px 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url(images/ui-icons_222222_256x240.png);
+}
+.ui-widget-header .ui-icon {
+	background-image: url(images/ui-icons_222222_256x240.png);
+}
+.ui-state-default .ui-icon {
+	background-image: url(images/ui-icons_888888_256x240.png);
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url(images/ui-icons_454545_256x240.png);
+}
+.ui-state-active .ui-icon {
+	background-image: url(images/ui-icons_454545_256x240.png);
+}
+.ui-state-highlight .ui-icon {
+	background-image: url(images/ui-icons_2e83ff_256x240.png);
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url(images/ui-icons_cd0a0a_256x240.png);
+}
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 4px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30);
+}
+.ui-widget-shadow {
+	margin: -8px 0 0 -8px;
+	padding: 8px;
+	background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30);
+	border-radius: 8px;
+}
diff --git a/src/main/webapp/static/js/jquery/jquery-ui-1.10.0.custom.js b/src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.js
similarity index 100%
rename from src/main/webapp/static/js/jquery/jquery-ui-1.10.0.custom.js
rename to src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.js
diff --git a/src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.min.css b/src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.min.css
new file mode 100755
index 0000000000000000000000000000000000000000..65848259f39e251fb5f4d941e7b8e4bf127c85cb
--- /dev/null
+++ b/src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.10.0 - 2013-02-14
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.tooltip.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:21px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("images/animated-overlay.gif");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-position:16px 16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
\ No newline at end of file
diff --git a/src/main/webapp/static/js/jquery/jquery-ui-1.10.0.custom.min.js b/src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.min.js
similarity index 100%
rename from src/main/webapp/static/js/jquery/jquery-ui-1.10.0.custom.min.js
rename to src/main/webapp/static/js/jquery/ui/jquery-ui-1.10.0.custom.min.js