commit 0788f42ae711dd045564f30ce29ef3d4c2462358 Author: dell Date: Fri Dec 29 16:18:40 2017 +0800 项目初始导入 diff --git a/.classpath b/.classpath new file mode 100644 index 00000000..b8e015c8 --- /dev/null +++ b/.classpath @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..ea8c4bf7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/.project b/.project new file mode 100644 index 00000000..79812e21 --- /dev/null +++ b/.project @@ -0,0 +1,53 @@ + + + gwall + + + + + + org.eclipse.wst.jsdt.core.javascriptValidator + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope new file mode 100644 index 00000000..585c967a --- /dev/null +++ b/.settings/.jsdtscope @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/.settings/com.genuitec.eclipse.j2eedt.core.prefs b/.settings/com.genuitec.eclipse.j2eedt.core.prefs new file mode 100644 index 00000000..4d10217a --- /dev/null +++ b/.settings/com.genuitec.eclipse.j2eedt.core.prefs @@ -0,0 +1,2 @@ +defaultTldInfo=f\=http\://java.sun.com/jsf/core;http\://java.sun.com/jsf/html\=h;http\://struts.apache.org/tags-bean\=bean;http\://java.sun.com/jsp/jstl/fmt\=fmt;nested\=http\://struts.apache.org/tags-nested;bean\=http\://struts.apache.org/tags-bean;http\://java.sun.com/jsp/jstl/sql\=sql;c\=http\://java.sun.com/jsp/jstl/core;fmt\=http\://java.sun.com/jsp/jstl/fmt;http\://struts.apache.org/tags-logic\=logic;http\://java.sun.com/jsp/jstl/xml\=x;http\://java.sun.com/jsp/jstl/core\=c;logic\=http\://struts.apache.org/tags-logic;h\=http\://java.sun.com/jsf/html;http\://struts.apache.org/tags-tiles\=tiles;http\://java.sun.com/jsp/jstl/functions\=fn;tiles\=http\://struts.apache.org/tags-tiles;sql\=http\://java.sun.com/jsp/jstl/sql;http\://struts.apache.org/tags-html\=html;http\://struts.apache.org/tags-nested\=nested;html\=http\://struts.apache.org/tags-html;http\://java.sun.com/jsf/core\=f;fn\=http\://java.sun.com/jsp/jstl/functions;x\=http\://java.sun.com/jsp/jstl/xml +eclipse.preferences.version=1 diff --git a/.settings/com.genuitec.eclipse.migration.prefs b/.settings/com.genuitec.eclipse.migration.prefs new file mode 100644 index 00000000..608a78ad --- /dev/null +++ b/.settings/com.genuitec.eclipse.migration.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +performed.operation.me.install.mavenfacet=1.0 diff --git a/.settings/com.genuitec.jboss.ide.eclipse.xdoclet.run.prefs b/.settings/com.genuitec.jboss.ide.eclipse.xdoclet.run.prefs new file mode 100644 index 00000000..93714704 --- /dev/null +++ b/.settings/com.genuitec.jboss.ide.eclipse.xdoclet.run.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +xdoclet.build.policy=automatic +xdoclet.jdk.support=jdk5 diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..4531ab9c --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources/b.txt=UTF-8 +encoding//src/main/resources/jdbc.properties=UTF-8 +encoding//src/main/resources/log4j.properties=UTF-8 +encoding//src/main/resources/matt.properties=UTF-8 +encoding//src/main/resources/nis.properties=UTF-8 +encoding//src/main/resources/table.properties=UTF-8 +encoding//src/main/webapp/WEB-INF/include/header.jsp=UTF-8 +encoding//src/main/webapp/WEB-INF/tlds/fns.tld=UTF-8 +encoding//src/main/webapp/WEB-INF/views/letter/process/errorView.jsp=UTF-8 +encoding//src/main/webapp/static/common/jeesite.css=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..6b5aebc4 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,13 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component new file mode 100644 index 00000000..9b367ac5 --- /dev/null +++ b/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml b/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml new file mode 100644 index 00000000..e3af8f74 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 00000000..d1f3091d --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml.bak b/.settings/org.eclipse.wst.common.project.facet.core.xml.bak new file mode 100644 index 00000000..45fbdef1 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml.bak @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 00000000..3bd5d0a4 --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 00000000..05bd71b6 --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/.settings/org.eclipse.wst.validation.prefs b/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 00000000..04cad8cb --- /dev/null +++ b/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,2 @@ +disabled=06target +eclipse.preferences.version=1 diff --git a/.settings/org.eclipse.wst.ws.service.policy.prefs b/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 00000000..6da2f3d0 --- /dev/null +++ b/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/README.md b/README.md new file mode 100644 index 00000000..01044173 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +maat rest service for web \ No newline at end of file diff --git a/lib/XmlSchema-1.4.3.jar b/lib/XmlSchema-1.4.3.jar new file mode 100644 index 00000000..656ecedd Binary files /dev/null and b/lib/XmlSchema-1.4.3.jar differ diff --git a/lib/activation-1.1.jar b/lib/activation-1.1.jar new file mode 100644 index 00000000..53f82a1c Binary files /dev/null and b/lib/activation-1.1.jar differ diff --git a/lib/ant-1.7.0.jar b/lib/ant-1.7.0.jar new file mode 100644 index 00000000..0a56a58f Binary files /dev/null and b/lib/ant-1.7.0.jar differ diff --git a/lib/ant-launcher-1.7.0.jar b/lib/ant-launcher-1.7.0.jar new file mode 100644 index 00000000..12a1e78d Binary files /dev/null and b/lib/ant-launcher-1.7.0.jar differ diff --git a/lib/aopalliance-1.0.jar b/lib/aopalliance-1.0.jar new file mode 100644 index 00000000..578b1a0c Binary files /dev/null and b/lib/aopalliance-1.0.jar differ diff --git a/lib/apache-ant-zip-2.3.jar b/lib/apache-ant-zip-2.3.jar new file mode 100644 index 00000000..61dbfb33 Binary files /dev/null and b/lib/apache-ant-zip-2.3.jar differ diff --git a/lib/asm-5.0.4.jar b/lib/asm-5.0.4.jar new file mode 100644 index 00000000..cdb283dd Binary files /dev/null and b/lib/asm-5.0.4.jar differ diff --git a/lib/aspectjweaver-1.8.6.jar b/lib/aspectjweaver-1.8.6.jar new file mode 100644 index 00000000..98e4bfef Binary files /dev/null and b/lib/aspectjweaver-1.8.6.jar differ diff --git a/lib/axiom-api-1.2.8.jar b/lib/axiom-api-1.2.8.jar new file mode 100644 index 00000000..81c07e30 Binary files /dev/null and b/lib/axiom-api-1.2.8.jar differ diff --git a/lib/axiom-dom-1.2.8.jar b/lib/axiom-dom-1.2.8.jar new file mode 100644 index 00000000..a7b4257e Binary files /dev/null and b/lib/axiom-dom-1.2.8.jar differ diff --git a/lib/axiom-impl-1.2.8.jar b/lib/axiom-impl-1.2.8.jar new file mode 100644 index 00000000..d6044768 Binary files /dev/null and b/lib/axiom-impl-1.2.8.jar differ diff --git a/lib/axis2-1.5.1.pom b/lib/axis2-1.5.1.pom new file mode 100644 index 00000000..d7e77ce9 --- /dev/null +++ b/lib/axis2-1.5.1.pom @@ -0,0 +1,258 @@ + + + + + + + org.apache + apache + 3 + + 4.0.0 + org.apache.axis2 + axis2 + 1.5.1 + pom + Apache Axis2 - Root + + modules/adb + modules/adb-codegen + modules/addressing + modules/codegen + modules/fastinfoset + modules/integration + modules/java2wsdl + modules/jibx + modules/json + modules/kernel + modules/mex + modules/mtompolicy + modules/mtompolicy-mar + modules/parent + modules/ping + modules/samples/version + modules/soapmonitor + modules/spring + modules/tool/axis2-aar-maven-plugin + modules/tool/axis2-ant-plugin + modules/tool/axis2-eclipse-codegen-plugin + modules/tool/axis2-eclipse-service-plugin + modules/tool/axis2-idea-plugin + modules/tool/axis2-java2wsdl-maven-plugin + modules/tool/axis2-mar-maven-plugin + modules/tool/axis2-wsdl2code-maven-plugin + modules/webapp + modules/xmlbeans + modules/samples + modules/scripting + modules/jaxbri + modules/metadata + modules/saaj + modules/jaxws + modules/jaxws-mar + modules/jaxws-integration + modules/clustering + modules/corba + modules/osgi + modules/transport/local + modules/transport/http + + + + plugins + + modules/tool/axis2-aar-maven-plugin + modules/tool/axis2-mar-maven-plugin + + + + transport + + + ../transport + + + + ../transport/modules/parent + ../transport/modules/base + ../transport/modules/tcp + ../transport/modules/xmpp + ../transport/modules/mail + ../transport/modules/jms + + + + release + + + release + + + + modules/documentation + modules/distribution + + + + java15 + + 1.5 + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + axis2-jar + package + + + + + + + + + + + + + + + + + run + + + + + + + + + java16 + + 1.6 + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + axis2-jar + package + + + + + + + + + + + + + + + + + run + + + + + + + + + + continuum + http://vmbuild.apache.org/continuum + + + +
axis2-cvs@ws.apache.org
+
+
+
+
+ + + scm:svn:http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ + + + scm:svn:https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/ + + http://svn.apache.org/viewvc/webservices/webservices/axis2/trunk/java/ + + + + apache-repo + Maven Central Repository + + scpexe://people.apache.org//www/people.apache.org/repo/m2-ibiblio-rsync-repository + + + + apache-snapshots + Apache Development Repository + scpexe://people.apache.org//www/people.apache.org/repo/m2-snapshot-repository + false + + + + + + maven-clean-plugin + + false + + + + org.codehaus.mojo + build-helper-maven-plugin + + + axis2-jar-package + package + + attach-artifact + + + + + target/lib/axis2-${pom.version}.jar + jar + + + + + + + + +
diff --git a/lib/axis2-adb-1.5.1.jar b/lib/axis2-adb-1.5.1.jar new file mode 100644 index 00000000..5f5d1ecd Binary files /dev/null and b/lib/axis2-adb-1.5.1.jar differ diff --git a/lib/axis2-kernel-1.5.1.jar b/lib/axis2-kernel-1.5.1.jar new file mode 100644 index 00000000..13c4c029 Binary files /dev/null and b/lib/axis2-kernel-1.5.1.jar differ diff --git a/lib/axis2-transport-http-1.5.2.jar b/lib/axis2-transport-http-1.5.2.jar new file mode 100644 index 00000000..07b72e88 Binary files /dev/null and b/lib/axis2-transport-http-1.5.2.jar differ diff --git a/lib/axis2-transport-local-1.5.4.jar b/lib/axis2-transport-local-1.5.4.jar new file mode 100644 index 00000000..916f7eb4 Binary files /dev/null and b/lib/axis2-transport-local-1.5.4.jar differ diff --git a/lib/bonecp-0.8.0.RELEASE.jar b/lib/bonecp-0.8.0.RELEASE.jar new file mode 100644 index 00000000..d47104f2 Binary files /dev/null and b/lib/bonecp-0.8.0.RELEASE.jar differ diff --git a/lib/cas-client-core-3.2.1.jar b/lib/cas-client-core-3.2.1.jar new file mode 100644 index 00000000..8fc3f3f5 Binary files /dev/null and b/lib/cas-client-core-3.2.1.jar differ diff --git a/lib/ckfinder-2.3.jar b/lib/ckfinder-2.3.jar new file mode 100644 index 00000000..4c2bf84e Binary files /dev/null and b/lib/ckfinder-2.3.jar differ diff --git a/lib/ckfinderplugin-fileeditor-2.3.jar b/lib/ckfinderplugin-fileeditor-2.3.jar new file mode 100644 index 00000000..7dfa908c Binary files /dev/null and b/lib/ckfinderplugin-fileeditor-2.3.jar differ diff --git a/lib/ckfinderplugin-imageresize-2.3.jar b/lib/ckfinderplugin-imageresize-2.3.jar new file mode 100644 index 00000000..526f8ff1 Binary files /dev/null and b/lib/ckfinderplugin-imageresize-2.3.jar differ diff --git a/lib/commons-beanutils-1.8.3.jar b/lib/commons-beanutils-1.8.3.jar new file mode 100644 index 00000000..218510bc Binary files /dev/null and b/lib/commons-beanutils-1.8.3.jar differ diff --git a/lib/commons-codec-1.10.jar b/lib/commons-codec-1.10.jar new file mode 100644 index 00000000..1d7417c4 Binary files /dev/null and b/lib/commons-codec-1.10.jar differ diff --git a/lib/commons-collections-3.2.1.jar b/lib/commons-collections-3.2.1.jar new file mode 100644 index 00000000..c35fa1fe Binary files /dev/null and b/lib/commons-collections-3.2.1.jar differ diff --git a/lib/commons-fileupload-1.3.1.jar b/lib/commons-fileupload-1.3.1.jar new file mode 100644 index 00000000..af0cda22 Binary files /dev/null and b/lib/commons-fileupload-1.3.1.jar differ diff --git a/lib/commons-httpclient-3.1.jar b/lib/commons-httpclient-3.1.jar new file mode 100644 index 00000000..7c59774a Binary files /dev/null and b/lib/commons-httpclient-3.1.jar differ diff --git a/lib/commons-io-2.2.jar b/lib/commons-io-2.2.jar new file mode 100644 index 00000000..84ca5658 Binary files /dev/null and b/lib/commons-io-2.2.jar differ diff --git a/lib/commons-lang-2.5.jar b/lib/commons-lang-2.5.jar new file mode 100644 index 00000000..ae491da8 Binary files /dev/null and b/lib/commons-lang-2.5.jar differ diff --git a/lib/commons-lang3-3.3.2.jar b/lib/commons-lang3-3.3.2.jar new file mode 100644 index 00000000..2ce08ae9 Binary files /dev/null and b/lib/commons-lang3-3.3.2.jar differ diff --git a/lib/commons-logging-1.1.1.jar b/lib/commons-logging-1.1.1.jar new file mode 100644 index 00000000..1deef144 Binary files /dev/null and b/lib/commons-logging-1.1.1.jar differ diff --git a/lib/commons-pool2-2.0.jar b/lib/commons-pool2-2.0.jar new file mode 100644 index 00000000..be6d84f9 Binary files /dev/null and b/lib/commons-pool2-2.0.jar differ diff --git a/lib/cpdetector-1.0.7.jar b/lib/cpdetector-1.0.7.jar new file mode 100644 index 00000000..825bf8a1 Binary files /dev/null and b/lib/cpdetector-1.0.7.jar differ diff --git a/lib/cxf-core-3.1.4.jar b/lib/cxf-core-3.1.4.jar new file mode 100644 index 00000000..c16dfd7e Binary files /dev/null and b/lib/cxf-core-3.1.4.jar differ diff --git a/lib/cxf-rt-bindings-soap-3.1.4.jar b/lib/cxf-rt-bindings-soap-3.1.4.jar new file mode 100644 index 00000000..15a18dca Binary files /dev/null and b/lib/cxf-rt-bindings-soap-3.1.4.jar differ diff --git a/lib/cxf-rt-bindings-xml-3.1.4.jar b/lib/cxf-rt-bindings-xml-3.1.4.jar new file mode 100644 index 00000000..9776df43 Binary files /dev/null and b/lib/cxf-rt-bindings-xml-3.1.4.jar differ diff --git a/lib/cxf-rt-databinding-jaxb-3.1.4.jar b/lib/cxf-rt-databinding-jaxb-3.1.4.jar new file mode 100644 index 00000000..6e2a1e06 Binary files /dev/null and b/lib/cxf-rt-databinding-jaxb-3.1.4.jar differ diff --git a/lib/cxf-rt-frontend-jaxws-3.1.4.jar b/lib/cxf-rt-frontend-jaxws-3.1.4.jar new file mode 100644 index 00000000..2ac6df4f Binary files /dev/null and b/lib/cxf-rt-frontend-jaxws-3.1.4.jar differ diff --git a/lib/cxf-rt-frontend-simple-3.1.4.jar b/lib/cxf-rt-frontend-simple-3.1.4.jar new file mode 100644 index 00000000..6cbbd107 Binary files /dev/null and b/lib/cxf-rt-frontend-simple-3.1.4.jar differ diff --git a/lib/cxf-rt-transports-http-3.1.4.jar b/lib/cxf-rt-transports-http-3.1.4.jar new file mode 100644 index 00000000..15f3edf4 Binary files /dev/null and b/lib/cxf-rt-transports-http-3.1.4.jar differ diff --git a/lib/cxf-rt-ws-addr-3.1.4.jar b/lib/cxf-rt-ws-addr-3.1.4.jar new file mode 100644 index 00000000..214aece1 Binary files /dev/null and b/lib/cxf-rt-ws-addr-3.1.4.jar differ diff --git a/lib/cxf-rt-ws-policy-3.1.4.jar b/lib/cxf-rt-ws-policy-3.1.4.jar new file mode 100644 index 00000000..39a4ec41 Binary files /dev/null and b/lib/cxf-rt-ws-policy-3.1.4.jar differ diff --git a/lib/cxf-rt-wsdl-3.1.4.jar b/lib/cxf-rt-wsdl-3.1.4.jar new file mode 100644 index 00000000..44f59058 Binary files /dev/null and b/lib/cxf-rt-wsdl-3.1.4.jar differ diff --git a/lib/dom4j-1.6.1.jar b/lib/dom4j-1.6.1.jar new file mode 100644 index 00000000..c8c4dbb9 Binary files /dev/null and b/lib/dom4j-1.6.1.jar differ diff --git a/lib/ehcache-core-2.6.9.jar b/lib/ehcache-core-2.6.9.jar new file mode 100644 index 00000000..99dd2d26 Binary files /dev/null and b/lib/ehcache-core-2.6.9.jar differ diff --git a/lib/ehcache-web-2.0.4.jar b/lib/ehcache-web-2.0.4.jar new file mode 100644 index 00000000..ac60a536 Binary files /dev/null and b/lib/ehcache-web-2.0.4.jar differ diff --git a/lib/ezmorph-1.0.6.jar b/lib/ezmorph-1.0.6.jar new file mode 100644 index 00000000..30fad12d Binary files /dev/null and b/lib/ezmorph-1.0.6.jar differ diff --git a/lib/filters-2.0.235-1.jar b/lib/filters-2.0.235-1.jar new file mode 100644 index 00000000..1acab564 Binary files /dev/null and b/lib/filters-2.0.235-1.jar differ diff --git a/lib/geronimo-activation_1.1_spec-1.0.1.jar b/lib/geronimo-activation_1.1_spec-1.0.1.jar new file mode 100644 index 00000000..73d52728 Binary files /dev/null and b/lib/geronimo-activation_1.1_spec-1.0.1.jar differ diff --git a/lib/geronimo-javamail_1.4_spec-1.2.jar b/lib/geronimo-javamail_1.4_spec-1.2.jar new file mode 100644 index 00000000..8582a95b Binary files /dev/null and b/lib/geronimo-javamail_1.4_spec-1.2.jar differ diff --git a/lib/geronimo-jta_1.1_spec-1.1.jar b/lib/geronimo-jta_1.1_spec-1.1.jar new file mode 100644 index 00000000..bba9290f Binary files /dev/null and b/lib/geronimo-jta_1.1_spec-1.1.jar differ diff --git a/lib/geronimo-stax-api_1.0_spec-1.0.1.jar b/lib/geronimo-stax-api_1.0_spec-1.0.1.jar new file mode 100644 index 00000000..ab1ee3ba Binary files /dev/null and b/lib/geronimo-stax-api_1.0_spec-1.0.1.jar differ diff --git a/lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar b/lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar new file mode 100644 index 00000000..c8a795a1 Binary files /dev/null and b/lib/geronimo-ws-metadata_2.0_spec-1.1.2.jar differ diff --git a/lib/guava-15.0.jar b/lib/guava-15.0.jar new file mode 100644 index 00000000..eb9ef8ad Binary files /dev/null and b/lib/guava-15.0.jar differ diff --git a/lib/httpcore-4.0.jar b/lib/httpcore-4.0.jar new file mode 100644 index 00000000..37eb7d4d Binary files /dev/null and b/lib/httpcore-4.0.jar differ diff --git a/lib/jackson-annotations-2.5.4.jar b/lib/jackson-annotations-2.5.4.jar new file mode 100644 index 00000000..3ac1d0ad Binary files /dev/null and b/lib/jackson-annotations-2.5.4.jar differ diff --git a/lib/jackson-core-2.5.4.jar b/lib/jackson-core-2.5.4.jar new file mode 100644 index 00000000..addf9391 Binary files /dev/null and b/lib/jackson-core-2.5.4.jar differ diff --git a/lib/jackson-databind-2.5.4.jar b/lib/jackson-databind-2.5.4.jar new file mode 100644 index 00000000..0bc240c9 Binary files /dev/null and b/lib/jackson-databind-2.5.4.jar differ diff --git a/lib/jackson-module-jaxb-annotations-2.5.4.jar b/lib/jackson-module-jaxb-annotations-2.5.4.jar new file mode 100644 index 00000000..49ab41c3 Binary files /dev/null and b/lib/jackson-module-jaxb-annotations-2.5.4.jar differ diff --git a/lib/javax.servlet-api-3.1.0.jar b/lib/javax.servlet-api-3.1.0.jar new file mode 100644 index 00000000..6b14c3d2 Binary files /dev/null and b/lib/javax.servlet-api-3.1.0.jar differ diff --git a/lib/jaxb-core-2.2.11.jar b/lib/jaxb-core-2.2.11.jar new file mode 100644 index 00000000..f3c84126 Binary files /dev/null and b/lib/jaxb-core-2.2.11.jar differ diff --git a/lib/jaxb-impl-2.2.11.jar b/lib/jaxb-impl-2.2.11.jar new file mode 100644 index 00000000..a5c5b23a Binary files /dev/null and b/lib/jaxb-impl-2.2.11.jar differ diff --git a/lib/jaxen-1.1.1.jar b/lib/jaxen-1.1.1.jar new file mode 100644 index 00000000..b6336311 Binary files /dev/null and b/lib/jaxen-1.1.1.jar differ diff --git a/lib/jedis-2.5.1.jar b/lib/jedis-2.5.1.jar new file mode 100644 index 00000000..463ad9e3 Binary files /dev/null and b/lib/jedis-2.5.1.jar differ diff --git a/lib/json-lib-2.4-jdk15.jar b/lib/json-lib-2.4-jdk15.jar new file mode 100644 index 00000000..68d4f3b0 Binary files /dev/null and b/lib/json-lib-2.4-jdk15.jar differ diff --git a/lib/jsp-api-2.2.jar b/lib/jsp-api-2.2.jar new file mode 100644 index 00000000..64e1b74a Binary files /dev/null and b/lib/jsp-api-2.2.jar differ diff --git a/lib/kaptcha-2.3.2.jar b/lib/kaptcha-2.3.2.jar new file mode 100644 index 00000000..19240159 Binary files /dev/null and b/lib/kaptcha-2.3.2.jar differ diff --git a/lib/log4j-1.2.14.jar b/lib/log4j-1.2.14.jar new file mode 100644 index 00000000..62513071 Binary files /dev/null and b/lib/log4j-1.2.14.jar differ diff --git a/lib/mail-1.4.jar b/lib/mail-1.4.jar new file mode 100644 index 00000000..fd4555b3 Binary files /dev/null and b/lib/mail-1.4.jar differ diff --git a/lib/metadata-extractor-2.6.2.jar b/lib/metadata-extractor-2.6.2.jar new file mode 100644 index 00000000..bd24cc1d Binary files /dev/null and b/lib/metadata-extractor-2.6.2.jar differ diff --git a/lib/mybatis-3.2.8.jar b/lib/mybatis-3.2.8.jar new file mode 100644 index 00000000..99cdd68b Binary files /dev/null and b/lib/mybatis-3.2.8.jar differ diff --git a/lib/mybatis-spring-1.2.2.jar b/lib/mybatis-spring-1.2.2.jar new file mode 100644 index 00000000..63a226f4 Binary files /dev/null and b/lib/mybatis-spring-1.2.2.jar differ diff --git a/lib/mysql-connector-java-5.1.36.jar b/lib/mysql-connector-java-5.1.36.jar new file mode 100644 index 00000000..a839c3dd Binary files /dev/null and b/lib/mysql-connector-java-5.1.36.jar differ diff --git a/lib/neethi-2.0.4.jar b/lib/neethi-2.0.4.jar new file mode 100644 index 00000000..87da3f07 Binary files /dev/null and b/lib/neethi-2.0.4.jar differ diff --git a/lib/nis-core-1.0.jar b/lib/nis-core-1.0.jar new file mode 100644 index 00000000..621a816e Binary files /dev/null and b/lib/nis-core-1.0.jar differ diff --git a/lib/poi-3.9.jar b/lib/poi-3.9.jar new file mode 100644 index 00000000..0f462880 Binary files /dev/null and b/lib/poi-3.9.jar differ diff --git a/lib/poi-ooxml-3.9.jar b/lib/poi-ooxml-3.9.jar new file mode 100644 index 00000000..8792d463 Binary files /dev/null and b/lib/poi-ooxml-3.9.jar differ diff --git a/lib/poi-ooxml-schemas-3.9.jar b/lib/poi-ooxml-schemas-3.9.jar new file mode 100644 index 00000000..eda4ef49 Binary files /dev/null and b/lib/poi-ooxml-schemas-3.9.jar differ diff --git a/lib/servlet-api-2.3.jar b/lib/servlet-api-2.3.jar new file mode 100644 index 00000000..cd5b3510 Binary files /dev/null and b/lib/servlet-api-2.3.jar differ diff --git a/lib/shiro-cas-1.2.3.jar b/lib/shiro-cas-1.2.3.jar new file mode 100644 index 00000000..e5dcf8e1 Binary files /dev/null and b/lib/shiro-cas-1.2.3.jar differ diff --git a/lib/shiro-core-1.2.3.jar b/lib/shiro-core-1.2.3.jar new file mode 100644 index 00000000..e9a09a6d Binary files /dev/null and b/lib/shiro-core-1.2.3.jar differ diff --git a/lib/shiro-ehcache-1.2.3.jar b/lib/shiro-ehcache-1.2.3.jar new file mode 100644 index 00000000..a6809571 Binary files /dev/null and b/lib/shiro-ehcache-1.2.3.jar differ diff --git a/lib/shiro-spring-1.2.3.jar b/lib/shiro-spring-1.2.3.jar new file mode 100644 index 00000000..d2844abc Binary files /dev/null and b/lib/shiro-spring-1.2.3.jar differ diff --git a/lib/shiro-web-1.2.3.jar b/lib/shiro-web-1.2.3.jar new file mode 100644 index 00000000..3dfb7995 Binary files /dev/null and b/lib/shiro-web-1.2.3.jar differ diff --git a/lib/sitemesh-3.0.1.jar b/lib/sitemesh-3.0.1.jar new file mode 100644 index 00000000..f2e59387 Binary files /dev/null and b/lib/sitemesh-3.0.1.jar differ diff --git a/lib/slf4j-api-1.7.7.jar b/lib/slf4j-api-1.7.7.jar new file mode 100644 index 00000000..bebabd96 Binary files /dev/null and b/lib/slf4j-api-1.7.7.jar differ diff --git a/lib/slf4j-log4j12-1.7.7.jar b/lib/slf4j-log4j12-1.7.7.jar new file mode 100644 index 00000000..950293b7 Binary files /dev/null and b/lib/slf4j-log4j12-1.7.7.jar differ diff --git a/lib/spring-aop-4.1.7.RELEASE.jar b/lib/spring-aop-4.1.7.RELEASE.jar new file mode 100644 index 00000000..7dce4d66 Binary files /dev/null and b/lib/spring-aop-4.1.7.RELEASE.jar differ diff --git a/lib/spring-aspects-4.1.7.RELEASE.jar b/lib/spring-aspects-4.1.7.RELEASE.jar new file mode 100644 index 00000000..4fe29221 Binary files /dev/null and b/lib/spring-aspects-4.1.7.RELEASE.jar differ diff --git a/lib/spring-beans-4.1.7.RELEASE.jar b/lib/spring-beans-4.1.7.RELEASE.jar new file mode 100644 index 00000000..6bf32eea Binary files /dev/null and b/lib/spring-beans-4.1.7.RELEASE.jar differ diff --git a/lib/spring-context-4.1.7.RELEASE.jar b/lib/spring-context-4.1.7.RELEASE.jar new file mode 100644 index 00000000..2d781451 Binary files /dev/null and b/lib/spring-context-4.1.7.RELEASE.jar differ diff --git a/lib/spring-context-support-4.1.7.RELEASE.jar b/lib/spring-context-support-4.1.7.RELEASE.jar new file mode 100644 index 00000000..3b3f5440 Binary files /dev/null and b/lib/spring-context-support-4.1.7.RELEASE.jar differ diff --git a/lib/spring-core-4.1.7.RELEASE.jar b/lib/spring-core-4.1.7.RELEASE.jar new file mode 100644 index 00000000..6441ef25 Binary files /dev/null and b/lib/spring-core-4.1.7.RELEASE.jar differ diff --git a/lib/spring-expression-4.1.7.RELEASE.jar b/lib/spring-expression-4.1.7.RELEASE.jar new file mode 100644 index 00000000..e929e9eb Binary files /dev/null and b/lib/spring-expression-4.1.7.RELEASE.jar differ diff --git a/lib/spring-jdbc-4.1.7.RELEASE.jar b/lib/spring-jdbc-4.1.7.RELEASE.jar new file mode 100644 index 00000000..ab26be0b Binary files /dev/null and b/lib/spring-jdbc-4.1.7.RELEASE.jar differ diff --git a/lib/spring-oxm-4.1.7.RELEASE.jar b/lib/spring-oxm-4.1.7.RELEASE.jar new file mode 100644 index 00000000..14a86873 Binary files /dev/null and b/lib/spring-oxm-4.1.7.RELEASE.jar differ diff --git a/lib/spring-test-4.1.7.RELEASE.jar b/lib/spring-test-4.1.7.RELEASE.jar new file mode 100644 index 00000000..6c35ed20 Binary files /dev/null and b/lib/spring-test-4.1.7.RELEASE.jar differ diff --git a/lib/spring-tx-4.1.7.RELEASE.jar b/lib/spring-tx-4.1.7.RELEASE.jar new file mode 100644 index 00000000..9d2d2348 Binary files /dev/null and b/lib/spring-tx-4.1.7.RELEASE.jar differ diff --git a/lib/spring-web-4.1.7.RELEASE.jar b/lib/spring-web-4.1.7.RELEASE.jar new file mode 100644 index 00000000..9a50dccf Binary files /dev/null and b/lib/spring-web-4.1.7.RELEASE.jar differ diff --git a/lib/spring-webmvc-4.1.7.RELEASE.jar b/lib/spring-webmvc-4.1.7.RELEASE.jar new file mode 100644 index 00000000..bc702e22 Binary files /dev/null and b/lib/spring-webmvc-4.1.7.RELEASE.jar differ diff --git a/lib/stax-api-1.0.1.jar b/lib/stax-api-1.0.1.jar new file mode 100644 index 00000000..d9a16651 Binary files /dev/null and b/lib/stax-api-1.0.1.jar differ diff --git a/lib/stax2-api-3.1.4.jar b/lib/stax2-api-3.1.4.jar new file mode 100644 index 00000000..dded0369 Binary files /dev/null and b/lib/stax2-api-3.1.4.jar differ diff --git a/lib/thumbnailator-0.4.2.jar b/lib/thumbnailator-0.4.2.jar new file mode 100644 index 00000000..b1b96cd2 Binary files /dev/null and b/lib/thumbnailator-0.4.2.jar differ diff --git a/lib/woden-api-1.0M8.jar b/lib/woden-api-1.0M8.jar new file mode 100644 index 00000000..095adbb8 Binary files /dev/null and b/lib/woden-api-1.0M8.jar differ diff --git a/lib/woden-impl-dom-1.0M8.jar b/lib/woden-impl-dom-1.0M8.jar new file mode 100644 index 00000000..4974af35 Binary files /dev/null and b/lib/woden-impl-dom-1.0M8.jar differ diff --git a/lib/woodstox-core-asl-4.4.1.jar b/lib/woodstox-core-asl-4.4.1.jar new file mode 100644 index 00000000..d8b4e8cf Binary files /dev/null and b/lib/woodstox-core-asl-4.4.1.jar differ diff --git a/lib/wsdl4j-1.6.2.jar b/lib/wsdl4j-1.6.2.jar new file mode 100644 index 00000000..b9ffc36b Binary files /dev/null and b/lib/wsdl4j-1.6.2.jar differ diff --git a/lib/wstx-asl-3.2.4.jar b/lib/wstx-asl-3.2.4.jar new file mode 100644 index 00000000..700ccf64 Binary files /dev/null and b/lib/wstx-asl-3.2.4.jar differ diff --git a/lib/xalan-2.7.0.jar b/lib/xalan-2.7.0.jar new file mode 100644 index 00000000..007be396 Binary files /dev/null and b/lib/xalan-2.7.0.jar differ diff --git a/lib/xercesImpl-2.8.1.jar b/lib/xercesImpl-2.8.1.jar new file mode 100644 index 00000000..3b351f6e Binary files /dev/null and b/lib/xercesImpl-2.8.1.jar differ diff --git a/lib/xml-apis-1.3.03.jar b/lib/xml-apis-1.3.03.jar new file mode 100644 index 00000000..b338fb66 Binary files /dev/null and b/lib/xml-apis-1.3.03.jar differ diff --git a/lib/xml-resolver-1.2.jar b/lib/xml-resolver-1.2.jar new file mode 100644 index 00000000..e535bdc0 Binary files /dev/null and b/lib/xml-resolver-1.2.jar differ diff --git a/lib/xmlParserAPIs-2.6.0.jar b/lib/xmlParserAPIs-2.6.0.jar new file mode 100644 index 00000000..2dd83771 Binary files /dev/null and b/lib/xmlParserAPIs-2.6.0.jar differ diff --git a/lib/xmlbeans-2.3.0.jar b/lib/xmlbeans-2.3.0.jar new file mode 100644 index 00000000..ccd81634 Binary files /dev/null and b/lib/xmlbeans-2.3.0.jar differ diff --git a/lib/xmlpull-1.1.3.1.jar b/lib/xmlpull-1.1.3.1.jar new file mode 100644 index 00000000..cbc149d0 Binary files /dev/null and b/lib/xmlpull-1.1.3.1.jar differ diff --git a/lib/xmlschema-core-2.2.1.jar b/lib/xmlschema-core-2.2.1.jar new file mode 100644 index 00000000..cab69fd4 Binary files /dev/null and b/lib/xmlschema-core-2.2.1.jar differ diff --git a/lib/xmpcore-5.1.2.jar b/lib/xmpcore-5.1.2.jar new file mode 100644 index 00000000..ecd5db14 Binary files /dev/null and b/lib/xmpcore-5.1.2.jar differ diff --git a/lib/xpp3_min-1.1.4c.jar b/lib/xpp3_min-1.1.4c.jar new file mode 100644 index 00000000..813a9a83 Binary files /dev/null and b/lib/xpp3_min-1.1.4c.jar differ diff --git a/lib/xstream-1.4.7.jar b/lib/xstream-1.4.7.jar new file mode 100644 index 00000000..ea4b6a28 Binary files /dev/null and b/lib/xstream-1.4.7.jar differ diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..18dae5f4 --- /dev/null +++ b/pom.xml @@ -0,0 +1,616 @@ + + + + + 4.0.0 + war + gk + com.nis.springmvc + gk + 0.0.1-SNAPSHOT + + + + + + + nexus + Team Nexus Repository + http://10.0.6.30:8044/content/groups/public + + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + [1.0.0,) + + copy-dependencies + + + + + + + + + + + org.mybatis.generator + mybatis-generator-maven-plugin + [1.3.2,) + + generate + + + + + + + + + UTF-8 + + + + + + + + org.mybatis.generator + mybatis-generator-maven-plugin + 1.3.2 + + + Generate MyBatis Artifacts + + generate + + + + + + true + true + + + + + + mysql + mysql-connector-java + 5.1.36 + + + + org.mybatis + mybatis + ${mybatis.version} + + + + org.mybatis.generator + mybatis-generator-core + 1.3.2 + + + + + + + + + + + org.mortbay.jetty + maven-jetty-plugin + jar + + + + 8888 + 30000 + + + ${project.build.directory}/${pom.artifactId}-${pom.version} + / + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.7 + 1.7 + UTF-8 + + + + + + + + 4.1.7.RELEASE + 3.2.8 + 1.2.3 + 3.3.2 + 2.6.9 + 2.0.4 + + 2.5.4 + 3.0.1 + 1.4.7 + 3.9 + 1.7.7 + UTF-8 + + + + + + junit + junit + 4.11 + test + + + + com.mangofactory + swagger-springmvc + 1.0.2 + + + + + org.springframework + spring-context-support + ${spring.version} + + + + org.springframework + spring-oxm + ${spring.version} + + + + org.springframework + spring-jdbc + ${spring.version} + + + + org.springframework + spring-webmvc + ${spring.version} + + + + + org.springframework + spring-test + ${spring.version} + + + + org.springframework + spring-web + ${spring.version} + + + + org.springframework + spring-aspects + ${spring.version} + + + + org.sitemesh + sitemesh + ${sitemesh.version} + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + + + + javax.servlet + jstl + 1.2 + runtime + + + + commons-fileupload + commons-fileupload + 1.3.1 + + + + commons-codec + commons-codec + 1.10 + + + + com.github.penggle + kaptcha + 2.3.2 + + + + + com.thoughtworks.xstream + xstream + ${xstream.version} + + + + + com.drewnoakes + metadata-extractor + 2.6.2 + + + + + net.sf.ehcache + ehcache-core + ${ehcache.version} + + + net.sf.ehcache + ehcache-web + ${ehcache-web.version} + + + redis.clients + jedis + 2.9.0 + + + + + + + org.apache.shiro + shiro-core + ${shiro.version} + + + org.apache.shiro + shiro-spring + ${shiro.version} + + + org.apache.shiro + shiro-cas + ${shiro.version} + + + commons-logging + commons-logging + + + + + org.apache.shiro + shiro-web + ${shiro.version} + + + org.apache.shiro + shiro-ehcache + ${shiro.version} + + + + + + + + + + + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + + + com.jolbox + bonecp + 0.8.0.RELEASE + + + + mysql + mysql-connector-java + 5.1.36 + + + + com.nis.oracle + ojdbc14 + 10.2.0.40 + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + + + + + log4j + log4j + 1.2.14 + + + + org.mybatis + mybatis + ${mybatis.version} + + + + org.mybatis + mybatis-spring + 1.2.2 + + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + ${jackson.version} + + + + + org.apache.poi + poi + ${poi.version} + + + org.apache.poi + poi-ooxml + ${poi.version} + + + org.apache.poi + poi-ooxml-schemas + ${poi.version} + + + + + + net.coobird + thumbnailator + 0.4.2 + + + com.ckfinder + apache-ant-zip + 2.3 + + + com.ckfinder + ckfinder + 2.3 + + + com.ckfinder + ckfinderplugin-fileeditor + 2.3 + + + com.ckfinder + ckfinderplugin-imageresize + 2.3 + + + + + + org.apache.cxf + cxf-rt-frontend-jaxws + 3.1.4 + + + + org.apache.cxf + cxf-rt-transports-http + 3.1.4 + + + + org.apache.axis2 + axis2 + 1.5.1 + pom + compile + + + org.apache.axis2 + axis2-adb + 1.5.1 + jar + compile + + + org.apache.axis2 + axis2-kernel + 1.5.1 + jar + compile + + + javax.servlet + servlet-api + + + + + org.apache.axis2 + axis2-transport-http + 1.5.2 + compile + + + org.apache.axis2 + axis2-transport-local + 1.5.4 + compile + + + + + info.monitorenter + cpdetector + 1.0.7 + + + + com.nis + nis-core + 1.0 + + + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + org.apache.hive + hive-jdbc + 2.1.0 + + + org.apache.logging.log4j + log4j-1.2-api + + + org.apache.logging.log4j + log4j-web + + + org.apache.logging.log4j + log4j-slf4j-impl + + + tomcat + jasper-compiler + + + tomcat + jasper-runtime + + + org.mortbay.jetty + jsp-2.1 + + + + + org.apache.httpcomponents + httpcore + 4.4 + + + jdk.tools + jdk.tools + 1.7 + system + ${JAVA_HOME}/lib/tools.jar + + + org.apache.httpcomponents + httpclient + 4.4 + + + + + diff --git a/src/main/java/com/nis/datasource/CustomerContextHolder.java b/src/main/java/com/nis/datasource/CustomerContextHolder.java new file mode 100644 index 00000000..5ad214bd --- /dev/null +++ b/src/main/java/com/nis/datasource/CustomerContextHolder.java @@ -0,0 +1,28 @@ +package com.nis.datasource; + +public class CustomerContextHolder { + public static final String DATA_SOURCE_A = "dataSourceA"; + public static final String DATA_SOURCE_B = "dataSourceB"; + public static final String DATA_SOURCE_C = "dataSourceC"; + public static final String DATA_SOURCE_D = "dataSourceD"; + public static final String DATA_SOURCE_E = "dataSourceE"; + public static final String DATA_SOURCE_F = "dataSourceF"; + public static final String DATA_SOURCE_G = "dataSourceG"; + public static final String DATA_SOURCE_H = "dataSourceH"; + + //线程本地环境 + private static final ThreadLocal contextHolder = new ThreadLocal(); + //设置数据源类型 + public static void setCustomerType(String customerType){ + contextHolder.set(customerType); + } + //获取数据源类型 + public static String getCustomerType(){ + return contextHolder.get(); + } + //清除数据源类型 + public static void clearCustomerType(){ + contextHolder.remove(); + } + +} diff --git a/src/main/java/com/nis/datasource/DynamicDataSource.java b/src/main/java/com/nis/datasource/DynamicDataSource.java new file mode 100644 index 00000000..f9f20912 --- /dev/null +++ b/src/main/java/com/nis/datasource/DynamicDataSource.java @@ -0,0 +1,12 @@ +package com.nis.datasource; + +import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; + +public class DynamicDataSource extends AbstractRoutingDataSource { + + @Override + protected Object determineCurrentLookupKey() { + return CustomerContextHolder.getCustomerType(); + } + +} diff --git a/src/main/java/com/nis/domain/BaseEntity.java b/src/main/java/com/nis/domain/BaseEntity.java new file mode 100644 index 00000000..4023dc6b --- /dev/null +++ b/src/main/java/com/nis/domain/BaseEntity.java @@ -0,0 +1,168 @@ +package com.nis.domain; + +import java.io.Serializable; +import java.util.Map; + +import javax.xml.bind.annotation.XmlTransient; + +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.google.common.collect.Maps; +import com.nis.supcan.SupCol; +import com.nis.supcan.SupTreeList; +import com.nis.util.Configurations; +import com.nis.util.StringUtil; +import com.nis.web.security.UserUtils; + +/** + * Entity支持类 + * @author ThinkGem + * @version 2014-05-16 + */ +@SupTreeList +public abstract class BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 删除标记(1:正常;0:删除;2:审核;) + */ + public static final String DEL_FLAG_NORMAL = "1"; + public static final String DEL_FLAG_DELETE = "0"; + public static final String DEL_FLAG_AUDIT = "2"; + + /** + * 实体编号(唯一标识) + */ + protected Long id; + + /** + * 当前用户 + */ + protected SysUser currentUser; + + /** + * 当前实体分页对象 + */ + protected Page page; + + /** + * 自定义SQL(SQL标识,SQL内容) + */ + protected Map sqlMap; + + /** + * 是否是新记录(默认:false),调用setIsNewRecord()设置新记录,使用自定义ID。 + * 设置为true后强制执行插入语句,ID不会自动生成,需从手动传入。 + */ + protected boolean isNewRecord = false; + + public BaseEntity() { + + } + + public BaseEntity(Long id) { + this(); + this.id = id; + } + + @SupCol(isUnique="true", isHide="true") + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + @JsonIgnore + @XmlTransient + public SysUser getCurrentUser() { + if(currentUser == null){ + currentUser = UserUtils.getUser(); + } + return currentUser; + } + + public void setCurrentUser(SysUser currentUser) { + this.currentUser = currentUser; + } + + @JsonIgnore + @XmlTransient + public Page getPage() { + if (page == null){ + page = new Page(); + } + return page; + } + + public Page setPage(Page page) { + this.page = page; + return page; + } + + @JsonIgnore + @XmlTransient + public Map getSqlMap() { + if (sqlMap == null){ + sqlMap = Maps.newHashMap(); + } + return sqlMap; + } + + public void setSqlMap(Map sqlMap) { + this.sqlMap = sqlMap; + } + + + /** + * 是否是新记录(默认:false),调用setIsNewRecord()设置新记录,使用自定义ID。 + * 设置为true后强制执行插入语句,ID不会自动生成,需从手动传入。 + * @return + */ + @JsonIgnore + public boolean getIsNewRecord() { + return isNewRecord || StringUtil.isEmpty(getId()); + } + + /** + * 是否是新记录(默认:false),调用setIsNewRecord()设置新记录,使用自定义ID。 + * 设置为true后强制执行插入语句,ID不会自动生成,需从手动传入。 + */ + public void setIsNewRecord(boolean isNewRecord) { + this.isNewRecord = isNewRecord; + } + + /** + * 获取数据库名称 + */ + @JsonIgnore + public String getDbName(){ + return Configurations.getStringProperty("jdbc.type", "mysql"); + } + + @Override + public boolean equals(Object obj) { + if (null == obj) { + return false; + } + if (this == obj) { + return true; + } + if (!getClass().equals(obj.getClass())) { + return false; + } + BaseEntity that = (BaseEntity) obj; + return null == this.getId() ? false : this.getId().equals(that.getId()); + } + + @Override + public String toString() { + return ReflectionToStringBuilder.toString(this); + } + + + +} diff --git a/src/main/java/com/nis/domain/ControlLog.java b/src/main/java/com/nis/domain/ControlLog.java new file mode 100644 index 00000000..b7c9ef6d --- /dev/null +++ b/src/main/java/com/nis/domain/ControlLog.java @@ -0,0 +1,120 @@ +/** +* @Title: ControlLog.java +* @Package com.nis.domain +* @Description: TODO(用一句话描述该文件做什么) +* @author (darnell) +* @date 2016年8月15日 下午4:11:12 +* @version V1.0 +*/ +package com.nis.domain; + +import java.util.Date; + +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; + +/** +* @ClassName: ControlLog +* @Description: TODO(这里用一句话描述这个类的作用) +* @author (darnell) +* @date 2016年8月15日 下午4:11:12 +* @version V1.0 +*/ +@ApiModel +public class ControlLog extends BaseEntity { + /** + * @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么) + */ + private static final long serialVersionUID = 7644628891063420679L; + /** + */ + @ApiModelProperty(value="域名", required=true) + private String domain; + @ApiModelProperty(value="标题", required=true) + private String title; + @ApiModelProperty(value="源IP", required=true) + private String srcIp; + @ApiModelProperty(value="应答IP", required=true) + private String resIp; + @ApiModelProperty(value="状态", required=true) + private Integer status; + @ApiModelProperty(value="操作时间", required=true) + private Date optTime; + /** + * @return domain + */ + public String getDomain() { + return domain; + } + /** + * @param domain 要设置的 domain + */ + public void setDomain(String domain) { + this.domain = domain; + } + /** + * @return title + */ + public String getTitle() { + return title; + } + /** + * @param title 要设置的 title + */ + public void setTitle(String title) { + this.title = title; + } + /** + * @return srcIp + */ + public String getSrcIp() { + return srcIp; + } + /** + * @param srcIp 要设置的 srcIp + */ + public void setSrcIp(String srcIp) { + this.srcIp = srcIp; + } + /** + * @return resIp + */ + public String getResIp() { + return resIp; + } + /** + * @param resIp 要设置的 resIp + */ + public void setResIp(String resIp) { + this.resIp = resIp; + } + + /** + * @return status + */ + public Integer getStatus() { + return status; + } + /** + * @param status 要设置的 status + */ + public void setStatus(Integer status) { + this.status = status; + } + /** + * @return optTime + */ + public Date getOptTime() { + return optTime; + } + /** + * @param optTime 要设置的 optTime + */ + public void setOptTime(Date optTime) { + this.optTime = optTime; + } + + + + +} diff --git a/src/main/java/com/nis/domain/DfJitLogEntity.java b/src/main/java/com/nis/domain/DfJitLogEntity.java new file mode 100644 index 00000000..5d967c0a --- /dev/null +++ b/src/main/java/com/nis/domain/DfJitLogEntity.java @@ -0,0 +1,179 @@ +/** +* @Title: LogEntity.java +* @Package com.nis.domain +* @Description: TODO(用一句话描述该文件做什么) +* @author (darnell) +* @date 2016年9月1日 上午10:16:54 +* @version V1.0 +*/ +package com.nis.domain; + +import java.io.Serializable; +import java.util.Date; +import java.util.Map; +import javax.xml.bind.annotation.XmlTransient; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.google.common.collect.Maps; +import com.nis.util.JsonDateSerializer; +import com.wordnik.swagger.annotations.ApiModelProperty; + +/** + * + * @ClassName: DfJitLogEntity + * @Description: TODO(实时统计公共实体部分) + * @author (rkg) + * @date 2016年9月13日下午2:54:12 + * @version V1.0 + */ +public abstract class DfJitLogEntity implements Serializable { + + @ApiModelProperty(value = "id", required = true) + protected Long statId; + @ApiModelProperty(value = "统计时间", required = true) + protected Date reportTime; + @ApiModelProperty(value = "ip所属国家", required = false) + protected String nation; + @ApiModelProperty(value = "ip所属省", required = false) + protected String province; + @ApiModelProperty(value = "ip所属市", required = false) + protected String city; + @ApiModelProperty(value = "日志数量", required = true) + protected Long sum; + @ApiModelProperty(value = "业务类型", required = true) + protected Integer service; + + /** + * 公共查询部分 + */ + protected String searchReportStartTime; + protected String searchReportEndTime; + protected String searchService; + + /** + * 当前实体分页对象 + */ + protected Page page; + + /** + * 自定义SQL(SQL标识,SQL内容) + */ + protected Map sqlMap; + + public DfJitLogEntity() { + super(); + } + + public Long getStatId() { + return statId; + } + + public void setStatId(Long statId) { + this.statId = statId; + } + + @JsonSerialize(using = JsonDateSerializer.class) + public Date getReportTime() { + return reportTime; + } + + public void setReportTime(Date reportTime) { + this.reportTime = reportTime; + } + + public String getNation() { + return nation; + } + + public void setNation(String nation) { + this.nation = nation; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + + public Long getSum() { + return sum; + } + + public void setSum(Long sum) { + this.sum = sum; + } + + public Integer getService() { + return service; + } + + public void setService(Integer service) { + this.service = service; + } + + @JsonIgnore + public String getSearchReportStartTime() { + return searchReportStartTime; + } + + public void setSearchReportStartTime(String searchReportStartTime) { + this.searchReportStartTime = searchReportStartTime; + } + + @JsonIgnore + public String getSearchReportEndTime() { + return searchReportEndTime; + } + + public void setSearchReportEndTime(String searchReportEndTime) { + this.searchReportEndTime = searchReportEndTime; + } + + + @JsonIgnore + public String getSearchService() { + return searchService; + } + + public void setSearchService(String searchService) { + this.searchService = searchService; + } + + @JsonIgnore + @XmlTransient + public Page getPage() { + if (page == null) { + page = new Page(); + } + return page; + } + + public void setPage(Page page) { + this.page = page; + } + + @JsonIgnore + @XmlTransient + public Map getSqlMap() { + if (sqlMap == null) { + sqlMap = Maps.newHashMap(); + } + return sqlMap; + } + + public void setSqlMap(Map sqlMap) { + this.sqlMap = sqlMap; + } + +} diff --git a/src/main/java/com/nis/domain/DfReportEntity.java b/src/main/java/com/nis/domain/DfReportEntity.java new file mode 100644 index 00000000..8d85bb90 --- /dev/null +++ b/src/main/java/com/nis/domain/DfReportEntity.java @@ -0,0 +1,149 @@ +package com.nis.domain; + +import java.io.Serializable; +import java.util.Date; +import java.util.Map; + +import javax.xml.bind.annotation.XmlTransient; + +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.google.common.collect.Maps; +import com.nis.domain.Page; +import com.nis.util.Configurations; +import com.nis.util.JsonDateSerializer; +import com.wordnik.swagger.annotations.ApiModelProperty; + +public class DfReportEntity implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 2990823464993846973L; + @ApiModelProperty(value = "A系统", required = true) + protected Long asum; + @ApiModelProperty(value = "B系统", required = true) + protected Long bsum; + @ApiModelProperty(value = "C系统", required = true) + protected Long csum; + @ApiModelProperty(value = "统计时间", required = true) + protected Date reportTime; + + @ApiModelProperty(value = "全A+单B", required = true) + protected Long absum; + + public Long getAsum() { + return asum; + } + + public void setAsum(Long asum) { + this.asum = asum; + } + + public Long getBsum() { + return bsum; + } + + public void setBsum(Long bsum) { + this.bsum = bsum; + } + + @JsonSerialize(using = JsonDateSerializer.class) + public Date getReportTime() { + return reportTime; + } + + public void setReportTime(Date reportTime) { + this.reportTime = reportTime; + } + + protected String searchReportStartTime; + protected String searchReportEndTime; + + @JsonIgnore + public String getSearchReportStartTime() { + return searchReportStartTime; + } + + public void setSearchReportStartTime(String searchReportStartTime) { + this.searchReportStartTime = searchReportStartTime; + } + + @JsonIgnore + public String getSearchReportEndTime() { + return searchReportEndTime; + } + + public void setSearchReportEndTime(String searchReportEndTime) { + this.searchReportEndTime = searchReportEndTime; + } + + /** + * 当前实体分页对象 + */ + protected Page page; + + /** + * 自定义SQL(SQL标识,SQL内容) + */ + protected Map sqlMap; + + @JsonIgnore + @XmlTransient + public Page getPage() { + if (page == null) { + page = new Page(); + } + return page; + } + + public Page setPage(Page page) { + this.page = page; + return page; + } + + @JsonIgnore + @XmlTransient + public Map getSqlMap() { + if (sqlMap == null) { + sqlMap = Maps.newHashMap(); + } + return sqlMap; + } + + public void setSqlMap(Map sqlMap) { + this.sqlMap = sqlMap; + } + + /** + * 获取数据库名称 + */ + @JsonIgnore + public String getDbName() { + return Configurations.getStringProperty("jdbc.type", "mysql"); + } + + @Override + public String toString() { + return ReflectionToStringBuilder.toString(this); + } + + public Long getAbsum() { + return absum; + } + + public void setAbsum(Long absum) { + this.absum = absum; + } + + public Long getCsum() { + return csum; + } + + public void setCsum(Long csum) { + this.csum = csum; + } + +} diff --git a/src/main/java/com/nis/domain/LogEntity.java b/src/main/java/com/nis/domain/LogEntity.java new file mode 100644 index 00000000..0f5bab41 --- /dev/null +++ b/src/main/java/com/nis/domain/LogEntity.java @@ -0,0 +1,841 @@ +/** +* @Title: LogEntity.java +* @Package com.nis.domain +* @Description: TODO(用一句话描述该文件做什么) +* @author (darnell) +* @date 2016年9月1日 上午10:16:54 +* @version V1.0 +*/ +package com.nis.domain; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Map; + +import javax.xml.bind.annotation.XmlTransient; + +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.google.common.collect.Maps; +import com.nis.util.Configurations; +import com.nis.util.JsonDateSerializer; +import com.wordnik.swagger.annotations.ApiModelProperty; + +/** +* @ClassName: LogEntity +* @Description: TODO(日志公共实体部分) +* @author (darnell) +* @date 2016年9月1日 上午10:16:54 +* @version V1.0 +*/ +public abstract class LogEntity implements Serializable { + + /** + * @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么) + */ + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value="日志编号", required=true) + protected Long id; + + @ApiModelProperty(value="配置ID", required=true) + protected Long cfgId; + @ApiModelProperty(value="发现时间", required=true) + protected Date foundTime; + @ApiModelProperty(value="接收时间", required=true) + protected Date recvTime; + /*@ApiModelProperty(value="外层嵌套关联信息ID", required=true) + protected Long overId;*/ + @ApiModelProperty(value="外层嵌套关联信息ID", required=true) + protected String overId; + @ApiModelProperty(value="协议类型", required=true) + protected String protocol; + @ApiModelProperty(value="服务端ip地址", required=true) + protected String serverIp; + @ApiModelProperty(value="客户端ip地址", required=true) + protected String clientIp; + @ApiModelProperty(value="服务端端口", required=true) + protected Integer serverPort; + @ApiModelProperty(value="客户端端口", required=true) + protected Integer clientPort; + @ApiModelProperty(value="嵌套协议类型", required=true) + protected String nestProtocol; + @ApiModelProperty(value="嵌套服务端ip地址", required=true) + protected String nestServerIp; + @ApiModelProperty(value="嵌套客户端ip地址", required=true) + protected String nestClientIp; + @ApiModelProperty(value="嵌套服务端端口", required=true) + protected Integer nestServerPort; + @ApiModelProperty(value="嵌套客户端端口", required=true) + protected Integer nestClientPort; + @ApiModelProperty(value="业务类型", required=true) + protected Integer serviceType; + @ApiModelProperty(value="出入口编号", required=true) + protected Long entranceId; + @ApiModelProperty(value="处理机IP", required=true) + protected String cljIp; + @ApiModelProperty(value="封堵包记录文件", required=true) + protected String injectedPktFile; + + @ApiModelProperty(value="存放现场日志文件的URL地址", required=true) + protected String sceneFile; + @ApiModelProperty(value="管控动作", required=true) + protected Integer action; + @ApiModelProperty(value="服务端地址定位信息", required=true) + protected String serverLocate; + @ApiModelProperty(value="客户端地址定位信息", required=true) + protected String clientLocate; + + + protected Long foundTimeCluster; + protected Long recvTimeCluster; + + + + + protected String searchFoundStartTime; + protected String searchFoundEndTime; + protected Long searchFoundStartTimeCluster; + protected Long searchFoundEndTimeCluster; + protected String searchCfgId; + protected String searchProtocol; + protected String searchServiceType; + protected String searchServerIp; + protected String searchClientIp; + protected String searchEntranceId; + protected String searchCljIp; + protected String tableName;//神通数据库根据A/B版,动态切换表名 + + @JsonIgnore + public Long getFoundTimeCluster() { + return foundTimeCluster; + } + @JsonIgnore + public Long getRecvTimeCluster() { + return recvTimeCluster; + } + public void setFoundTimeCluster(Long foundTimeCluster) { + this.foundTimeCluster = foundTimeCluster; + } + public void setRecvTimeCluster(Long recvTimeCluster) { + this.recvTimeCluster = recvTimeCluster; + } + + @JsonIgnore + public Long getSearchFoundStartTimeCluster() { + return searchFoundStartTimeCluster; + } + public void setSearchFoundStartTimeCluster(Long searchFoundStartTimeCluster) { + this.searchFoundStartTimeCluster = searchFoundStartTimeCluster; + } + @JsonIgnore + public Long getSearchFoundEndTimeCluster() { + return searchFoundEndTimeCluster; + } + public void setSearchFoundEndTimeCluster(Long searchFoundEndTimeCluster) { + this.searchFoundEndTimeCluster = searchFoundEndTimeCluster; + } + @JsonIgnore + public String getTableName() { + return tableName; + } + public void setTableName(String tableName) { + this.tableName = tableName; + } + public String getOverId() { + return overId; + } + public void setOverId(String overId) { + this.overId = overId; + } + /** + * 当前实体分页对象 + */ + protected Page page; + + /** + * 自定义SQL(SQL标识,SQL内容) + */ + protected Map sqlMap; + + /** + * @Title: + * @Description: TODO + * @param 入参 + */ + public LogEntity() { + super(); + } + + public String getInjectedPktFile() { + return injectedPktFile; + } + + public void setInjectedPktFile(String injectedPktFile) { + this.injectedPktFile = injectedPktFile; + } + + + /** + * @return id + */ + public Long getId() { + return id; + } + + + + + /** + * @param id 要设置的 id + */ + public void setId(Long id) { + this.id = id; + } + + + + + /** + * @return cfgId + */ + public Long getCfgId() { + return cfgId; + } + + + + + /** + * @param cfgId 要设置的 cfgId + */ + public void setCfgId(Long cfgId) { + this.cfgId = cfgId; + } + + + + + /** + * @return foundTime + */ + @JsonSerialize(using=JsonDateSerializer.class) + public Date getFoundTime() { + if(foundTime ==null && this.foundTimeCluster != null){ + foundTime=new Date(this.foundTimeCluster*1000); + } + return foundTime; + } + + + + + /** + * @param foundTime 要设置的 foundTime + */ + public void setFoundTime(Date foundTime) { + this.foundTime = foundTime; + } + + + + + /** + * @return recvTime + */ + @JsonSerialize(using=JsonDateSerializer.class) + public Date getRecvTime() { + if(recvTime ==null && this.recvTimeCluster != null){ + recvTime=new Date(this.recvTimeCluster*1000); + } + return recvTime; + } + + + + + /** + * @param recvTime 要设置的 recvTime + */ + public void setRecvTime(Date recvTime) { + this.recvTime = recvTime; + } + + + + + /** + * @return overId + */ + /*public Long getOverId() { + return overId; + } + + + + + *//** + * @param overId 要设置的 overId + *//* + public void setOverId(Long overId) { + this.overId = overId; + }*/ + + + + + /** + * @return protocol + */ + public String getProtocol() { + return protocol; + } + + + + + /** + * @param protocol 要设置的 protocol + */ + public void setProtocol(String protocol) { + this.protocol = protocol; + } + + + + + /** + * @return serverIp + */ + public String getServerIp() { + return serverIp; + } + + + + + /** + * @param serverIp 要设置的 serverIp + */ + public void setServerIp(String serverIp) { + this.serverIp = serverIp; + } + + + + + /** + * @return clientIp + */ + public String getClientIp() { + return clientIp; + } + + + + + /** + * @param clientIp 要设置的 clientIp + */ + public void setClientIp(String clientIp) { + this.clientIp = clientIp; + } + + + + + /** + * @return serverPort + */ + public Integer getServerPort() { + return serverPort; + } + + + + + /** + * @param serverPort 要设置的 serverPort + */ + public void setServerPort(Integer serverPort) { + this.serverPort = serverPort; + } + + + + + /** + * @return clientPort + */ + public Integer getClientPort() { + return clientPort; + } + + + + + /** + * @param clientPort 要设置的 clientPort + */ + public void setClientPort(Integer clientPort) { + this.clientPort = clientPort; + } + + + + + /** + * @return nestProtocol + */ + public String getNestProtocol() { + return nestProtocol; + } + + + + + /** + * @param nestProtocol 要设置的 nestProtocol + */ + public void setNestProtocol(String nestProtocol) { + this.nestProtocol = nestProtocol; + } + + + + + /** + * @return nestServerIp + */ + public String getNestServerIp() { + return nestServerIp; + } + + + + + /** + * @param nestServerIp 要设置的 nestServerIp + */ + public void setNestServerIp(String nestServerIp) { + this.nestServerIp = nestServerIp; + } + + + + + /** + * @return nestClientIp + */ + public String getNestClientIp() { + return nestClientIp; + } + + + + + /** + * @param nestClientIp 要设置的 nestClientIp + */ + public void setNestClientIp(String nestClientIp) { + this.nestClientIp = nestClientIp; + } + + + + + /** + * @return nestServerPort + */ + public Integer getNestServerPort() { + return nestServerPort; + } + + + + + /** + * @param nestServerPort 要设置的 nestServerPort + */ + public void setNestServerPort(Integer nestServerPort) { + this.nestServerPort = nestServerPort; + } + + + + + /** + * @return nestClientPort + */ + public Integer getNestClientPort() { + return nestClientPort; + } + + + + + /** + * @param nestClientPort 要设置的 nestClientPort + */ + public void setNestClientPort(Integer nestClientPort) { + this.nestClientPort = nestClientPort; + } + + + + + /** + * @return serviceType + */ + public Integer getServiceType() { + return serviceType; + } + + + + + /** + * @param serviceType 要设置的 serviceType + */ + public void setServiceType(Integer serviceType) { + this.serviceType = serviceType; + } + + + + + /** + * @return entranceId + */ + public Long getEntranceId() { + return entranceId; + } + + + + + /** + * @param entranceId 要设置的 entranceId + */ + public void setEntranceId(Long entranceId) { + this.entranceId = entranceId; + } + + + + + /** + * @return cljIp + */ + public String getCljIp() { + return cljIp; + } + + + + + /** + * @param cljIp 要设置的 cljIp + */ + public void setCljIp(String cljIp) { + this.cljIp = cljIp; + } + + + + + public String getServerLocate() { + return serverLocate; + } + + + + + public void setServerLocate(String serverLocate) { + this.serverLocate = serverLocate; + } + + + + + public String getClientLocate() { + return clientLocate; + } + + + + + public void setClientLocate(String clientLocate) { + this.clientLocate = clientLocate; + } + + + + + @JsonIgnore + @XmlTransient + public Page getPage() { + if (page == null){ + page = new Page(); + } + return page; + } + + public Page setPage(Page page) { + this.page = page; + return page; + } + + @JsonIgnore + @XmlTransient + public Map getSqlMap() { + if (sqlMap == null){ + sqlMap = Maps.newHashMap(); + } + return sqlMap; + } + + public void setSqlMap(Map sqlMap) { + this.sqlMap = sqlMap; + } + + /** + * 获取数据库名称 + */ + @JsonIgnore + public String getDbName(){ + return Configurations.getStringProperty("jdbc.type", "mysql"); + } + + @Override + public boolean equals(Object obj) { + if (null == obj) { + return false; + } + if (this == obj) { + return true; + } + if (!getClass().equals(obj.getClass())) { + return false; + } + LogEntity that = (LogEntity) obj; + return null == this.getId() ? false : this.getId().equals(that.getId()); + } + + + + /** + * @return searchFoundStartTime + */ + @JsonIgnore + public String getSearchFoundStartTime() { + return searchFoundStartTime; + } + + + + + /** + * @param searchFoundStartTime 要设置的 searchFoundStartTime + */ + public void setSearchFoundStartTime(String searchFoundStartTime) { + this.searchFoundStartTime = searchFoundStartTime; + } + + + + + /** + * @return searchFoundEndTime + */ + @JsonIgnore + public String getSearchFoundEndTime() { + return searchFoundEndTime; + } + + + + + /** + * @param searchFoundEndTime 要设置的 searchFoundEndTime + */ + public void setSearchFoundEndTime(String searchFoundEndTime) { + this.searchFoundEndTime = searchFoundEndTime; + } + + + + + /** + * @return searchCfgId + */ + @JsonIgnore + public String getSearchCfgId() { + return searchCfgId; + } + + + + + /** + * @param searchCfgId 要设置的 searchCfgId + */ + public void setSearchCfgId(String searchCfgId) { + this.searchCfgId = searchCfgId; + } + + + + + /** + * @return searchProtocol + */ + @JsonIgnore + public String getSearchProtocol() { + return searchProtocol; + } + + + + + /** + * @param searchProtocol 要设置的 searchProtocol + */ + public void setSearchProtocol(String searchProtocol) { + this.searchProtocol = searchProtocol; + } + + + + + /** + * @return searchServerIp + */ + @JsonIgnore + public String getSearchServerIp() { + return searchServerIp; + } + + + + + /** + * @param searchServerIp 要设置的 searchServerIp + */ + public void setSearchServerIp(String searchServerIp) { + this.searchServerIp = searchServerIp; + } + + + + + /** + * @return searchClientIp + */ + @JsonIgnore + public String getSearchClientIp() { + return searchClientIp; + } + + + + + /** + * @param searchClientIp 要设置的 searchClientIp + */ + public void setSearchClientIp(String searchClientIp) { + this.searchClientIp = searchClientIp; + } + + + + + /** + * @return searchEntranceId + */ + @JsonIgnore + public String getSearchEntranceId() { + return searchEntranceId; + } + + + + + /** + * @param searchEntranceId 要设置的 searchEntranceId + */ + public void setSearchEntranceId(String searchEntranceId) { + this.searchEntranceId = searchEntranceId; + } + + + + + /** + * @return searchCljIp + */ + @JsonIgnore + public String getSearchCljIp() { + return searchCljIp; + } + + + + + /** + * @param searchCljIp 要设置的 searchCljIp + */ + + public void setSearchCljIp(String searchCljIp) { + this.searchCljIp = searchCljIp; + } + + + + + /** + * @return searchServiceType + */ + @JsonIgnore + public String getSearchServiceType() { + return searchServiceType; + } + + + + + /** + * @param searchServiceType 要设置的 searchServiceType + */ + public void setSearchServiceType(String searchServiceType) { + this.searchServiceType = searchServiceType; + } + + + + public String getSceneFile() { + return sceneFile; + } + public void setSceneFile(String sceneFile) { + this.sceneFile = sceneFile; + } + + public Integer getAction() { + return action; + } + public void setAction(Integer action) { + this.action = action; + } + + + + @Override + public String toString() { + return ReflectionToStringBuilder.toString(this); + } + +} diff --git a/src/main/java/com/nis/domain/Page.java b/src/main/java/com/nis/domain/Page.java new file mode 100644 index 00000000..f99f27d6 --- /dev/null +++ b/src/main/java/com/nis/domain/Page.java @@ -0,0 +1,780 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.domain; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.mapping.ResultMap; +import org.apache.ibatis.mapping.ResultMapping; +import org.apache.ibatis.session.SqlSessionFactory; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.nis.util.Configurations; +import com.nis.util.Constants; +import com.nis.util.CookieUtil; +import com.nis.util.StringUtil; +import com.nis.web.service.SpringContextHolder; + +/** + * 分页类 + * @author ThinkGem + * @version 2013-7-2 + * @param + */ +public class Page { + + private int pageNo = 1; // 当前页码 + private int pageSize = Integer.valueOf(Configurations.getIntProperty("page.pageSize", 30)); // 页面大小,设置为“-1”表示不进行分页(分页无效) + + private long count;// 总记录数,设置为“-1”表示不查询总数 + private int first;// 首页索引 + private int last;// 尾页索引 + private int prev;// 上一页索引 + private int next;// 下一页索引 + + + private boolean firstPage;//是否是第一页 + private boolean lastPage;//是否是最后一页 + + private int length = 8;// 显示页面长度 + private int slider = 1;// 前后显示页面长度 + + private List list = new ArrayList(); + + private String orderBy = ""; // 标准查询有效, 实例: updatedate desc, name asc + + private String fields ="";//制定资源的字段 + + private String where; + + private String funcName = "page"; // 设置点击页码调用的js函数名称,默认为page,在一页有多个分页对象时使用。 + + private String funcParam = ""; // 函数的附加参数,第三个参数值。 + + private String message = ""; // 设置提示消息,显示在“共n条”之后 + + public Page() { + this.pageSize = pageSize; + } + + + /** + * 构造方法 + * @param request 传递 repage 参数,来记住页码 + * @param response 用于设置 Cookie,记住页码 + */ + public Page(HttpServletRequest request, HttpServletResponse response){ + + //this(request, response,Integer.valueOf(Configurations.getIntProperty("page.pageSize", 30))); + + } + /** + * 构造方法 + * @param request 传递 repage 参数,来记住页码 + * @param response 用于设置 Cookie,记住页码 + * + */ + public Page(HttpServletRequest request, HttpServletResponse response,Class clazz){ + + this(request, response,clazz.getSimpleName(),Integer.valueOf(Configurations.getIntProperty("page.pageSize", 30))); + + } + public Page(HttpServletRequest request, HttpServletResponse response,int defaultPageSize){ + + this(request, response,"",Integer.valueOf(Configurations.getIntProperty("page.pageSize", 30))); + + } + + public Page(HttpServletRequest request, HttpServletResponse response,String className, int defaultPageSize){ + try { + // 设置页码参数(传递repage参数,来记住页码) + String no = request.getParameter("pageNo"); + if (StringUtils.isNotBlank(no)) { + if (StringUtils.isNumeric(no)){ + CookieUtil.addCookie(response, "pageNo", no); + this.setPageNo(Integer.parseInt(no)); + }else if (request.getParameter("repage")!=null){ + no = CookieUtil.getValue(request, "pageNo"); + if (StringUtils.isNumeric(no)){ + this.setPageNo(Integer.parseInt(no)); + } + } + } + + // 设置页面大小参数(传递repage参数,来记住页码大小) + String size = request.getParameter("pageSize"); + if (StringUtils.isNotBlank(size)) { + + if (StringUtils.isNumeric(size) || size.equals("-1")){ + CookieUtil.addCookie(response, "pageSize", size); + this.setPageSize(Integer.parseInt(size)); + } else if (request.getParameter("repage")!=null){ + size = CookieUtil.getValue(request, "pageSize"); + if (StringUtils.isNumeric(size)){ + this.setPageSize(Integer.parseInt(size)); + } + } + } else { + this.pageSize = defaultPageSize; + } + //超出每页最大显示条数,取限制的最大条数 + if(this.pageSize > Constants.MAX_PAGE_SIZE){ + this.pageSize = Constants.MAX_PAGE_SIZE; + } + + String fields = request.getParameter("fields"); + if (StringUtils.isNotBlank(fields)){ + fields=getFiledsSql(className, fields); + this.setFields(fields); + } + + // 设置排序参数 + String orderBy = request.getParameter("orderBy"); + if (StringUtils.isNotBlank(orderBy)){ + orderBy=getOrderBySql(className, orderBy); + this.setOrderBy(orderBy); + } + this.count=Integer.valueOf(Configurations.getIntProperty("page.count", -1)); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * + * @Title: getWhere + * @Description: TODO(抽取where查询条件) + * @param @param request + * @param @return 入参 + * @return String 返回类型 + * @author (darnell) + * @throws + * @date 2016年8月17日 上午9:28:21 + * @version V1.0 + */ + private String getWhere(HttpServletRequest request) { + Map requestMap = request.getParameterMap(); + StringBuilder whereBuilder = new StringBuilder(512); + for(String paramName : request.getParameterMap().keySet()) { + if (paramName.startsWith("search")) { + whereBuilder.append(paramName.substring("search_".length())) + .append("=").append(requestMap.get(paramName)[0]).append(" and "); + } + } + if (whereBuilder.length() > 0) { + whereBuilder.delete(whereBuilder.lastIndexOf(" and "), whereBuilder.length()); + } + return whereBuilder.toString(); + } + + + /** + * 构造方法 + * @param pageNo 当前页码 + * @param pageSize 分页大小 + */ + public Page(int pageNo, int pageSize) { + this(pageNo, pageSize, 0); + } + + /** + * 构造方法 + * @param pageNo 当前页码 + * @param pageSize 分页大小 + * @param count 数据条数 + */ + public Page(int pageNo, int pageSize, long count) { + this(pageNo, pageSize, count, new ArrayList()); + } + + /** + * 构造方法 + * @param pageNo 当前页码 + * @param pageSize 分页大小 + * @param count 数据条数 + * @param list 本页数据对象列表 + */ + public Page(int pageNo, int pageSize, long count, List list) { + this.setCount(count); + this.setPageNo(pageNo); + this.pageSize = pageSize; + this.list = list; + } + + /** + * 初始化参数 + */ + public void initialize(){ + + //1 + this.first = 1; + + this.last = (int)(count / (this.pageSize < 1 ? 20 : this.pageSize) + first - 1); + + if (this.count % this.pageSize != 0 || this.last == 0) { + this.last++; + } + + if (this.last < this.first) { + this.last = this.first; + } + + if (this.pageNo <= 1) { + this.pageNo = this.first; + this.firstPage=true; + } + + if (this.pageNo >= this.last) { + this.pageNo = this.last; + this.lastPage=true; + } + + if (this.pageNo < this.last - 1) { + this.next = this.pageNo + 1; + } else { + this.next = this.last; + } + + if (this.pageNo > 1) { + this.prev = this.pageNo - 1; + } else { + this.prev = this.first; + } + + //2 + if (this.pageNo < this.first) {// 如果当前页小于首页 + this.pageNo = this.first; + } + + if (this.pageNo > this.last) {// 如果当前页大于尾页 + this.pageNo = this.last; + } + + } + + /** + * 默认输出当前分页标签 + *
${page}
+ */ + @Override + public String toString() { + + StringBuilder sb = new StringBuilder(); + + if (pageNo == first) {// 如果是首页 + sb.append("
  • « 上一页
  • \n"); + } else { + sb.append("
  • « 上一页
  • \n"); + } + + int begin = pageNo - (length / 2); + + if (begin < first) { + begin = first; + } + + int end = begin + length - 1; + + if (end >= last) { + end = last; + begin = end - length + 1; + if (begin < first) { + begin = first; + } + } + + if (begin > first) { + int i = 0; + for (i = first; i < first + slider && i < begin; i++) { + sb.append("
  • " + + (i + 1 - first) + "
  • \n"); + } + if (i < begin) { + sb.append("
  • ...
  • \n"); + } + } + + for (int i = begin; i <= end; i++) { + if (i == pageNo) { + sb.append("
  • " + (i + 1 - first) + + "
  • \n"); + } else { + sb.append("
  • " + + (i + 1 - first) + "
  • \n"); + } + } + + if (last - end > slider) { + sb.append("
  • ...
  • \n"); + end = last - slider; + } + + for (int i = end + 1; i <= last; i++) { + sb.append("
  • " + + (i + 1 - first) + "
  • \n"); + } + + if (pageNo == last) { + sb.append("
  • 下一页 »
  • \n"); + } else { + sb.append("
  • " + + "下一页 »
  • \n"); + } + + sb.append("
  • 当前 "); + sb.append(" / "); + sb.append(" 条,"); + sb.append("共 " + count + " 条"+(message!=null?message:"")+"
  • \n"); + + sb.insert(0,"
      \n").append("
    \n"); + + sb.append("
    "); + +// sb.insert(0,"
    \n").append("
    \n"); + + return sb.toString(); + } + + /** + * 获取分页HTML代码 + * @return + */ + @JsonIgnore + public String getHtml(){ + return toString(); + } + +// public static void main(String[] args) { +// Page p = new Page(3, 3); +// System.out.println(p); +// System.out.println("首页:"+p.getFirst()); +// System.out.println("尾页:"+p.getLast()); +// System.out.println("上页:"+p.getPrev()); +// System.out.println("下页:"+p.getNext()); +// } + + /** + * 获取设置总数 + * @return + */ + public long getCount() { + return count; + } + + /** + * 设置数据总数 + * @param count + */ + public void setCount(long count) { + this.count = count; + if (pageSize >= count){ + pageNo = 1; + } + } + + /** + * 获取当前页码 + * @return + */ + public int getPageNo() { + return pageNo; + } + + /** + * 设置当前页码 + * @param pageNo + */ + public void setPageNo(int pageNo) { + this.pageNo = pageNo; + } + + /** + * 获取页面大小 + * @return + */ + public int getPageSize() { + return pageSize; + } + + /** + * 设置页面大小(最大500) + * @param pageSize + */ + public void setPageSize(int pageSize) { + if (pageSize == -1 || pageSize > 0 ) { + this.pageSize = pageSize; + } else { + this.pageSize = Integer.valueOf(Configurations.getIntProperty("page.pageSize", 30)); + } + } + + /** + * 首页索引 + * @return + */ + @JsonIgnore + public int getFirst() { + return first; + } + + /** + * 尾页索引 + * @return + */ + public int getLast() { + return last; + } + + /** + * 获取页面总数 + * @return getLast(); + */ + @JsonIgnore + public int getTotalPage() { + return getLast(); + } + + /** + * 是否为第一页 + * @return + */ + @JsonIgnore + public boolean isFirstPage() { + return firstPage; + } + + /** + * 是否为最后一页 + * @return + */ + @JsonIgnore + public boolean isLastPage() { + return lastPage; + } + + + /** + * @return where + */ + @JsonIgnore + public String getWhere() { + return where; + } + + /** + * @param where 要设置的 where + */ + public void setWhere(String where) { + this.where = where; + } + + /** + * 上一页索引值 + * @return + */ + @JsonIgnore + public int getPrev() { + if (isFirstPage()) { + return pageNo; + } else { + return pageNo - 1; + } + } + + /** + * 下一页索引值 + * @return + */ + @JsonIgnore + public int getNext() { + if (isLastPage()) { + return pageNo; + } else { + return pageNo + 1; + } + } + + /** + * 获取本页数据对象列表 + * @return List + */ + public List getList() { + return list; + } + + /** + * 设置本页数据对象列表 + * @param list + */ + public Page setList(List list) { + this.list = list; + initialize(); + return this; + } + + /** + * 获取查询排序字符串 + * @return + */ + @JsonIgnore + public String getOrderBy() { + // SQL过滤,防止注入 + String reg = "(?:')|(?:--)|(/\\*(?:.|[\\n\\r])*?\\*/)|" + + "(\\b(select|update|and|or|delete|insert|trancate|char|into|substr|ascii|declare|exec|count|master|into|drop|execute)\\b)"; + Pattern sqlPattern = Pattern.compile(reg, Pattern.CASE_INSENSITIVE); + if (sqlPattern.matcher(orderBy).find()) { + return ""; + } + return orderBy; + } + + /** + * 设置查询排序,标准查询有效, 实例: updatedate desc, name asc + */ + public void setOrderBy(String orderBy) { + this.orderBy = orderBy; + } + + + + /** + * @return fields 字段属性查询,拼接用,分隔 + */ + @JsonIgnore + public String getFields() { + return fields; + } + + /** + * @param fields 要设置的 fields + */ + public void setFields(String fields) { + this.fields = fields; + } + + /** + * 获取点击页码调用的js函数名称 + * function ${page.funcName}(pageNo){location="${ctx}/list-${category.id}${urlSuffix}?pageNo="+i;} + * @return + */ + @JsonIgnore + public String getFuncName() { + return funcName; + } + + /** + * 设置点击页码调用的js函数名称,默认为page,在一页有多个分页对象时使用。 + * @param funcName 默认为page + */ + public void setFuncName(String funcName) { + this.funcName = funcName; + } + + /** + * 获取分页函数的附加参数 + * @return + */ + @JsonIgnore + public String getFuncParam() { + return funcParam; + } + + /** + * 设置分页函数的附加参数 + * @return + */ + public void setFuncParam(String funcParam) { + this.funcParam = funcParam; + } + + /** + * 设置提示消息,显示在“共n条”之后 + * @param message + */ + public void setMessage(String message) { + this.message = message; + } + + /** + * 分页是否有效 + * @return this.pageSize==-1 + */ + @JsonIgnore + public boolean isDisabled() { + return this.pageSize==-1; + } + + /** + * 是否进行总数统计 + * @return this.count==-1 + */ + @JsonIgnore + public boolean isNotCount() { + return this.count==-1; + } + + /** + * 获取 Hibernate FirstResult + */ + @JsonIgnore + public int getFirstResult(){ + int firstResult = (getPageNo() - 1) * getPageSize(); + if (firstResult >= getCount()) { + firstResult = 0; + } + return firstResult; + } + /** + * 获取 Hibernate MaxResults + */ + @JsonIgnore + public int getMaxResults(){ + return getPageSize(); + } + /** + * @Title: getFiledsSql + * @Description: 将fields的属性名称替换为字段名称 + * @param @param mapName + * @param @param fileds + * @param @return + * @param @throws Exception + * @return Map 返回类型 + * @author (DDM) + * @version V1.0 + */ + @JsonIgnore + public String getFiledsSql(String mapName,String fileds) throws Exception{ + String[] fieldsColoumn=null; + String orderByStr=""; + //所有字段名 + List columnList=new ArrayList(); + //所有属性名 + List propertyList=new ArrayList(); + //属性名称为key,字段名称为value + Map columnMap=new HashMap(); + + if(!StringUtil.isBlank(fileds)){ + //解析Fileds的字段/属性名称 + fieldsColoumn=fileds.split(","); + + //从resultMap中获取字段名称和属性名称 + if(fieldsColoumn != null){ + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + ResultMap map= sqlSessionFactory.getConfiguration().getResultMap(mapName+"Map"); + List mapping= map.getResultMappings(); + for(ResultMapping mapp:mapping){ + columnList.add(mapp.getColumn().toLowerCase()); + propertyList.add(mapp.getProperty()); + columnMap.put(mapp.getProperty(), mapp.getColumn()); + } + } + if(fieldsColoumn != null){ + fileds=""; + for (String column : fieldsColoumn) { + if(!StringUtil.isBlank(column)){ + column=column.trim(); + if(columnList.contains(column.toLowerCase())){ + fileds+=","+column; + }else if(propertyList.contains(column)){ + fileds+=","+columnMap.get(column).toString(); + } + } + } + if(!StringUtil.isBlank(fileds)){ + fileds=fileds.substring(1); + } + + } + + } + return fileds; + } + /** + * @Title: getOrderBySql + * @Description: 将orderBy的属性名称替换为字段名称 + * @param @param mapName + * @param @param orderBy + * @param @return + * @param @throws Exception + * @return Map 返回类型 + * @author (DDM) + * @version V1.0 + */ + @JsonIgnore + public static String getOrderBySql(String mapName,String orderBy) throws Exception{ + String[] orderByColoumn=null; + //所有字段名 + List columnList=new ArrayList(); + //所有属性名 + List propertyList=new ArrayList(); + Map columnMap=new HashMap(); + + if(!StringUtil.isBlank(orderBy)){ + //解析orderBy的字段/属性名称 + orderByColoumn=orderBy.split(","); + //从resultMap中获取字段名称和属性名称 + if(orderByColoumn != null){ + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + ResultMap map= sqlSessionFactory.getConfiguration().getResultMap(mapName+"Map"); + List mapping= map.getResultMappings(); + for(ResultMapping mapp:mapping){ + columnList.add(mapp.getColumn().toLowerCase()); + propertyList.add(mapp.getProperty()); + columnMap.put(mapp.getProperty(), mapp.getColumn()); + } + } + if(orderByColoumn != null){ + orderBy=""; + for (String column : orderByColoumn) { + if(!StringUtil.isBlank(column)){ + if(columnList.contains(replaceOrderBy(column))){ + orderBy+=","+column; + }else if(propertyList.contains(replaceOrderBy(column))){ + //如果是实体类名字则获取对应数据库名字+排序方式 + orderBy+=","+columnMap.get(replaceOrderBy(column)).toString() + +column.replace(replaceOrderBy(column), ""); + } + } + } + if(!StringUtil.isBlank(orderBy)){ + orderBy=orderBy.substring(1); + } + } + + } + return orderBy; + } + /** + * @Title: replaceOrderBy + * @Description: 去掉orderBy中的desc和asc + * @param @param str + * @param @return + * @return Map 返回类型 + * @author (DDM) + * @version V1.0 + */ + public static String replaceOrderBy(String str){ + if(!StringUtil.isBlank(str)){ + str=str.trim(); + str=str.replace(" asc",""); + str=str.replace(" ASC",""); + str=str.replace(" DESC",""); + str=str.replace(" desc",""); + str=str.trim(); + } + return str; + } + +} diff --git a/src/main/java/com/nis/domain/ServicesRequestLog.java b/src/main/java/com/nis/domain/ServicesRequestLog.java new file mode 100644 index 00000000..cb087435 --- /dev/null +++ b/src/main/java/com/nis/domain/ServicesRequestLog.java @@ -0,0 +1,220 @@ +/** + *@Title: ServicesRequestLog.java + *@Package com.nis.domain + *@Description TODO + *@author dell + *@date 2016年10月13日 下午3:39:14 + *@version 版本号 + */ +package com.nis.domain; + +import java.io.Serializable; +import java.util.Date; + +import com.nis.util.JsonMapper; + +/** + * @ClassName: ServicesRequestLog.java + * @Description: TODO + * @author (dell) + * @date 2016年10月13日 下午3:39:14 + * @version V1.0 + */ +public class ServicesRequestLog implements Serializable { + + /** + * @Fields serialVersionUID:TODO(用一句话描述这个变量表示什么) + * + * @since 1.0.0 + */ + + private static final long serialVersionUID = 3374409440640840339L; + private Long id; + private String operator; + private String version; + private Integer opAction; + private Date opTime; + private String requestContent; + private Date requestTime; + private Long consumerTime; + private String requestIp; + private Integer businessCode; + private String exceptionInfo; + private String serverIp; + + /** + * serverIp + * @return serverIp + */ + + public String getServerIp() { + return serverIp; + } + /** + * @param serverIp the serverIp to set + */ + public void setServerIp(String serverIp) { + this.serverIp = serverIp; + } + /** + * businessCode + * @return businessCode + */ + + public Integer getBusinessCode() { + return businessCode; + } + /** + * @param businessCode the businessCode to set + */ + public void setBusinessCode(Integer businessCode) { + this.businessCode = businessCode; + } + /** + * id + * @return id + */ + + public Long getId() { + return id; + } + /** + * @param id the id to set + */ + public void setId(Long id) { + this.id = id; + } + /** + * operator + * @return operator + */ + + public String getOperator() { + return operator; + } + /** + * @param operator the operator to set + */ + public void setOperator(String operator) { + this.operator = operator; + } + /** + * version + * @return version + */ + + public String getVersion() { + return version; + } + /** + * @param version the version to set + */ + public void setVersion(String version) { + this.version = version; + } + /** + * opAction + * @return opAction + */ + + public Integer getOpAction() { + return opAction; + } + /** + * @param opAction the opAction to set + */ + public void setOpAction(Integer opAction) { + this.opAction = opAction; + } + /** + * opTime + * @return opTime + */ + + public Date getOpTime() { + return opTime; + } + /** + * @param opTime the opTime to set + */ + public void setOpTime(Date opTime) { + this.opTime = opTime; + } + /** + * requestContent + * @return requestContent + */ + + public String getRequestContent() { + return requestContent; + } + /** + * @param requestContent the requestContent to set + */ + public void setRequestContent(String requestContent) { + this.requestContent = requestContent; + } + /** + * @param requestContent the requestContent to set + */ + public void setRequestContent(Object requestContent) { + this.requestContent = JsonMapper.getInstance().toJsonString(requestContent); + } + /** + * requestTime + * @return requestTime + */ + + public Date getRequestTime() { + return requestTime; + } + /** + * @param requestTime the requestTime to set + */ + public void setRequestTime(Date requestTime) { + this.requestTime = requestTime; + } + /** + * consumerTime + * @return consumerTime + */ + + public Long getConsumerTime() { + return consumerTime; + } + /** + * @param consumerTime the consumerTime to set + */ + public void setConsumerTime(Long consumerTime) { + this.consumerTime = consumerTime; + } + /** + * requestIp + * @return requestIp + */ + + public String getRequestIp() { + return requestIp; + } + /** + * @param requestIp the requestIp to set + */ + public void setRequestIp(String requestIp) { + this.requestIp = requestIp; + } + /** + * exceptionInfo + * @return exceptionInfo + */ + + public String getExceptionInfo() { + return exceptionInfo; + } + /** + * @param exceptionInfo the exceptionInfo to set + */ + public void setExceptionInfo(String exceptionInfo) { + this.exceptionInfo = exceptionInfo; + } + +} diff --git a/src/main/java/com/nis/domain/SrcIp.java b/src/main/java/com/nis/domain/SrcIp.java new file mode 100644 index 00000000..951f6e5e --- /dev/null +++ b/src/main/java/com/nis/domain/SrcIp.java @@ -0,0 +1,145 @@ +package com.nis.domain; + +public class SrcIp { + private Integer seqId; + + private Integer ipStartAddr; + + private Integer ipEndAddr; + + private Integer ipAddrRange; + + private String ipStartString; + + private String ipEndString; + + private Integer port; + + private Long ispId; + + private Long areaId; + + private Integer flag; + + private String description; + + private Integer yl1; + + private String yl2; + + + private String searchIp; + + + public String getSearchIp() { + return searchIp; + } + + public void setSearchIp(String searchIp) { + this.searchIp = searchIp; + } + + public Integer getSeqId() { + return seqId; + } + + public void setSeqId(Integer seqId) { + this.seqId = seqId; + } + + public Integer getIpStartAddr() { + return ipStartAddr; + } + + public void setIpStartAddr(Integer ipStartAddr) { + this.ipStartAddr = ipStartAddr; + } + + public Integer getIpEndAddr() { + return ipEndAddr; + } + + public void setIpEndAddr(Integer ipEndAddr) { + this.ipEndAddr = ipEndAddr; + } + + public Integer getIpAddrRange() { + return ipAddrRange; + } + + public void setIpAddrRange(Integer ipAddrRange) { + this.ipAddrRange = ipAddrRange; + } + + public String getIpStartString() { + return ipStartString; + } + + public void setIpStartString(String ipStartString) { + this.ipStartString = ipStartString == null ? null : ipStartString.trim(); + } + + public String getIpEndString() { + return ipEndString; + } + + public void setIpEndString(String ipEndString) { + this.ipEndString = ipEndString == null ? null : ipEndString.trim(); + } + + public Integer getPort() { + return port; + } + + public void setPort(Integer port) { + this.port = port; + } + + public Long getIspId() { + return ispId; + } + + public void setIspId(Long ispId) { + this.ispId = ispId; + } + + public Long getAreaId() { + return areaId; + } + + public void setAreaId(Long areaId) { + this.areaId = areaId; + } + + public Integer getFlag() { + return flag; + } + + public void setFlag(Integer flag) { + this.flag = flag; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description == null ? null : description.trim(); + } + + public Integer getYl1() { + return yl1; + } + + public void setYl1(Integer yl1) { + this.yl1 = yl1; + } + + public String getYl2() { + return yl2; + } + + public void setYl2(String yl2) { + this.yl2 = yl2 == null ? null : yl2.trim(); + } +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/StatLogEntity.java b/src/main/java/com/nis/domain/StatLogEntity.java new file mode 100644 index 00000000..56da2829 --- /dev/null +++ b/src/main/java/com/nis/domain/StatLogEntity.java @@ -0,0 +1,203 @@ +/** +* @Title: StatLogEntity.java +* @Package com.nis.domain +* @Description: TODO(用一句话描述该文件做什么) +* @author (ddm) +* @date 2016年9月13日 上午10:49:01 +* @version V1.0 +*/ +package com.nis.domain; + +import java.io.Serializable; +import java.util.Date; +import java.util.Map; + +import javax.xml.bind.annotation.XmlTransient; + +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.google.common.collect.Maps; +import com.nis.util.Configurations; +import com.nis.util.JsonDateSerializer; +import com.wordnik.swagger.annotations.ApiModelProperty; + +/** +* @ClassName: StatLogEntity +* @Description: TODO(日志报表公共实体部分) +* @author (ddm) +* @date 2016年9月1日 上午10:16:54 +* @version V1.0 +*/ +public abstract class StatLogEntity implements Serializable { + + /** + * @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么) + */ + private static final long serialVersionUID = -5210683756718456730L; + + @ApiModelProperty(value="私有标签", required=true) + protected Integer service; + @ApiModelProperty(value="生效系统", required=true) + protected Integer activeSys; + @ApiModelProperty(value="A版总计", required=true) + protected Long asum; + @ApiModelProperty(value="B版总计", required=true) + protected Long bsum; + @ApiModelProperty(value="全A+单B数量", required=true) + protected Long absum; + @ApiModelProperty(value="统计时间", required=true) + protected Date statTime; + + protected String searchStatStartTime; + protected String searchStatEndTime; + protected String searchService; + protected String searchStatActiveSys; + + + @JsonSerialize(using=JsonDateSerializer.class) + public Date getStatTime() { + return statTime; + } + public void setStatTime(Date statTime) { + this.statTime = statTime; + } + + public Integer getActiveSys() { + return activeSys; + } + public void setActiveSys(Integer activeSys) { + this.activeSys = activeSys; + } + + public Integer getService() { + return service; + } + + + public void setService(Integer service) { + this.service = service; + } + + + public Long getAbsum() { + return absum; + } + public Long getBsum() { + return bsum; + } + public void setAbsum(Long absum) { + this.absum = absum; + } + public void setBsum(Long bsum) { + this.bsum = bsum; + } + public Long getAsum() { + return asum; + } + public void setAsum(Long asum) { + this.asum = asum; + } + + + @JsonIgnore + public String getSearchStatStartTime() { + return searchStatStartTime; + } + + + public void setSearchStatStartTime(String searchStatStartTime) { + this.searchStatStartTime = searchStatStartTime; + } + + @JsonIgnore + public String getSearchStatEndTime() { + return searchStatEndTime; + } + + + public void setSearchStatEndTime(String searchStatEndTime) { + this.searchStatEndTime = searchStatEndTime; + } + + @JsonIgnore + public String getSearchService() { + return searchService; + } + + + public void setSearchService(String searchService) { + this.searchService = searchService; + } + + @JsonIgnore + public String getSearchStatActiveSys() { + return searchStatActiveSys; + } + public void setSearchStatActiveSys(String searchStatActiveSys) { + this.searchStatActiveSys = searchStatActiveSys; + } + + /** + * 当前实体分页对象 + */ + protected Page page; + + /** + * 自定义SQL(SQL标识,SQL内容) + */ + protected Map sqlMap; + + /** + * @Title: + * @Description: TODO + * @param 入参 + */ + public StatLogEntity() { + super(); + } + + + @JsonIgnore + @XmlTransient + public Page getPage() { + if (page == null){ + page = new Page(); + } + return page; + } + + public Page setPage(Page page) { + this.page = page; + return page; + } + + @JsonIgnore + @XmlTransient + public Map getSqlMap() { + if (sqlMap == null){ + sqlMap = Maps.newHashMap(); + } + return sqlMap; + } + + public void setSqlMap(Map sqlMap) { + this.sqlMap = sqlMap; + } + + /** + * 获取数据库名称 + */ + @JsonIgnore + public String getDbName(){ + return Configurations.getStringProperty("jdbc.type", "mysql"); + } + + + @Override + public String toString() { + return ReflectionToStringBuilder.toString(this); + } + +} diff --git a/src/main/java/com/nis/domain/SysArea.java b/src/main/java/com/nis/domain/SysArea.java new file mode 100644 index 00000000..d1d69be7 --- /dev/null +++ b/src/main/java/com/nis/domain/SysArea.java @@ -0,0 +1,80 @@ +package com.nis.domain; + + +public class SysArea extends TreeEntity{ + + private static final long serialVersionUID = -6425455761476080303L; + + private String code; + + private String type; + + private String remarks; + + private double longitude; + + private double latitude; + + private Integer delFlag; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code == null ? null : code.trim(); + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type == null ? null : type.trim(); + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks == null ? null : remarks.trim(); + } + + public Integer getDelFlag() { + return delFlag; + } + + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } + + + + public double getLongitude() { + return longitude; + } + + public void setLongitude(double longitude) { + this.longitude = longitude; + } + + public double getLatitude() { + return latitude; + } + + public void setLatitude(double latitude) { + this.latitude = latitude; + } + + @Override + public SysArea getParent() { + return parent; + } + + @Override + public void setParent(SysArea parent) { + this.parent = parent; + + } +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/SysDataDictionaryItem.java b/src/main/java/com/nis/domain/SysDataDictionaryItem.java new file mode 100644 index 00000000..f17ca8a4 --- /dev/null +++ b/src/main/java/com/nis/domain/SysDataDictionaryItem.java @@ -0,0 +1,76 @@ +package com.nis.domain; + +import java.io.Serializable; + + +public class SysDataDictionaryItem implements Serializable { + private static final long serialVersionUID = 1L; + private Long id; + private String itemCode; + private String itemValue; + private String itemDesc; + private int itemSort; + private SysDataDictionaryName sysDataDictionaryName; + private int dictionaryId; + + public int getItemSort() { + return itemSort; + } + public void setItemSort(int itemSort) { + this.itemSort = itemSort; + } + private int status; + + private int type; + + public Long getId() { + return id; + } + public String getItemCode() { + return itemCode; + } + public String getItemValue() { + return itemValue; + } + public String getItemDesc() { + return itemDesc; + } + public int getStatus() { + return status; + } + public int getType() { + return type; + } + public SysDataDictionaryName getSysDataDictionaryName() { + return sysDataDictionaryName; + } + public void setId(Long id) { + this.id = id; + } + public void setItemCode(String itemCode) { + this.itemCode = itemCode; + } + public void setItemValue(String itemValue) { + this.itemValue = itemValue; + } + public void setItemDesc(String itemDesc) { + this.itemDesc = itemDesc; + } + public void setStatus(int status) { + this.status = status; + } + public void setType(int type) { + this.type = type; + } + public void setSysDataDictionaryName(SysDataDictionaryName sysDataDictionaryName) { + this.sysDataDictionaryName = sysDataDictionaryName; + } + public int getDictionaryId() { + return dictionaryId; + } + public void setDictionaryId(int dictionaryId) { + this.dictionaryId = dictionaryId; + } + + +} diff --git a/src/main/java/com/nis/domain/SysDataDictionaryName.java b/src/main/java/com/nis/domain/SysDataDictionaryName.java new file mode 100644 index 00000000..658ecb32 --- /dev/null +++ b/src/main/java/com/nis/domain/SysDataDictionaryName.java @@ -0,0 +1,116 @@ +package com.nis.domain; + +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.google.common.collect.Lists; + +public class SysDataDictionaryName extends BaseEntity { + + private static final long serialVersionUID = 8475518325068404528L; + + private String moduleName; + + private String mark; + + private String remark; + + private String revision; + + private Date createTime; + + private Date modifyTime; + + private Integer status; + + private List dictItemList = Lists.newArrayList(); + + private Date beginDate; // 开始日期 + private Date endDate; // 结束日期 + + + + public String getModuleName() { + return moduleName; + } + + public void setModuleName(String moduleName) { + this.moduleName = moduleName == null ? null : moduleName.trim(); + } + + public String getMark() { + return mark; + } + + public void setMark(String mark) { + this.mark = mark == null ? null : mark.trim(); + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + public String getRevision() { + return revision; + } + + public void setRevision(String revision) { + this.revision = revision == null ? null : revision.trim(); + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + public Date getModifyTime() { + return modifyTime; + } + + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public List getDictItemList() { + return dictItemList; + } + + public void setDictItemList(List dictItemList) { + this.dictItemList = dictItemList; + } + + public Date getBeginDate() { + return beginDate; + } + + public void setBeginDate(Date beginDate) { + this.beginDate = beginDate; + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/SysLog.java b/src/main/java/com/nis/domain/SysLog.java new file mode 100644 index 00000000..387ebb9d --- /dev/null +++ b/src/main/java/com/nis/domain/SysLog.java @@ -0,0 +1,180 @@ +package com.nis.domain; + +import java.util.Date; +import java.util.Map; + +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.nis.util.StringUtils; + + +public class SysLog extends BaseEntity{ + private static final long serialVersionUID = -926412650391800311L; + + private Integer type;//日志类型:运行日志(1000-系统登录 1001-系统退出)、操作(2000-添加 2001-删除 2002-修改 2003-查询) \404 未知操作 + + private String title;// 日志标题 + + private Date createDate;//创建日期 + + private String remoteAddr;// 操作用户的IP地址 + + private String userAgent;// 操作用户代理信息 + + private String requestUri;// 操作的URI + + private String method;// 操作的方式 + + private Integer state;//0-失败 1-成功 + + private String params; // 操作提交的数据 + + private String exception; // 异常信息 + + private Long consumerTime;//消费时间 + + public Long getConsumerTime() { + return consumerTime; + } + + public void setConsumerTime(Long consumerTime) { + this.consumerTime = consumerTime; + } + + private Date beginDate; // 开始日期 + private Date endDate; // 结束日期 + + + + public Date getBeginDate() { + return beginDate; + } + + public void setBeginDate(Date beginDate) { + this.beginDate = beginDate; + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title == null ? null : title.trim(); + } + + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public String getRemoteAddr() { + return remoteAddr; + } + + public void setRemoteAddr(String remoteAddr) { + this.remoteAddr = remoteAddr == null ? null : remoteAddr.trim(); + } + + public String getUserAgent() { + return userAgent; + } + + public void setUserAgent(String userAgent) { + this.userAgent = userAgent == null ? null : userAgent.trim(); + } + + public String getRequestUri() { + return requestUri; + } + + public void setRequestUri(String requestUri) { + this.requestUri = requestUri == null ? null : requestUri.trim(); + } + + public String getMethod() { + return method; + } + + public void setMethod(String method) { + this.method = method == null ? null : method.trim(); + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + + public String getParams() { + return params; + } + + public void setParams(String params) { + this.params = params; + } + + public String getException() { + return exception; + } + + public void setException(String exception) { + this.exception = exception; + } + + private String createBy;// 创建者 + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + /** + * 设置请求参数 + * @param paramMap + */ + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void setParams(Map paramMap){ + if (paramMap == null){ + return; + } + StringBuilder params = new StringBuilder(); + for (Map.Entry param : ((Map)paramMap).entrySet()){ + params.append(("".equals(params.toString()) ? "" : "&") + param.getKey() + "="); + String paramValue = (param.getValue() != null && param.getValue().length > 0 ? param.getValue()[0] : ""); + params.append(StringUtils.abbr(StringUtils.endsWithIgnoreCase(param.getKey(), "password") ? "" : paramValue, 100)); + } + this.params = params.toString(); + } + + @Override + public String toString() { + return ReflectionToStringBuilder.toString(this); + } +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/SysMenu.java b/src/main/java/com/nis/domain/SysMenu.java new file mode 100644 index 00000000..3609fcce --- /dev/null +++ b/src/main/java/com/nis/domain/SysMenu.java @@ -0,0 +1,253 @@ +package com.nis.domain; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonIgnore; + +public class SysMenu extends BaseEntity{ + + private static final long serialVersionUID = 8586837252075033023L; + + + private SysMenu parent; // 父级菜单 + + private Long parentId; + + private String parentIds; + + private String name; + + private Integer sort; + + private String href; + + private String target; + + private String icon; + + private Integer isShow; + + private String permission; + + private SysUser createBy; // 创建者 + + private Date createDate; + + private SysUser updateBy; + + private Date updateDate; + + private String remarks; + + private Integer delFlag; + + private Integer quickAction; + + private String menuBg; + + private List children = new ArrayList(); + + public SysMenu(){ + super(); + this.sort = 30; + this.isShow = 1; + } + + public SysMenu(Long id){ + super(id); + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public Long getParentId() { + return (parent != null && parent.getId() != null) ? parent.getId() : 0 ; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public String getParentIds() { + return parentIds; + } + + public void setParentIds(String parentIds) { + this.parentIds = parentIds == null ? null : parentIds.trim(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public String getHref() { + return href; + } + + public void setHref(String href) { + this.href = href == null ? null : href.trim(); + } + + public String getTarget() { + return target; + } + + public void setTarget(String target) { + this.target = target == null ? null : target.trim(); + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon == null ? null : icon.trim(); + } + + public String getMenuBg() { + return menuBg; + } + + public void setMenuBg(String menuBg) { + this.menuBg = menuBg; + } + + + + public Integer getIsShow() { + return isShow; + } + + public void setIsShow(Integer isShow) { + this.isShow = isShow; + } + + public String getPermission() { + return permission; + } + + public void setPermission(String permission) { + this.permission = permission == null ? null : permission.trim(); + } + + + + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + + + public SysUser getCreateBy() { + return createBy; + } + + public void setCreateBy(SysUser createBy) { + this.createBy = createBy; + } + + public SysUser getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(SysUser updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks == null ? null : remarks.trim(); + } + + + + public Integer getDelFlag() { + return delFlag; + } + + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } + + public Integer getQuickAction() { + return quickAction; + } + + public void setQuickAction(Integer quickAction) { + this.quickAction = quickAction; + } + + @JsonIgnore + public static void sortList(List list, List sourcelist, Long parentId, boolean cascade){ + for (int i=0; i implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 7057026197597361766L; + + private SysArea area; + + private String code; + + private Integer type;// 机构类型(1:公司;2:部门;3:小组) + + private Integer grade;// 机构等级(1:一级;2:二级;3:三级;4:四级) + + private Integer jobType;//部门职责分类 + + private String address; + + private String zipCode; + + private String master; + + private String phone; + + private String fax; + + private String email; + + private Integer useable; + + private SysUser primaryPerson; + + private SysUser deputyPerson; + + private String remarks; + + private Integer delFlag; + + private Date createTime; + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + private List childDeptList;//快速添加子部门 + + public SysOffice(){ + super(); + this.type = 2; + } + + public SysOffice(Long id){ + super(id); + } + + + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code == null ? null : code.trim(); + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public Integer getGrade() { + return grade; + } + + public void setGrade(Integer grade) { + this.grade = grade; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address == null ? null : address.trim(); + } + + public String getZipCode() { + return zipCode; + } + + public void setZipCode(String zipCode) { + this.zipCode = zipCode == null ? null : zipCode.trim(); + } + + public String getMaster() { + return master; + } + + public void setMaster(String master) { + this.master = master == null ? null : master.trim(); + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone == null ? null : phone.trim(); + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax == null ? null : fax.trim(); + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email == null ? null : email.trim(); + } + + public Integer getUseable() { + return useable; + } + + public void setUseable(Integer useable) { + this.useable = useable; + } + + + + public SysOffice getParent() { + return parent; + } + + public void setParent(SysOffice parent) { + this.parent = parent; + } + + public SysArea getArea() { + return area; + } + + public void setArea(SysArea area) { + this.area = area; + } + + public SysUser getPrimaryPerson() { + return primaryPerson; + } + + public void setPrimaryPerson(SysUser primaryPerson) { + this.primaryPerson = primaryPerson; + } + + public SysUser getDeputyPerson() { + return deputyPerson; + } + + public void setDeputyPerson(SysUser deputyPerson) { + this.deputyPerson = deputyPerson; + } + + public List getChildDeptList() { + return childDeptList; + } + + public void setChildDeptList(List childDeptList) { + this.childDeptList = childDeptList; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks == null ? null : remarks.trim(); + } + + public Integer getDelFlag() { + return delFlag; + } + + public void setDelFlag(Integer delFlag) { + this.delFlag = delFlag; + } + + public Integer getJobType() { + return jobType; + } + + public void setJobType(Integer jobType) { + this.jobType = jobType; + } + + + + + +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/SysRole.java b/src/main/java/com/nis/domain/SysRole.java new file mode 100644 index 00000000..bc82ba14 --- /dev/null +++ b/src/main/java/com/nis/domain/SysRole.java @@ -0,0 +1,132 @@ +package com.nis.domain; + +import java.util.Date; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; + +import com.google.common.collect.Lists; + +public class SysRole extends BaseEntity{ + private static final long serialVersionUID = -5388120268433030734L; + private String name; + public String getOldName() { + return oldName; + } + + public void setOldName(String oldName) { + this.oldName = oldName; + } + + private String oldName; // 原角色名称 + private String roleType; + private Integer dataScope; + private String remark; + private List menuList = Lists.newArrayList(); // 拥有菜单列表 + + + public List getMenuList() { + return menuList; + } + + public void setMenuList(List menuList) { + this.menuList = menuList; + } + + public Integer getDataScope() { + return dataScope; + } + + public void setDataScope(Integer dataScope) { + this.dataScope = dataScope; + } + + private Integer status; + + private Date createTime; + + // 数据范围(1:所有数据;2:所在公司及以下数据;3:所在公司数据;4:所在部门及以下数据;5:所在部门数据;8:所在单位及以下数据;9:所在单位数据) + public static final Integer DATA_SCOPE_ALL = 1; + public static final Integer DATA_SCOPE_COMPANY_AND_CHILD = 2; + public static final Integer DATA_SCOPE_COMPANY = 3; + public static final Integer DATA_SCOPE_OFFICE_AND_CHILD = 4; + public static final Integer DATA_SCOPE_OFFICE = 5; + public static final Integer DATA_SCOPE_ENTITY_AND_CHILD = 6; + public static final Integer DATA_SCOPE_ENTITY = 7; + + + + + public String getRoleType() { + return roleType; + } + + public void setRoleType(String roleType) { + this.roleType = roleType; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark == null ? null : remark.trim(); + } + + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public List getMenuIdList() { + List menuIdList = Lists.newArrayList(); + for (SysMenu menu : menuList) { + menuIdList.add(menu.getId()); + } + return menuIdList; + } + + public void setMenuIdList(List menuIdList) { + menuList = Lists.newArrayList(); + for (String menuId : menuIdList) { + SysMenu menu = new SysMenu(); + menu.setId(Long.parseLong(menuId)); + menuList.add(menu); + } + } + + public String getMenuIds() { + return StringUtils.join(getMenuIdList(), ","); + } + + public void setMenuIds(String menuIds) { + menuList = Lists.newArrayList(); + if (menuIds != null){ + String[] ids = StringUtils.split(menuIds, ","); + setMenuIdList(Lists.newArrayList(ids)); + } + } + +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/SysUser.java b/src/main/java/com/nis/domain/SysUser.java new file mode 100644 index 00000000..1ad76b14 --- /dev/null +++ b/src/main/java/com/nis/domain/SysUser.java @@ -0,0 +1,243 @@ +package com.nis.domain; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.google.common.collect.Lists; +import com.nis.util.Collections3; +import com.nis.util.StringUtil; +import com.nis.util.StringUtils; +import com.nis.util.excel.ExcelField; +import com.nis.util.excel.fieldtype.RoleListType; + + + +public class SysUser extends BaseEntity { + private static final long serialVersionUID = -4871709358302801032L; + private String loginId; + private String photo; // 头像 + private String name; + private String email;//电子邮箱 + private String password; + private String newPassword; // 新密码 + private SysRole role; + + + + private String oldLoginId;// 原登录名 + private Date createTime; + private Integer status; + private Integer identity;//用户身份标识 1-信访办 0-办理人员 + private List userRoleList = new ArrayList(); + private SysOffice company;//所属公司 + private SysOffice entity;//归属单位 + private SysOffice office;//用户所在部门 + + + + public SysUser() { + super(); + } + + public SysUser(Long id, String loginId) { + super(); + this.id = id; + this.loginId = loginId; + } + + + + + public SysUser(Long id, String loginId, String name, String email, + String password, String oldLoginId, Date createTime, Integer status) { + super(); + this.id = id; + this.loginId = loginId; + this.name = name; + this.email = email; + this.password = password; + this.oldLoginId = oldLoginId; + this.createTime = createTime; + this.status = status; + } + + public String getPhoto() { + return photo; + } + + public void setPhoto(String photo) { + this.photo = photo; + } + + + + + public SysOffice getEntity() { + return entity; + } + + public void setEntity(SysOffice entity) { + this.entity = entity; + } + + public String getOldLoginId() { + return oldLoginId; + } + public void setOldLoginId(String oldLoginId) { + this.oldLoginId = oldLoginId; + } + + @ExcelField(title="姓名", align=2, sort=40) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + public Integer getStatus() { + return status; + } + + public Integer getIdentity() { + return identity; + } + + public void setIdentity(Integer identity) { + this.identity = identity; + } + + public SysOffice getOffice() { + return office; + } + + public void setOffice(SysOffice office) { + this.office = office; + } + + + + public SysOffice getCompany() { + return company; + } + + public void setCompany(SysOffice company) { + this.company = company; + } + + public SysRole getRole() { + return role; + } + + public void setRole(SysRole role) { + this.role = role; + } + + public String getNewPassword() { + return newPassword; + } + + public void setNewPassword(String newPassword) { + this.newPassword = newPassword; + } + + + @ExcelField(title="拥有角色", align=1, sort=800, fieldType=RoleListType.class) + public List getUserRoleList() { + return userRoleList; + } + + public void setUserRoleList(List userRoleList) { + this.userRoleList = userRoleList; + } + + + public void setStatus(Integer status) { + this.status = status; + } + + + public boolean isAdmin(){ + return isAdmin(this.loginId); + } + + public static boolean isAdmin(String loginId){ + return loginId != null && "admin".equals(loginId); + } + + + @JsonIgnore + public List getRoleIdList() { + List roleIdList = Lists.newArrayList(); + for (SysRole role : userRoleList) { + roleIdList.add(role.getId()); + } + return roleIdList; + } + + public void setRoleIdList(List roleIdList) { + userRoleList = Lists.newArrayList(); + for (Long roleId : roleIdList) { + SysRole role = new SysRole(); + role.setId(roleId); + userRoleList.add(role); + } + } + + /** + * 用户拥有的角色名称字符串, 多个角色名称用','分隔. + */ + public String getRoleNames() { + return Collections3.extractToString(userRoleList, "name", ","); + } + + + + + + public String getPassword() { + return this.password; + } + + public void setPassword(String password) { + this.password = password; + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ExcelField(title="创建日期", type=1, align=1, sort=110) + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + + @ExcelField(title="登录名", align=1, sort=20) + public String getLoginId() { + return loginId; + } + + public void setLoginId(String loginId) { + this.loginId = loginId; + } + + @ExcelField(title="邮箱", align=1, sort=50) + public String getEmail() { + return email; + } + + + public void setEmail(String email) { + this.email = email; + } + + + +} \ No newline at end of file diff --git a/src/main/java/com/nis/domain/TreeEntity.java b/src/main/java/com/nis/domain/TreeEntity.java new file mode 100644 index 00000000..5788dfe6 --- /dev/null +++ b/src/main/java/com/nis/domain/TreeEntity.java @@ -0,0 +1,79 @@ +package com.nis.domain; + + + +import com.fasterxml.jackson.annotation.JsonBackReference; +import com.nis.util.Reflections; +import com.nis.util.StringUtil; + +/** + * 数据Entity类 + * @author ThinkGem + * @version 2014-05-16 + */ +public abstract class TreeEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + protected T parent; // 父级编号 + protected String parentIds; // 所有父级编号 + protected String name; // 机构名称 + protected Long sort; // 排序 + + public TreeEntity() { + super(); + this.sort = 30L; + } + + public TreeEntity(Long id) { + super(id); + } + + /** + * 父对象,只能通过子类实现,父类实现mybatis无法读取 + * @return + */ + @JsonBackReference + public abstract T getParent(); + + /** + * 父对象,只能通过子类实现,父类实现mybatis无法读取 + * @return + */ + public abstract void setParent(T parent); + + public String getParentIds() { + return parentIds; + } + + public void setParentIds(String parentIds) { + this.parentIds = parentIds; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + + public Long getSort() { + return sort; + } + + public void setSort(Long sort) { + this.sort = sort; + } + + public Long getParentId() { + Long id = null; + if (parent != null){ + id = (Long)Reflections.getFieldValue(parent, "id"); + } + return StringUtil.isEmpty(id) ? 0 : id; + } + +} diff --git a/src/main/java/com/nis/exceptions/ServiceException.java b/src/main/java/com/nis/exceptions/ServiceException.java new file mode 100644 index 00000000..cb55949c --- /dev/null +++ b/src/main/java/com/nis/exceptions/ServiceException.java @@ -0,0 +1,29 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.exceptions; + +/** + * Service层公用的Exception, 从由Spring管理事务的函数中抛出时会触发事务回滚. + * @author ThinkGem + */ +public class ServiceException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public ServiceException() { + super(); + } + + public ServiceException(String message) { + super(message); + } + + public ServiceException(Throwable cause) { + super(cause); + } + + public ServiceException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/com/nis/filter/CORSFilter.java b/src/main/java/com/nis/filter/CORSFilter.java new file mode 100644 index 00000000..4db00e82 --- /dev/null +++ b/src/main/java/com/nis/filter/CORSFilter.java @@ -0,0 +1,54 @@ +package com.nis.filter; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.nis.filter.wrapper.RestHttpServletRequestWrapper; +import com.nis.util.Constants; + +/** +* @ClassName: CORSFilter +* @Description: TODO(解决跨域问题的过滤器) +* @author (DDM) +* @date 2016年9月20日 上午9:12:50 +* @version V1.0 +*/ +@WebFilter +public class CORSFilter implements Filter { + + @Override + public void destroy() { + // TODO Auto-generated method stub + + } + + @Override + public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) + throws IOException, ServletException { + //将请求封装起来,使得body中的内容可以多次获取 + req=new RestHttpServletRequestWrapper((HttpServletRequest)req); + HttpServletResponse response=(HttpServletResponse) res; + response.setHeader("Access-Control-Allow-Origin",Constants.TARGET_URL); + response.setHeader("Access-Control-Allow-Methods","POST,GET,PUT,OPT,IONS,DELETE"); + response.setHeader("Access-Control-Max-Age",Constants.ACCESS_CONTROL_MAX_AGE); + response.setHeader("Access-Control-Allow-Headers","*"); + chain.doFilter(req, res); + } + + @Override + public void init(FilterConfig arg0) throws ServletException { + // TODO Auto-generated method stub + + } + + +} diff --git a/src/main/java/com/nis/filter/wrapper/RestHttpServletRequestWrapper.java b/src/main/java/com/nis/filter/wrapper/RestHttpServletRequestWrapper.java new file mode 100644 index 00000000..87d73038 --- /dev/null +++ b/src/main/java/com/nis/filter/wrapper/RestHttpServletRequestWrapper.java @@ -0,0 +1,87 @@ +/** + *@Title: HttpServletRequestWrapper.java + *@Package com.nis.filter.wrapper + *@Description TODO + *@author dell + *@date 2016年11月15日 下午12:36:14 + *@version 版本号 + */ +package com.nis.filter.wrapper; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStreamReader; + +import javax.servlet.ReadListener; +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.util.StreamUtils; + + +/** + * @ClassName: HttpServletRequestWrapper.java + * @Description: 主要目的是将request的body取出来,然后缓存起来。这样可以实现request的body多次取 + * @author (wx) + * @date 2016年11月15日 下午12:36:14 + * @version V1.0 + */ +public class RestHttpServletRequestWrapper extends javax.servlet.http.HttpServletRequestWrapper { + private final byte[] body; + /** + * 创建一个新的实例 RestHttpServletRequestWrapper. + * + * @param request + * @throws IOException + */ + public RestHttpServletRequestWrapper(HttpServletRequest request) throws IOException { + super(request); + // TODO Auto-generated constructor stub + body=StreamUtils.copyToByteArray(request.getInputStream()); + } + + /* (non-Javadoc) + * @see javax.servlet.ServletRequestWrapper#getInputStream() + */ + @Override + public ServletInputStream getInputStream() throws IOException { + // TODO Auto-generated method stub + final ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(body); + return new ServletInputStream(){ + + @Override + public boolean isFinished() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isReady() { + // TODO Auto-generated method stub + return false; + } + + @Override + public void setReadListener(ReadListener arg0) { + // TODO Auto-generated method stub + + } + + @Override + public int read() throws IOException { + // TODO Auto-generated method stub + return byteArrayInputStream.read(); + } + + }; + } + /* (non-Javadoc) + * @see javax.servlet.ServletRequestWrapper#getReader() + */ + @Override + public BufferedReader getReader() throws IOException { + // TODO Auto-generated method stub + return new BufferedReader(new InputStreamReader(getInputStream())); + } +} diff --git a/src/main/java/com/nis/interceptor/DataSourceBInterceptor.java b/src/main/java/com/nis/interceptor/DataSourceBInterceptor.java new file mode 100644 index 00000000..0bff6910 --- /dev/null +++ b/src/main/java/com/nis/interceptor/DataSourceBInterceptor.java @@ -0,0 +1,40 @@ +package com.nis.interceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import com.nis.datasource.CustomerContextHolder; + +public class DataSourceBInterceptor implements HandlerInterceptor { + Logger logger = Logger.getLogger(DataSourceBInterceptor.class); + @Override + public boolean preHandle(HttpServletRequest request, + HttpServletResponse response, Object handler) throws Exception { + logger.info("开启数据源配置操作库---"); + CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_B);//开启数据源B + + return true; + } + + @Override + public void postHandle(HttpServletRequest request, + HttpServletResponse response, Object handler, + ModelAndView modelAndView) throws Exception { + logger.info("postHandle---"); + } + + @Override + public void afterCompletion(HttpServletRequest request, + HttpServletResponse response, Object handler, Exception ex) + throws Exception { + + CustomerContextHolder.clearCustomerType(); + logger.info("释放数据源配置操作库---"); + } + + +} diff --git a/src/main/java/com/nis/interceptor/DataSourceCInterceptor.java b/src/main/java/com/nis/interceptor/DataSourceCInterceptor.java new file mode 100644 index 00000000..e847f1a6 --- /dev/null +++ b/src/main/java/com/nis/interceptor/DataSourceCInterceptor.java @@ -0,0 +1,58 @@ +package com.nis.interceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import com.nis.datasource.CustomerContextHolder; +import com.nis.util.Constants; + +public class DataSourceCInterceptor implements HandlerInterceptor { + Logger logger = Logger.getLogger(DataSourceCInterceptor.class); + String searchActiveSys=""; + + @Override + public boolean preHandle(HttpServletRequest request, + HttpServletResponse response, Object handler) throws Exception { + searchActiveSys=request.getParameter("searchActiveSys"); + if(searchActiveSys == null + || !(Constants.ACTIVESYS_A.equals(searchActiveSys) + || Constants.ACTIVESYS_C.equals(searchActiveSys)) + ) searchActiveSys=Constants.ACTIVESYS_B; + if(Constants.ACTIVESYS_A.equals(searchActiveSys)){ + logger.info("开启数据源日志A操作库---"+System.currentTimeMillis()); + CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_F);//开启数据源F + }else if(Constants.ACTIVESYS_C.equals(searchActiveSys)){ + logger.info("开启数据源日志C操作库---"+System.currentTimeMillis()); + CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_G);//开启数据源F + }else{ + logger.info("开启数据源日志B操作库---"+System.currentTimeMillis()); + CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_C);//开启数据源C + } + logger.info("日志数据源开启成功---"+System.currentTimeMillis()); + return true; + } + + @Override + public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) + throws Exception { + logger.info("postHandle---"); + + } + + + @Override + public void afterCompletion(HttpServletRequest request, + HttpServletResponse response, Object handler, Exception ex) + throws Exception { + CustomerContextHolder.clearCustomerType(); + logger.info("释放数据源日志操作库---"); + } + + + + +} diff --git a/src/main/java/com/nis/interceptor/DataSourceDInterceptor.java b/src/main/java/com/nis/interceptor/DataSourceDInterceptor.java new file mode 100644 index 00000000..9b5315b4 --- /dev/null +++ b/src/main/java/com/nis/interceptor/DataSourceDInterceptor.java @@ -0,0 +1,43 @@ +package com.nis.interceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import com.nis.datasource.CustomerContextHolder; + +public class DataSourceDInterceptor implements HandlerInterceptor { + Logger logger = Logger.getLogger(DataSourceDInterceptor.class); + + + @Override + public boolean preHandle(HttpServletRequest request, + HttpServletResponse response, Object handler) throws Exception { + logger.info("开启测试配置库---"); + CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_D);//开启数据源C + return true; + } + + @Override + public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) + throws Exception { + logger.info("postHandle---"); + + } + + + @Override + public void afterCompletion(HttpServletRequest request, + HttpServletResponse response, Object handler, Exception ex) + throws Exception { + CustomerContextHolder.clearCustomerType(); + logger.info("释放测试配置库---"); + } + + + + +} diff --git a/src/main/java/com/nis/interceptor/DataSourceEInterceptor.java b/src/main/java/com/nis/interceptor/DataSourceEInterceptor.java new file mode 100644 index 00000000..f2db78de --- /dev/null +++ b/src/main/java/com/nis/interceptor/DataSourceEInterceptor.java @@ -0,0 +1,38 @@ +package com.nis.interceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import com.nis.datasource.CustomerContextHolder; + +public class DataSourceEInterceptor implements HandlerInterceptor { + Logger logger = Logger.getLogger(DataSourceEInterceptor.class); + + @Override + public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) + throws Exception { + CustomerContextHolder.clearCustomerType(); + logger.info("释放数据静控操作库---"); + + } + + @Override + public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) + throws Exception { + logger.info("postHandle---"); + + } + + @Override + public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { + logger.info("开启数据源静控操作库---"); + CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_E);//开启数据源C + + return true; + } + +} diff --git a/src/main/java/com/nis/interceptor/LogInterceptor.java b/src/main/java/com/nis/interceptor/LogInterceptor.java new file mode 100644 index 00000000..c490c830 --- /dev/null +++ b/src/main/java/com/nis/interceptor/LogInterceptor.java @@ -0,0 +1,74 @@ +package com.nis.interceptor; + +import java.text.SimpleDateFormat; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.core.NamedThreadLocal; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import com.nis.util.DateUtils; +import com.nis.util.LogUtils; +import com.nis.web.service.BaseService; + +public class LogInterceptor extends BaseService implements HandlerInterceptor{ + + private static final ThreadLocal timeThreadLocal = + new NamedThreadLocal("ThreadLocal StartTime"); + + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) + throws Exception { + long beginTime = System.currentTimeMillis();//1、开始时间 + timeThreadLocal.set(beginTime); //线程绑定变量(该数据只有当前请求的线程可见) + if (logger.isDebugEnabled()){ + logger.debug("开始计时: {} URI: {}", new SimpleDateFormat("hh:mm:ss.SSS") + .format(beginTime), request.getRequestURI()); + } + + + return true; + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, + ModelAndView modelAndView) throws Exception { + if (modelAndView != null){ + logger.info("ViewName: " + modelAndView.getViewName()); + } + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) + throws Exception { + long beginTime = timeThreadLocal.get();//得到线程绑定的局部变量(开始时间) + long endTime = System.currentTimeMillis(); //2、结束时间 + + long consumerTime = endTime - beginTime; + + // 打印JVM信息。 + if (logger.isDebugEnabled()){ + + Object[] params = new Object[]{ + new SimpleDateFormat("hh:mm:ss.SSS").format(endTime) + , DateUtils.formatDateTime(consumerTime) + ,request.getRequestURI() + ,Runtime.getRuntime().maxMemory()/1024/1024 + ,Runtime.getRuntime().totalMemory()/1024/1024 + ,Runtime.getRuntime().freeMemory()/1024/1024 + ,(Runtime.getRuntime().maxMemory()-Runtime.getRuntime().totalMemory()+Runtime.getRuntime().freeMemory())/1024/1024}; + logger.debug("计时结束:{} 耗时:{} URI: {} 最大内存: {}m 已分配内存: {}m 已分配内存中的剩余空间: {}m 最大可用内存: {}m",params); + + } + + // 保存日志 + LogUtils.saveLog(request, handler, ex, null, consumerTime); + + + } + +} diff --git a/src/main/java/com/nis/listener/SystemConfigListener.java b/src/main/java/com/nis/listener/SystemConfigListener.java new file mode 100644 index 00000000..a6a4db38 --- /dev/null +++ b/src/main/java/com/nis/listener/SystemConfigListener.java @@ -0,0 +1,37 @@ +package com.nis.listener; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.ServletContextEvent; + +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +import com.nis.datasource.CustomerContextHolder; + +/** + * 项目启动时加载数据字典 + * + * @author RenKaiGe-Office + * @Date:2016-11-03 + */ +public class SystemConfigListener extends ContextLoaderListener { + private static WebApplicationContext webApplicationContext; + + @Override + public void contextInitialized(ServletContextEvent event) { + try { + CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_B); + webApplicationContext = WebApplicationContextUtils + .getRequiredWebApplicationContext(event.getServletContext()); + CustomerContextHolder.clearCustomerType(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + +} diff --git a/src/main/java/com/nis/persistence/dialect/ClusterDialect.java b/src/main/java/com/nis/persistence/dialect/ClusterDialect.java new file mode 100644 index 00000000..f55f69a8 --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/ClusterDialect.java @@ -0,0 +1,53 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * Cluster方言的实现[神通数据库] + * + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class ClusterDialect implements Dialect { + + + @Override + public String getLimitString(String sql, int offset, int limit) { + return getLimitString(sql, offset, Integer.toString(offset), + Integer.toString(limit)); + } + + public boolean supportsLimit() { + return true; + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + public String getLimitString(String sql, int offset, String offsetPlaceholder, String limitPlaceholder) { + StringBuilder stringBuilder = new StringBuilder(sql); + if(stringBuilder.indexOf("limit") == -1 && stringBuilder.indexOf("LIMIT") == -1 ){ + stringBuilder.append(" limit "); + stringBuilder.append(limitPlaceholder); + stringBuilder.append(" offset "); + stringBuilder.append(offsetPlaceholder); + } + System.out.println("cluster分页sql:"+stringBuilder.toString()); + return stringBuilder.toString(); + } + +} diff --git a/src/main/java/com/nis/persistence/dialect/DB2Dialect.java b/src/main/java/com/nis/persistence/dialect/DB2Dialect.java new file mode 100644 index 00000000..60b6f8da --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/DB2Dialect.java @@ -0,0 +1,88 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * DB2的分页数据库方言实现 + * + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class DB2Dialect implements Dialect { + @Override + public boolean supportsLimit() { + return true; + } + + private static String getRowNumber(String sql) { + StringBuilder rownumber = new StringBuilder(50) + .append("rownumber() over("); + + int orderByIndex = sql.toLowerCase().indexOf("order by"); + + if (orderByIndex > 0 && !hasDistinct(sql)) { + rownumber.append(sql.substring(orderByIndex)); + } + + rownumber.append(") as rownumber_,"); + + return rownumber.toString(); + } + + private static boolean hasDistinct(String sql) { + return sql.toLowerCase().contains("select distinct"); + } + + @Override + public String getLimitString(String sql, int offset, int limit) { + return getLimitString(sql, offset, Integer.toString(offset), Integer.toString(limit)); + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + public String getLimitString(String sql, int offset, String offsetPlaceholder, String limitPlaceholder) { + int startOfSelect = sql.toLowerCase().indexOf("select"); + + StringBuilder pagingSelect = new StringBuilder(sql.length() + 100) + .append(sql.substring(0, startOfSelect)) //add the comment + .append("select * from ( select ") //nest the main query in an outer select + .append(getRowNumber(sql)); //add the rownnumber bit into the outer query select list + + if (hasDistinct(sql)) { + pagingSelect.append(" row_.* from ( ") //add another (inner) nested select + .append(sql.substring(startOfSelect)) //add the main query + .append(" ) as row_"); //close off the inner nested select + } else { + pagingSelect.append(sql.substring(startOfSelect + 6)); //add the main query + } + + pagingSelect.append(" ) as temp_ where rownumber_ "); + + //add the restriction to the outer select + if (offset > 0) { +// int end = offset + limit; + String endString = offsetPlaceholder + "+" + limitPlaceholder; + pagingSelect.append("between ").append(offsetPlaceholder) + .append("+1 and ").append(endString); + } else { + pagingSelect.append("<= ").append(limitPlaceholder); + } + + return pagingSelect.toString(); + } +} diff --git a/src/main/java/com/nis/persistence/dialect/DerbyDialect.java b/src/main/java/com/nis/persistence/dialect/DerbyDialect.java new file mode 100644 index 00000000..d68c7825 --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/DerbyDialect.java @@ -0,0 +1,43 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class DerbyDialect implements Dialect { + @Override + public boolean supportsLimit() { + return false; + } + + @Override + public String getLimitString(String sql, int offset, int limit) { +// return getLimitString(sql,offset,Integer.toString(offset),limit,Integer.toString(limit)); + throw new UnsupportedOperationException("paged queries not supported"); + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limit 分页每页显示纪录条数 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + public String getLimitString(String sql, int offset,String offsetPlaceholder, int limit, String limitPlaceholder) { + throw new UnsupportedOperationException( "paged queries not supported" ); + } + +} diff --git a/src/main/java/com/nis/persistence/dialect/Dialect.java b/src/main/java/com/nis/persistence/dialect/Dialect.java new file mode 100644 index 00000000..8e04b03c --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/Dialect.java @@ -0,0 +1,33 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + +/** + * 类似hibernate的Dialect,但只精简出分页部分 + * + * @author poplar.yfyang + * @version 1.0 2011-11-18 下午12:31 + * @since JDK 1.5 + */ +public interface Dialect { + + /** + * 数据库本身是否支持分页当前的分页查询方式 + * 如果数据库不支持的话,则不进行数据库分页 + * + * @return true:支持当前的分页查询方式 + */ + public boolean supportsLimit(); + + /** + * 将sql转换为分页SQL,分别调用分页sql + * + * @param sql SQL语句 + * @param offset 开始条数 + * @param limit 每页显示多少纪录条数 + * @return 分页查询的sql + */ + public String getLimitString(String sql, int offset, int limit); + +} diff --git a/src/main/java/com/nis/persistence/dialect/H2Dialect.java b/src/main/java/com/nis/persistence/dialect/H2Dialect.java new file mode 100644 index 00000000..f33585a1 --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/H2Dialect.java @@ -0,0 +1,44 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * A dialect compatible with the H2 database. + * + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class H2Dialect implements Dialect { + + public boolean supportsLimit() { + return true; + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limit 分页每页显示纪录条数 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + private String getLimitString(String sql, int offset, String offsetPlaceholder, int limit, String limitPlaceholder) { + return sql + ((offset > 0) ? " limit " + limitPlaceholder + " offset " + + offsetPlaceholder : " limit " + limitPlaceholder); + } + + @Override + public String getLimitString(String sql, int offset, int limit) { + return getLimitString(sql, offset, Integer.toString(offset), limit, Integer.toString(limit)); + } +} \ No newline at end of file diff --git a/src/main/java/com/nis/persistence/dialect/HSQLDialect.java b/src/main/java/com/nis/persistence/dialect/HSQLDialect.java new file mode 100644 index 00000000..c3ff3890 --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/HSQLDialect.java @@ -0,0 +1,49 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * Dialect for HSQLDB + * + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class HSQLDialect implements Dialect { + @Override + public boolean supportsLimit() { + return true; + } + + @Override + public String getLimitString(String sql, int offset, int limit) { + return getLimitString(sql, offset, Integer.toString(offset), + Integer.toString(limit)); + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + public String getLimitString(String sql, int offset, String offsetPlaceholder, String limitPlaceholder) { + boolean hasOffset = offset > 0; + return + new StringBuffer(sql.length() + 10) + .append(sql) + .insert(sql.toLowerCase().indexOf("select") + 6, hasOffset ? " limit " + offsetPlaceholder + " " + limitPlaceholder : " top " + limitPlaceholder) + .toString(); + } + +} diff --git a/src/main/java/com/nis/persistence/dialect/MySQLDialect.java b/src/main/java/com/nis/persistence/dialect/MySQLDialect.java new file mode 100644 index 00000000..4b882c6c --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/MySQLDialect.java @@ -0,0 +1,52 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * Mysql方言的实现 + * + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class MySQLDialect implements Dialect { + + + @Override + public String getLimitString(String sql, int offset, int limit) { + return getLimitString(sql, offset, Integer.toString(offset), + Integer.toString(limit)); + } + + public boolean supportsLimit() { + return true; + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + public String getLimitString(String sql, int offset, String offsetPlaceholder, String limitPlaceholder) { + StringBuilder stringBuilder = new StringBuilder(sql); + stringBuilder.append(" limit "); + if (offset > 0) { + stringBuilder.append(offsetPlaceholder).append(",").append(limitPlaceholder); + } else { + stringBuilder.append(limitPlaceholder); + } + return stringBuilder.toString(); + } + +} diff --git a/src/main/java/com/nis/persistence/dialect/OracleDialect.java b/src/main/java/com/nis/persistence/dialect/OracleDialect.java new file mode 100644 index 00000000..4b0c4903 --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/OracleDialect.java @@ -0,0 +1,67 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * Oracle的方言实现 + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class OracleDialect implements Dialect { + @Override + public boolean supportsLimit() { + return true; + } + + @Override + public String getLimitString(String sql, int offset, int limit) { + return getLimitString(sql, offset, Integer.toString(offset), Integer.toString(limit)); + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + public String getLimitString(String sql, int offset, String offsetPlaceholder, String limitPlaceholder) { + sql = sql.trim(); + boolean isForUpdate = false; + if (sql.toLowerCase().endsWith(" for update")) { + sql = sql.substring(0, sql.length() - 11); + isForUpdate = true; + } + StringBuilder pagingSelect = new StringBuilder(sql.length() + 100); + + if (offset > 0) { + pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( "); + } else { + pagingSelect.append("select * from ( "); + } + pagingSelect.append(sql); + if (offset > 0) { + String endString = offsetPlaceholder + "+" + limitPlaceholder; + pagingSelect.append(" ) row_ where rownum <= "+endString+") where rownum_ > ").append(offsetPlaceholder); + } else { + pagingSelect.append(" ) where rownum <= "+limitPlaceholder); + } + + if (isForUpdate) { + pagingSelect.append(" for update"); + } + + return pagingSelect.toString(); + } + +} diff --git a/src/main/java/com/nis/persistence/dialect/PostgreSQLDialect.java b/src/main/java/com/nis/persistence/dialect/PostgreSQLDialect.java new file mode 100644 index 00000000..1b9d2772 --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/PostgreSQLDialect.java @@ -0,0 +1,47 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * Postgre Sql的方言实现 + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class PostgreSQLDialect implements Dialect { + + public boolean supportsLimit() { + return true; + } + + @Override + public String getLimitString(String sql, int offset, int limit) { + return getLimitString(sql, offset, Integer.toString(offset), + Integer.toString(limit)); + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + public String getLimitString(String sql, int offset, + String offsetPlaceholder, String limitPlaceholder) { + StringBuilder pageSql = new StringBuilder().append(sql); + pageSql = offset <= 0 + ? pageSql.append(" limit ").append(limitPlaceholder) : + pageSql.append(" limit ").append(limitPlaceholder).append(" offset ").append(offsetPlaceholder); + return pageSql.toString(); + } +} diff --git a/src/main/java/com/nis/persistence/dialect/SQLServer2005Dialect.java b/src/main/java/com/nis/persistence/dialect/SQLServer2005Dialect.java new file mode 100644 index 00000000..7b0fcf5c --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/SQLServer2005Dialect.java @@ -0,0 +1,94 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + +import org.apache.commons.lang3.StringUtils; + + +/** + * Sql 2005的方言实现 + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class SQLServer2005Dialect implements Dialect { + + @Override + public boolean supportsLimit() { + return true; + } + + @Override + public String getLimitString(String sql, int offset, int limit) { + return getLimitString(sql, offset, + limit, Integer.toString(limit)); + } + + /** + * Add a LIMIT clause to the given SQL SELECT + *

    + * The LIMIT SQL will look like: + *

    + * WITH query AS + * (SELECT TOP 100 percent ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) as __row_number__, * from table_name) + * SELECT * + * FROM query + * WHERE __row_number__ BETWEEN :offset and :lastRows + * ORDER BY __row_number__ + * + * @param querySqlString The SQL statement to base the limit query off of. + * @param offset Offset of the first row to be returned by the query (zero-based) + * @param limit Maximum number of rows to be returned by the query + * @param limitPlaceholder limitPlaceholder + * @return A new SQL statement with the LIMIT clause applied. + */ + private String getLimitString(String querySqlString, int offset, int limit, String limitPlaceholder) { + StringBuilder pagingBuilder = new StringBuilder(); + String orderby = getOrderByPart(querySqlString); + String distinctStr = ""; + + String loweredString = querySqlString.toLowerCase(); + String sqlPartString = querySqlString; + if (loweredString.trim().startsWith("select")) { + int index = 6; + if (loweredString.startsWith("select distinct")) { + distinctStr = "DISTINCT "; + index = 15; + } + sqlPartString = sqlPartString.substring(index); + } + pagingBuilder.append(sqlPartString); + + // if no ORDER BY is specified use fake ORDER BY field to avoid errors + if (StringUtils.isEmpty(orderby)) { + orderby = "ORDER BY CURRENT_TIMESTAMP"; + } + + StringBuilder result = new StringBuilder(); + result.append("WITH query AS (SELECT ") + .append(distinctStr) + .append("TOP 100 PERCENT ") + .append(" ROW_NUMBER() OVER (") + .append(orderby) + .append(") as __row_number__, ") + .append(pagingBuilder) + .append(") SELECT * FROM query WHERE __row_number__ BETWEEN ") + .append(offset).append(" AND ").append(offset + limit) + .append(" ORDER BY __row_number__"); + + return result.toString(); + } + + static String getOrderByPart(String sql) { + String loweredString = sql.toLowerCase(); + int orderByIndex = loweredString.indexOf("order by"); + if (orderByIndex != -1) { + // if we find a new "order by" then we need to ignore + // the previous one since it was probably used for a subquery + return sql.substring(orderByIndex); + } else { + return ""; + } + } +} diff --git a/src/main/java/com/nis/persistence/dialect/SQLServerDialect.java b/src/main/java/com/nis/persistence/dialect/SQLServerDialect.java new file mode 100644 index 00000000..d6be9ceb --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/SQLServerDialect.java @@ -0,0 +1,54 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * MSSQLServer 数据库实现分页方言 + * + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class SQLServerDialect implements Dialect { + + public boolean supportsLimit() { + return true; + } + + static int getAfterSelectInsertPoint(String sql) { + int selectIndex = sql.toLowerCase().indexOf("select"); + final int selectDistinctIndex = sql.toLowerCase().indexOf("select distinct"); + return selectIndex + (selectDistinctIndex == selectIndex ? 15 : 6); + } + + public String getLimitString(String sql, int offset, int limit) { + return getLimit(sql, offset, limit); + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *

    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param limit 分页每页显示纪录条数 + * @return 包含占位符的分页sql + */ + public String getLimit(String sql, int offset, int limit) { + if (offset > 0) { + throw new UnsupportedOperationException("sql server has no offset"); + } + return new StringBuffer(sql.length() + 8) + .append(sql) + .insert(getAfterSelectInsertPoint(sql), " top " + limit) + .toString(); + } + + +} diff --git a/src/main/java/com/nis/persistence/dialect/SybaseDialect.java b/src/main/java/com/nis/persistence/dialect/SybaseDialect.java new file mode 100644 index 00000000..c2452f4c --- /dev/null +++ b/src/main/java/com/nis/persistence/dialect/SybaseDialect.java @@ -0,0 +1,46 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.dialect; + + +/** + * Sybase数据库分页方言实现。 + * 还未实现 + * + * @author poplar.yfyang + * @version 1.0 2010-10-10 下午12:31 + * @since JDK 1.5 + */ +public class SybaseDialect implements Dialect { + + public boolean supportsLimit() { + return false; + } + + + @Override + public String getLimitString(String sql, int offset, int limit) { + return null; + } + + /** + * 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换. + *
    +     * 如mysql
    +     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回
    +     * select * from user limit :offset,:limit
    +     * 
    + * + * @param sql 实际SQL语句 + * @param offset 分页开始纪录条数 + * @param offsetPlaceholder 分页开始纪录条数-占位符号 + * @param limit 分页每页显示纪录条数 + * @param limitPlaceholder 分页纪录条数占位符号 + * @return 包含占位符的分页sql + */ + public String getLimitString(String sql, int offset, String offsetPlaceholder, int limit, String limitPlaceholder) { + throw new UnsupportedOperationException("paged queries not supported"); + } + +} diff --git a/src/main/java/com/nis/persistence/interceptor/BaseInterceptor.java b/src/main/java/com/nis/persistence/interceptor/BaseInterceptor.java new file mode 100644 index 00000000..84948c07 --- /dev/null +++ b/src/main/java/com/nis/persistence/interceptor/BaseInterceptor.java @@ -0,0 +1,59 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.interceptor; + +import java.io.Serializable; + +import org.apache.ibatis.logging.Log; +import org.apache.ibatis.logging.LogFactory; +import org.apache.ibatis.plugin.Interceptor; + +import com.nis.domain.Page; +import com.nis.util.Reflections; + +/** + * Mybatis分页拦截器基类 + * @author poplar.yfyang / thinkgem + * @version 2013-8-28 + */ +public abstract class BaseInterceptor implements Interceptor, Serializable { + + private static final long serialVersionUID = 1L; + + protected static final String PAGE = "page"; + + protected static final String DELEGATE = "delegate"; + + protected static final String MAPPED_STATEMENT = "mappedStatement"; + + protected Log log = LogFactory.getLog(this.getClass()); + + +// /** +// * 拦截的ID,在mapper中的id,可以匹配正则 +// */ +// protected String _SQL_PATTERN = ""; + + /** + * 对参数进行转换和检查 + * @param parameterObject 参数对象 + * @param page 分页对象 + * @return 分页对象 + * @throws NoSuchFieldException 无法找到参数 + */ + @SuppressWarnings("unchecked") + protected static Page convertParameter(Object parameterObject, Page page) { + try{ + if (parameterObject instanceof Page) { + return (Page) parameterObject; + } else { + return (Page)Reflections.getFieldValue(parameterObject, PAGE); + } + }catch (Exception e) { + return null; + } + } + + +} diff --git a/src/main/java/com/nis/persistence/interceptor/PaginationInterceptor.java b/src/main/java/com/nis/persistence/interceptor/PaginationInterceptor.java new file mode 100644 index 00000000..cc2829e7 --- /dev/null +++ b/src/main/java/com/nis/persistence/interceptor/PaginationInterceptor.java @@ -0,0 +1,130 @@ +package com.nis.persistence.interceptor; + +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlSource; +import org.apache.ibatis.plugin.Intercepts; +import org.apache.ibatis.plugin.Invocation; +import org.apache.ibatis.plugin.Plugin; +import org.apache.ibatis.plugin.Signature; +import org.apache.ibatis.reflection.MetaObject; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; + +import com.nis.domain.Page; +import com.nis.util.Reflections; +import com.nis.util.StringUtils; + +import java.util.Properties; + +/** + * 数据库分页插件,只拦截查询语句. + * @author poplar.yfyang / thinkgem + * @version 2013-8-28 + */ +@Intercepts({@Signature(type = Executor.class, method = "query", + args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})}) +public class PaginationInterceptor extends BaseInterceptor { + + private static final long serialVersionUID = 1L; + + @Override + public Object intercept(Invocation invocation) throws Throwable { + + final MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0]; + +// //拦截需要分页的SQL +//// if (mappedStatement.getId().matches(_SQL_PATTERN)) { +// if (StringUtils.indexOfIgnoreCase(mappedStatement.getId(), _SQL_PATTERN) != -1) { + Object parameter = invocation.getArgs()[1]; + BoundSql boundSql = mappedStatement.getBoundSql(parameter); + Object parameterObject = boundSql.getParameterObject(); + + //获取分页参数对象 + Page page = null; + + if (parameterObject != null) { + page = convertParameter(parameterObject, page); + } + + //如果设置了分页对象,则进行分页 + if (page != null && page.getPageSize() != -1) { + + if (StringUtils.isBlank(boundSql.getSql())){ + return null; + } + String originalSql = boundSql.getSql().trim(); + + //得到总记录数 + if(page.getCount() == -1l){ + page.setCount(0); + }else{ + page.setCount(SQLHelper.getCount(originalSql, null, mappedStatement, parameterObject, boundSql, log)); + } + + //分页查询 本地化对象 修改数据库注意修改实现 + String pageSql = SQLHelper.generatePageSql(originalSql, page); +// if (log.isDebugEnabled()) { +// log.debug("PAGE SQL:" + StringUtils.replace(pageSql, "\n", "")); +// } + invocation.getArgs()[2] = new RowBounds(RowBounds.NO_ROW_OFFSET, RowBounds.NO_ROW_LIMIT); + BoundSql newBoundSql = new BoundSql(mappedStatement.getConfiguration(), pageSql, boundSql.getParameterMappings(), boundSql.getParameterObject()); + //解决MyBatis 分页foreach 参数失效 start + if (Reflections.getFieldValue(boundSql, "metaParameters") != null) { + MetaObject mo = (MetaObject) Reflections.getFieldValue(boundSql, "metaParameters"); + Reflections.setFieldValue(newBoundSql, "metaParameters", mo); + } + //解决MyBatis 分页foreach 参数失效 end + MappedStatement newMs = copyFromMappedStatement(mappedStatement, new BoundSqlSqlSource(newBoundSql)); + + invocation.getArgs()[0] = newMs; + } +// } + return invocation.proceed(); + } + + + @Override + public Object plugin(Object target) { + return Plugin.wrap(target, this); + } + + + private MappedStatement copyFromMappedStatement(MappedStatement ms, + SqlSource newSqlSource) { + MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), + ms.getId(), newSqlSource, ms.getSqlCommandType()); + builder.resource(ms.getResource()); + builder.fetchSize(ms.getFetchSize()); + builder.statementType(ms.getStatementType()); + builder.keyGenerator(ms.getKeyGenerator()); + if (ms.getKeyProperties() != null) { + for (String keyProperty : ms.getKeyProperties()) { + builder.keyProperty(keyProperty); + } + } + builder.timeout(ms.getTimeout()); + builder.parameterMap(ms.getParameterMap()); + builder.resultMaps(ms.getResultMaps()); + builder.cache(ms.getCache()); + return builder.build(); + } + + public static class BoundSqlSqlSource implements SqlSource { + BoundSql boundSql; + + public BoundSqlSqlSource(BoundSql boundSql) { + this.boundSql = boundSql; + } + + public BoundSql getBoundSql(Object parameterObject) { + return boundSql; + } + } + + @Override + public void setProperties(Properties properties) { + + } +} diff --git a/src/main/java/com/nis/persistence/interceptor/PreparePaginationInterceptor.java b/src/main/java/com/nis/persistence/interceptor/PreparePaginationInterceptor.java new file mode 100644 index 00000000..a855ec89 --- /dev/null +++ b/src/main/java/com/nis/persistence/interceptor/PreparePaginationInterceptor.java @@ -0,0 +1,88 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.persistence.interceptor; + +import org.apache.ibatis.executor.statement.BaseStatementHandler; +import org.apache.ibatis.executor.statement.RoutingStatementHandler; +import org.apache.ibatis.executor.statement.StatementHandler; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.plugin.Intercepts; +import org.apache.ibatis.plugin.Invocation; +import org.apache.ibatis.plugin.Plugin; +import org.apache.ibatis.plugin.Signature; + +import com.nis.domain.Page; +import com.nis.util.Reflections; + +import java.sql.Connection; +import java.util.Properties; + +/** + * Mybatis数据库分页插件,拦截StatementHandler的prepare方法 + * @author poplar.yfyang / thinkgem + * @version 2013-8-28 + */ +@Intercepts({ + @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class}) +}) +public class PreparePaginationInterceptor extends BaseInterceptor { + + private static final long serialVersionUID = 1L; + + public PreparePaginationInterceptor() { + super(); + } + + @Override + public Object intercept(Invocation ivk) throws Throwable { + if (ivk.getTarget().getClass().isAssignableFrom(RoutingStatementHandler.class)) { + final RoutingStatementHandler statementHandler = (RoutingStatementHandler) ivk.getTarget(); + final BaseStatementHandler delegate = (BaseStatementHandler) Reflections.getFieldValue(statementHandler, DELEGATE); + final MappedStatement mappedStatement = (MappedStatement) Reflections.getFieldValue(delegate, MAPPED_STATEMENT); + +// //拦截需要分页的SQL +//// if (mappedStatement.getId().matches(_SQL_PATTERN)) { +// if (StringUtils.indexOfIgnoreCase(mappedStatement.getId(), _SQL_PATTERN) != -1) { + BoundSql boundSql = delegate.getBoundSql(); + //分页SQL + select + + from CONFIG_COMPILE where COMPILE_ID = #{compileId ,jdbcType=BIGINT } + + + + + + + + + + + + + + + + + + + insert into CONFIG_COMPILE (COMPILE_ID ,SERVICE ,ACTION , + CONT_TYPE, + ATTR_TYPE, + CONT_LABEL, + Task_id, + Guarantee_ID, + AFFAIR_ID, + TOPIC_ID, + DO_BLACKLIST ,DO_LOG ,EFFECTIVE_RANGE , + ACTIVE_SYS, + CONFIG_PERCENT + ,CONFIG_OPTION + ,START_TIME ,END_TIME , + USER_REGION, + IS_VALID,GROUP_NUM,FATHER_CFG_ID + ,OP_TIME,LAST_UPDATE + + ) + + + select + #{item.compileId,jdbcType=BIGINT}, + #{item.service,jdbcType=BIGINT}, + #{item.action,jdbcType=INTEGER}, + #{item.contType,jdbcType=INTEGER}, + #{item.attrType,jdbcType=INTEGER}, + #{item.contLabel,jdbcType=INTEGER}, + #{item.taskId,jdbcType=INTEGER}, + #{item.guaranteeId,jdbcType=INTEGER}, + #{item.affAirId,jdbcType=INTEGER}, + #{item.topIcId,jdbcType=INTEGER}, + #{item.doBlackList,jdbcType=BIGINT}, + #{item.doLog,jdbcType=INTEGER}, + #{item.effectiveRange,jdbcType=VARCHAR}, + #{item.activeSys,jdbcType=INTEGER}, + #{item.configPercent,jdbcType=DOUBLE}, + #{item.configOption,jdbcType=DOUBLE}, + #{item.startTime,jdbcType=TIMESTAMP}, + #{item.endTime,jdbcType=TIMESTAMP}, + #{item.userRegion,jdbcType=VARCHAR}, + #{item.isValid,jdbcType=INTEGER}, + #{item.groupNum,jdbcType=INTEGER }, + #{item.fatherCfgId,jdbcType=BIGINT}, + #{item.opTime,jdbcType=TIMESTAMP}, + sysdate + + from dual + + + + + + + + + + + + + + insert into CONFIG_COMPILE (COMPILE_ID ,SERVICE ,ACTION , + + CONT_TYPE, + + + ATTR_TYPE, + + + CONT_LABEL, + + + Task_id, + + + Guarantee_ID, + + + AFFAIR_ID, + + + TOPIC_ID, + + + LAST_UPDATE, + + DO_BLACKLIST ,DO_LOG ,EFFECTIVE_RANGE ,ACTIVE_SYS, + CONFIG_PERCENT + ,CONFIG_OPTION + ,START_TIME ,END_TIME , + + USER_REGION, + + IS_VALID,GROUP_NUM,FATHER_CFG_ID ,OP_TIME) VALUES( + #{compileId,jdbcType=BIGINT}, + #{service, jdbcType=BIGINT}, + #{action,jdbcType=INTEGER}, + + #{contType,jdbcType=INTEGER }, + + + #{attrType,jdbcType=INTEGER }, + + + #{contLabel,jdbcType=INTEGER}, + + + #{taskId,jdbcType=INTEGER}, + + + #{guaranteeId,jdbcType=INTEGER}, + + + #{affAirId,jdbcType=INTEGER}, + + + #{topIcId,jdbcType=INTEGER}, + + + #{lastUpdate,jdbcType=TIMESTAMP}, + + #{doBlackList,jdbcType=BIGINT}, + #{doLog,jdbcType=INTEGER}, + #{effectiveRange,jdbcType=VARCHAR}, + #{activeSys,jdbcType=INTEGER}, + #{configPercent,jdbcType=DOUBLE}, + #{configOption,jdbcType=DOUBLE}, + #{startTime,jdbcType=TIMESTAMP}, + #{endTime,jdbcType=TIMESTAMP}, + + #{userRegion,jdbcType=VARCHAR}, + + #{isValid,jdbcType=INTEGER}, + #{groupNum,jdbcType=INTEGER }, + #{fatherCfgId,jdbcType=BIGINT}, + #{opTime,jdbcType=TIMESTAMP}) + + + + update CONFIG_COMPILE + + LAST_UPDATE =sysdate, + + CONT_TYPE = #{contType,jdbcType=INTEGER}, + + + ATTR_TYPE = #{attrType,jdbcType=INTEGER}, + + + CONT_LABEL = #{contLabel,jdbcType=VARCHAR}, + + + Task_id = #{taskId,jdbcType=INTEGER}, + + + Guarantee_ID = #{guaranteeId,jdbcType=INTEGER}, + + + AFFAIR_ID = #{affAirId,jdbcType=INTEGER}, + + + TOPIC_ID = #{topIcId,jdbcType=INTEGER}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + + ACTIVE_SYS = #{activeSys,jdbcType=INTEGER}, + + + + + EFFECTIVE_RANGE = #{effectiveRange,jdbcType=VARCHAR}, + + + + where COMPILE_ID = #{compileId ,jdbcType=BIGINT } + + + + + + update CONFIG_COMPILE set is_valid=#{valid,jdbcType=INTEGER } where COMPILE_ID = #{compileId ,jdbcType=BIGINT } + + + + + + + + + + + + TABLE_NAME,OP_TIME + + + + update CONFIG_STATE + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + where TABLE_NAME = #{tableName ,jdbcType=VARCHAR } + + + insert into + CONFIG_STATE(TABLE_NAME,OP_TIME) + values(#{tableName,jdbcType=VARCHAR},#{opTime,jdbcType=TIMESTAMP}) + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/ConfigGroupRelationDao.xml b/src/main/java/com/nis/web/dao/ConfigGroupRelationDao.xml new file mode 100644 index 00000000..87efae85 --- /dev/null +++ b/src/main/java/com/nis/web/dao/ConfigGroupRelationDao.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + ID,GROUP_ID,COMPILE_ID,IS_VALID,OP_TIME,LAST_UPDATE,PROC_SEQ + + + + + + + + + + + + + insert into CONFIG_GROUP + (ID,GROUP_ID, COMPILE_ID, IS_VALID, + OP_TIME,LAST_UPDATE + + ) + + select + + #{item.id,jdbcType=BIGINT}, + #{item.groupId,jdbcType=BIGINT}, + #{item.compileId,jdbcType=BIGINT}, + #{item.isValid,jdbcType=BIGINT}, + #{item.opTime,jdbcType=TIMESTAMP}, + sysdate + + from dual + + + + + + + + + + + + + + insert into CONFIG_GROUP + (ID,GROUP_ID, COMPILE_ID, IS_VALID, + LAST_UPDATE, + OP_TIME ) + values + ( + + + seq_config_group.nextval, + #{groupId,jdbcType=BIGINT}, + #{compileId,jdbcType=BIGINT}, + #{isValid,jdbcType=BIGINT}, + sysdate, + #{opTime,jdbcType=TIMESTAMP} + ) + + + + + UPDATE + CONFIG_GROUP + + + IS_VALID=#{isValid , jdbcType=BIGINT}, + + + OP_TIME=#{opTime , jdbcType=TIMESTAMP}, + + + LAST_UPDATE=#{lastUpdate , jdbcType=TIMESTAMP}, + + + where GROUP_ID=#{groupId} + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/ConfigPzIdDao.xml b/src/main/java/com/nis/web/dao/ConfigPzIdDao.xml new file mode 100644 index 00000000..7ee034fc --- /dev/null +++ b/src/main/java/com/nis/web/dao/ConfigPzIdDao.xml @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/ControlLogDao.java b/src/main/java/com/nis/web/dao/ControlLogDao.java new file mode 100644 index 00000000..9492391b --- /dev/null +++ b/src/main/java/com/nis/web/dao/ControlLogDao.java @@ -0,0 +1,31 @@ +/** +* @Title: ControlLogDao.java +* @Package com.nis.web.dao +* @Description: TODO(用一句话描述该文件做什么) +* @author (darnell) +* @date 2016年8月15日 下午4:13:49 +* @version V1.0 +*/ +package com.nis.web.dao; + +import java.util.List; + + +import com.nis.domain.ControlLog; + +/** +* @ClassName: ControlLogDao +* @Description: TODO(这里用一句话描述这个类的作用) +* @author (darnell) +* @date 2016年8月15日 下午4:13:49 +* @version V1.0 +*/ +@MyBatisDao +public interface ControlLogDao extends CrudDao { + + List getLogInfo(ControlLog controlLog); + + void saveControlLog(ControlLog controlLog); + + void removeControlLog(long id); +} diff --git a/src/main/java/com/nis/web/dao/ControlLogDao.xml b/src/main/java/com/nis/web/dao/ControlLogDao.xml new file mode 100644 index 00000000..89ff0eed --- /dev/null +++ b/src/main/java/com/nis/web/dao/ControlLogDao.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + id, + domain, + title, + source_ip, + res_ip, + status, + opt_time + + + + + + + + + + + SELECT SEQ_LOG_INFO.Nextval as ID from DUAL + + insert into LOG_INFO(ID,DOMAIN,TITLE,SOURCE_IP,RES_IP,STATUS,OPT_TIME) + values (#{id},#{domain},#{title},#{srcIp},#{resIp},#{status},#{optTime}) + + + + UPDATE LOG_INFO SET + status = 0 + WHERE id = #{id} + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/CrudDao.java b/src/main/java/com/nis/web/dao/CrudDao.java new file mode 100644 index 00000000..5235048d --- /dev/null +++ b/src/main/java/com/nis/web/dao/CrudDao.java @@ -0,0 +1,65 @@ +package com.nis.web.dao; + +import java.util.List; + +/** + * DAO支持类实现 + * @author + * @version + * @param + */ +public interface CrudDao { + + /** + * 获取单条数据 + * @param id + * @return + */ + public T get(Long id); + + /** + * 获取单条数据 + * @param entity + * @return + */ + public T get(T entity); + + /** + * 查询数据列表,如果需要分页,请设置分页对象,如:entity.setPage(new Page()); + * @param entity + * @return + */ + public List findList(T entity); + + /** + * 查询所有数据列表 + * @param entity + * @return + */ + public List findAllList(T entity); + + + /** + * 插入数据 + * @param entity + * @return + */ + public int insert(T entity); + + /** + * 更新数据 + * @param entity + * @return + */ + public int update(T entity); + public int updateValid(T entity); + + + /** + * 删除数据(一般为逻辑删除,更新del_flag字段为1) + * @param entity + * @return + */ + public int delete(T entity); + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DataDictionaryDao.xml b/src/main/java/com/nis/web/dao/DataDictionaryDao.xml new file mode 100644 index 00000000..9ab19858 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DataDictionaryDao.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + n.id dictnameid, + n.datadictname datadictname, + v.id + dictvalueid, + v.datadictvalue datadictvalue + + + + + + + + + + select seq_datadict.nextval from dual + + insert into datadictionaryname (id ,datadictname,isValid) values( + #{dictNameId,jdbcType=BIGINT}, + #{dataDictName, jdbcType=VARCHAR},1) + + + + + + + + select seq_datadict.nextval from dual + + insert into datadictionaryvalue (id ,datadictid,datadictvalue,isValid) + values( + #{dictValueId,jdbcType=BIGINT},#{dictNameId, jdbcType=BIGINT}, + #{dataDictValue,jdbcType=VARCHAR},1) + + + + update datadictionaryname + + + isValid = #{isValid,jdbcType=BIGINT}, + + + dataDictName = #{dataDictName,jdbcType=VARCHAR}, + + + where id = #{dictNameId ,jdbcType=BIGINT } + + + update datadictionaryvalue + + + dataDictValue = #{dataDictValue,jdbcType=VARCHAR}, + + + isValid = #{isValid,jdbcType=BIGINT}, + + + where id = #{dictValueId ,jdbcType=BIGINT } + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfDjLogStatDao.xml b/src/main/java/com/nis/web/dao/DfDjLogStatDao.xml new file mode 100644 index 00000000..c10f5331 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfDjLogStatDao.xml @@ -0,0 +1,150 @@ + + + + + + SUM + + + + + + + + + + + + CONFIG_ID, SERVICE, STAT_TIME, SUM + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfDjNestLogDao.xml b/src/main/java/com/nis/web/dao/DfDjNestLogDao.xml new file mode 100644 index 00000000..4414e7b9 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfDjNestLogDao.xml @@ -0,0 +1,43 @@ + + + + + + LAYER_ID,FOUND_TIME,RECV_TIME,LAYER_CNT,NEST_PROTOCOL,NEST_SERVER_IP, + NEST_CLIENT_IP,NEST_SERVER_PORT,NEST_CLIENT_PORT,OVER_ID + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfIpPortUdpDao.xml b/src/main/java/com/nis/web/dao/DfIpPortUdpDao.xml new file mode 100644 index 00000000..2db55c76 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfIpPortUdpDao.xml @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + CFG_ID, ADDR_TYPE, SRC_IP, MASK_SRC_IP, SRC_PORT, MASK_SRC_PORT, DST_IP, MASK_DST_IP, + DST_PORT, MASK_DST_PORT, PROTOCOL, DIRECTION, IS_VALID, OP_TIME,lastUpdate,effectiveRange,activeSys + + + + delete from DF_IP_PORT_UDP + where CFG_ID = #{cfgId,jdbcType=BIGINT} + + + + + insert into DF_IP_PORT_UDP + + CFG_ID, + + ADDR_TYPE, + + + SRC_IP, + + + MASK_SRC_IP, + + + SRC_PORT, + + + MASK_SRC_PORT, + + + DST_IP, + + + MASK_DST_IP, + + + DST_PORT, + + + MASK_DST_PORT, + + + PROTOCOL, + + + DIRECTION, + + + IS_VALID, + + + OP_TIME, + + + LAST_UPDATE, + + + EFFECTIVE_RANGE, + + + ACTIVE_SYS, + + + + #{cfgId,jdbcType=BIGINT}, + + #{addrType,jdbcType=INTEGER}, + + + #{srcIp,jdbcType=VARCHAR}, + + + #{maskSrcIp,jdbcType=VARCHAR}, + + + #{srcPort,jdbcType=VARCHAR}, + + + #{maskSrcPort,jdbcType=VARCHAR}, + + + #{dstIp,jdbcType=VARCHAR}, + + + #{maskDstIp,jdbcType=VARCHAR}, + + + #{dstPort,jdbcType=VARCHAR}, + + + #{maskDstPort,jdbcType=VARCHAR}, + + + #{protocol,jdbcType=INTEGER}, + + + #{direction,jdbcType=INTEGER}, + + + #{isValid,jdbcType=INTEGER}, + + + #{opTime,jdbcType=TIMESTAMP}, + + + #{lastUpdate,jdbcType=TIMESTAMP}, + + + #{effectiveRange,jdbcType=VARCHAR}, + + + #{activeSys,jdbcType=INTEGER}, + + + + + + update DF_IP_PORT_UDP + + + ADDR_TYPE = #{addrType,jdbcType=INTEGER}, + + + SRC_IP = #{srcIp,jdbcType=VARCHAR}, + + + MASK_SRC_IP = #{maskSrcIp,jdbcType=VARCHAR}, + + + SRC_PORT = #{srcPort,jdbcType=VARCHAR}, + + + MASK_SRC_PORT = #{maskSrcPort,jdbcType=VARCHAR}, + + + DST_IP = #{dstIp,jdbcType=VARCHAR}, + + + MASK_DST_IP = #{maskDstIp,jdbcType=VARCHAR}, + + + DST_PORT = #{dstPort,jdbcType=VARCHAR}, + + + MASK_DST_PORT = #{maskDstPort,jdbcType=VARCHAR}, + + + PROTOCOL = #{protocol,jdbcType=INTEGER}, + + + DIRECTION = #{direction,jdbcType=INTEGER}, + + + IS_VALID = #{isValid,jdbcType=INTEGER}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + EFFECTIVE_RANGE=#{effectiveRange,jdbcType=VARCHAR}, + + + ACTIVE_SYS=#{activeSys,jdbcType=INTEGER}, + + + where CFG_ID = #{cfgId,jdbcType=BIGINT} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfJitLogSearchDao.xml b/src/main/java/com/nis/web/dao/DfJitLogSearchDao.xml new file mode 100644 index 00000000..1bfd9f99 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfJitLogSearchDao.xml @@ -0,0 +1,692 @@ + + + + + + + + + + + + + + + + STAT_ID, FL, XZ, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + STAT_ID, FL, XZ, REPORT_TIME, DEST_COUNTRY, DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + + + + STAT_ID, Affair,topic, REPORT_TIME, SRC_COUNTRY, + SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + STAT_ID, Affair,topic, REPORT_TIME, DEST_COUNTRY, + DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + STAT_ID, mission, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + STAT_ID, mission, REPORT_TIME, DEST_COUNTRY, DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + STAT_ID, guarantee, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + STAT_ID, guarantee, REPORT_TIME, DEST_COUNTRY, + DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STAT_ID, tag, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + STAT_ID, tag, REPORT_TIME, DEST_COUNTRY, + DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STAT_ID, id, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + STAT_ID, id, REPORT_TIME, DEST_COUNTRY, + DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfKeyConvertUrlDao.xml b/src/main/java/com/nis/web/dao/DfKeyConvertUrlDao.xml new file mode 100644 index 00000000..5f42fe1a --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfKeyConvertUrlDao.xml @@ -0,0 +1,44 @@ + + + + + + + ID,KEY_ID,URL,OP_TIME + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfKeyMailAddDao.xml b/src/main/java/com/nis/web/dao/DfKeyMailAddDao.xml new file mode 100644 index 00000000..e6112703 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfKeyMailAddDao.xml @@ -0,0 +1,45 @@ + + + + + + ID,KEY_ID,MAIL_ADDR,OP_TIME + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfLogSearchDao.xml b/src/main/java/com/nis/web/dao/DfLogSearchDao.xml new file mode 100644 index 00000000..947004e0 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfLogSearchDao.xml @@ -0,0 +1,1190 @@ + + + + + + ID,CFG_ID,FOUND_TIME,RECV_TIME, + OVER_ID,PROTOCOL,SERVER_IP,CLIENT_IP, + SERVER_PORT,CLIENT_PORT,NEST_PROTOCOL, + NEST_SERVER_IP,NEST_CLIENT_IP,NEST_SERVER_PORT, + NEST_CLIENT_PORT,SERVICE_TYPE,ENTRANCE_ID,CLJ_IP, + SCENE_FILE,ACTION,SERVER_LOCATE,CLIENT_LOCATE,INJECTED_PKT_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE,REQ_BODY_FILE,COOKIE,REFERER,UA,USER_DEFINE_KEY,USER_DEFINE_VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE, + REQ_BODY_FILE,RES_LINE,RES_HDR_FILE,RES_BODY_FILE,SET_COOKIE, + CONTENT_LEN,CONTENT_TYPE,USER_DEFINE_KEY,USER_DEFINE_VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE, + REQ_BODY_FILE,RES_LINE,RES_HDR_FILE,RES_BODY_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,MAIL_PROTO,MAIL_FROM,MAIL_TO,SUBJECT,EML_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,RD,QTYPE,QCLASS,OPCODE,QNAME,CHEAT_TYPE + ,CHEAT_RCODE,CHEAT_STRATEGY,CHEAT_Rr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,FTP_URL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,TUNNEL_TYPE,ENCRYPT_MODE,CONTENT_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,TUNNEL_TYPE,ENCRYPT_MODE,CHAP_NAME,CONTENT_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,EX_PROTOCOL,ISAKMP_MODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,ENCRYPT_MODE,HMAC,TUNNEL_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,HOST_KEY,HOST_COOKIE,ENCRYPT_MODE,MAC,TUNNEL_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,SNI,INDIVIDUAL_CERT_FILE,MIDDLE_CERT_FILE,ROOT_CERT_FILE,CHAIN_CERT_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,TUNNEL_NAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfLogSearchDaoCluster.xml b/src/main/java/com/nis/web/dao/DfLogSearchDaoCluster.xml new file mode 100644 index 00000000..b19c6b04 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfLogSearchDaoCluster.xml @@ -0,0 +1,1120 @@ + + + + + + CFG_ID,FOUND_TIME,RECV_TIME, + OVER_ID,PROTOCOL,SERVER_IP,CLIENT_IP, + SERVER_PORT,CLIENT_PORT,NEST_PROTOCOL, + NEST_SERVER_IP,NEST_CLIENT_IP,NEST_SERVER_PORT, + NEST_CLIENT_PORT,SERVICE_TYPE,ENTRANCE_ID,CLJ_IP, + SCENE_FILE,ACTION,SERVER_LOCATE,CLIENT_LOCATE,INJECTED_PKT_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE,REQ_BODY_FILE,COOKIE,REFERER,UA,USER_DEFINE_KEY,USER_DEFINE_VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE, + REQ_BODY_FILE,RES_LINE,RES_HDR_FILE,RES_BODY_FILE,SET_COOKIE, + CONTENT_LEN,CONTENT_TYPE,USER_DEFINE_KEY,USER_DEFINE_VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE, + REQ_BODY_FILE,RES_LINE,RES_HDR_FILE,RES_BODY_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,MAIL_PROTO,MAIL_FROM,MAIL_TO,SUBJECT,EML_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,RD,QTYPE,QCLASS,OPCODE,QNAME,CHEAT_TYPE + ,CHEAT_RCODE,CHEAT_STRATEGY,CHEAT_Rr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,FTP_URL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,TUNNEL_TYPE,ENCRYPT_MODE,CONTENT_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,TUNNEL_TYPE,ENCRYPT_MODE,CHAP_NAME,CONTENT_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,EX_PROTOCOL,ISAKMP_MODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,ENCRYPT_MODE,HMAC,TUNNEL_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,HOST_KEY,HOST_COOKIE,ENCRYPT_MODE,MAC,TUNNEL_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,SNI,INDIVIDUAL_CERT_FILE,MIDDLE_CERT_FILE,ROOT_CERT_FILE,CHAIN_CERT_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,TUNNEL_NAME + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfMultiDimensionalReportDao.xml b/src/main/java/com/nis/web/dao/DfMultiDimensionalReportDao.xml new file mode 100644 index 00000000..44cab96c --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfMultiDimensionalReportDao.xml @@ -0,0 +1,230 @@ + + + + + + ASUM,BSUM,REPORT_TIME,SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfMultiDimensionalStatLogDao.xml b/src/main/java/com/nis/web/dao/DfMultiDimensionalStatLogDao.xml new file mode 100644 index 00000000..48e4f760 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfMultiDimensionalStatLogDao.xml @@ -0,0 +1,475 @@ + + + + + + ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfReportDao.xml b/src/main/java/com/nis/web/dao/DfReportDao.xml new file mode 100644 index 00000000..ded34fa9 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfReportDao.xml @@ -0,0 +1,824 @@ + + + + + + ASUM,BSUM,REPORT_TIME + + + ASUM,BSUM,ABSUM,REPORT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,CFG_ID,SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,service + + + + + + + + + + + + + ,tag + + + + + + + + + + + + + + + + + + + + + + + + + ,SRC_PROVINCE,SRC_CITY + + + + + + + + + + + + + + ,DEST_COUNTRY + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DfStatLogDao.xml b/src/main/java/com/nis/web/dao/DfStatLogDao.xml new file mode 100644 index 00000000..852a1e63 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DfStatLogDao.xml @@ -0,0 +1,857 @@ + + + + + + CONFIG_ID,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + TAG,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + attr_type,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + ENTRANCE_ID,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + lwhh,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + SRC_PROVINCE,SRC_CITY,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DEST_COUNTRY,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DjJitLogSearchDao.xml b/src/main/java/com/nis/web/dao/DjJitLogSearchDao.xml new file mode 100644 index 00000000..a17b9506 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DjJitLogSearchDao.xml @@ -0,0 +1,776 @@ + + + + + + + + + + + + + + + + STAT_ID, FL, XZ, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + STAT_ID, FL, XZ, REPORT_TIME, DEST_COUNTRY, DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + + + + STAT_ID, Affair,topic, REPORT_TIME, SRC_COUNTRY, + SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + STAT_ID, Affair,topic, REPORT_TIME, DEST_COUNTRY, + DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + STAT_ID, mission, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + STAT_ID, mission, REPORT_TIME, DEST_COUNTRY, DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + STAT_ID, guarantee, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + STAT_ID, guarantee, REPORT_TIME, DEST_COUNTRY, + DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STAT_ID, tag, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + STAT_ID, tag, REPORT_TIME, DEST_COUNTRY, + DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STAT_ID, id, REPORT_TIME, SRC_COUNTRY, SRC_PROVINCE, + SRC_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + STAT_ID, id, REPORT_TIME, DEST_COUNTRY, + DEST_PROVINCE, + DEST_CITY, SUM, + SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STAT_ID, CONFIG_ID, SERVICE, GJ_CK_ID,SUM,CAP_TIME,active_sys + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DjLogSearchDao.xml b/src/main/java/com/nis/web/dao/DjLogSearchDao.xml new file mode 100644 index 00000000..7bea5db0 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DjLogSearchDao.xml @@ -0,0 +1,1105 @@ + + + + + + ID,CFG_ID,FOUND_TIME,RECV_TIME, + OVER_ID,PROTOCOL,SERVER_IP,CLIENT_IP, + SERVER_PORT,CLIENT_PORT,NEST_PROTOCOL,NEST_SERVER_IP,NEST_CLIENT_IP, + NEST_SERVER_PORT,NEST_CLIENT_PORT,SERVICE_TYPE,ENTRANCE_ID, + CLJ_IP,SCENE_FILE,ACTION,SERVER_LOCATE,CLIENT_LOCATE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE,REQ_BODY_FILE,COOKIE,REFERER,UA,USER_DEFINE_KEY,USER_DEFINE_VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE, + REQ_BODY_FILE,RES_LINE,RES_HDR_FILE,RES_BODY_FILE,SET_COOKIE, + CONTENT_LEN,CONTENT_TYPE,USER_DEFINE_KEY,USER_DEFINE_VALUE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,C2S_ISN,HTTP_PROXY_FLAG,HTTP_SEQ,URL,REQ_LINE,REQ_HDR_FILE, + REQ_BODY_FILE,RES_LINE,RES_HDR_FILE,RES_BODY_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,MAIL_PROTO,MAIL_FROM,MAIL_TO,SUBJECT,EML_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,QR,RD,RA,RR,QTYPE,QCLASS,OPCODE,QNAME,DNS_SUB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,FTP_URL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,TUNNEL_TYPE,ENCRYPT_MODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,TUNNEL_TYPE,ENCRYPT_MODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,EX_PROTOCOL,ISAKMP_MODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,ENCRYPT_MODE,HMAC,TUNNEL_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,HOST_KEY,HOST_COOKIE,ENCRYPT_MODE,MAC,TUNNEL_TYPE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,VERSION,SNI,INDIVIDUAL_CERT_FILE,MIDDLE_CERT_FILE,ROOT_CERT_FILE,CHAIN_CERT_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DjMultiDimensionalReportDao.xml b/src/main/java/com/nis/web/dao/DjMultiDimensionalReportDao.xml new file mode 100644 index 00000000..6924c3c9 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DjMultiDimensionalReportDao.xml @@ -0,0 +1,230 @@ + + + + + + ASUM,BSUM,REPORT_TIME,SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DjMultiDimensionalStatLogDao.xml b/src/main/java/com/nis/web/dao/DjMultiDimensionalStatLogDao.xml new file mode 100644 index 00000000..d99b30d7 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DjMultiDimensionalStatLogDao.xml @@ -0,0 +1,475 @@ + + + + + + ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DjReportDao.xml b/src/main/java/com/nis/web/dao/DjReportDao.xml new file mode 100644 index 00000000..760188c1 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DjReportDao.xml @@ -0,0 +1,617 @@ + + + + + + ASUM,BSUM,CSUM,REPORT_TIME + + + + + + + + + + + + + + + + + + + + ,CFG_ID,SERVICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ,tag + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DjStatLogDao.xml b/src/main/java/com/nis/web/dao/DjStatLogDao.xml new file mode 100644 index 00000000..6ec93aa4 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DjStatLogDao.xml @@ -0,0 +1,858 @@ + + + + + + CONFIG_ID,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + TAG,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + attr_type,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + ENTRANCE_ID,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + lwhh,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + SRC_PROVINCE,SRC_CITY,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DEST_COUNTRY,ACTIVE_SYS,SERVICE,ASUM,BSUM,ABSUM,STAT_TIME + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DmbCkDao.xml b/src/main/java/com/nis/web/dao/DmbCkDao.xml new file mode 100644 index 00000000..0dfd7320 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DmbCkDao.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + ID, NAME, POSITION, COM_OPTION, CZYID, OP_TIME,LAST_UPDATE + + + + delete from DMB_CK + where ID = #{id,jdbcType=BIGINT} + + + + insert into DMB_CK (ID, NAME, POSITION, + COM_OPTION, CZYID, OP_TIME,LAST_UPDATE + ) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{position,jdbcType=VARCHAR}, + #{comOption,jdbcType=VARCHAR}, #{czyid,jdbcType=BIGINT}, #{opTime,jdbcType=TIMESTAMP}, + #{lastUpdate,jdbcType=TIMESTAMP} + ) + + + + update DMB_CK + + + NAME = #{name,jdbcType=VARCHAR}, + + + POSITION = #{position,jdbcType=VARCHAR}, + + + COM_OPTION = #{comOption,jdbcType=VARCHAR}, + + + CZYID = #{czyid,jdbcType=BIGINT}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + where ID = #{id,jdbcType=BIGINT} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DmbPortDao.xml b/src/main/java/com/nis/web/dao/DmbPortDao.xml new file mode 100644 index 00000000..0d621a0e --- /dev/null +++ b/src/main/java/com/nis/web/dao/DmbPortDao.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + ID, ENTRANCE_ID, PORT_NAME, IS_USED, IP_DZ, PORT_EQUIPMENT, ODF_PORT, ADDR, CK_PORT, + CZYID, OP_TIME,LAST_UPDATE + + + + delete from DMB_PORT + where ID = #{id,jdbcType=BIGINT} + + + + insert into DMB_PORT (ID, ENTRANCE_ID, PORT_NAME, + IS_USED, IP_DZ, PORT_EQUIPMENT, + ODF_PORT, ADDR, CK_PORT, + CZYID, OP_TIME,LAST_UPDATE) + values (#{id,jdbcType=BIGINT}, #{entranceId,jdbcType=BIGINT}, #{portName,jdbcType=VARCHAR}, + #{isUsed,jdbcType=INTEGER}, #{ipDz,jdbcType=VARCHAR}, #{portEquipment,jdbcType=VARCHAR}, + #{odfPort,jdbcType=VARCHAR}, #{addr,jdbcType=VARCHAR}, #{ckPort,jdbcType=VARCHAR}, + #{czyid,jdbcType=BIGINT}, #{opTime,jdbcType=TIMESTAMP}, #{lastUpdate,jdbcType=TIMESTAMP}) + + + + update DMB_PORT + + + ENTRANCE_ID = #{entranceId,jdbcType=BIGINT}, + + + PORT_NAME = #{portName,jdbcType=VARCHAR}, + + + IS_USED = #{isUsed,jdbcType=INTEGER}, + + + IP_DZ = #{ipDz,jdbcType=VARCHAR}, + + + PORT_EQUIPMENT = #{portEquipment,jdbcType=VARCHAR}, + + + ODF_PORT = #{odfPort,jdbcType=VARCHAR}, + + + ADDR = #{addr,jdbcType=VARCHAR}, + + + CK_PORT = #{ckPort,jdbcType=VARCHAR}, + + + CZYID = #{czyid,jdbcType=BIGINT}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + where ID = #{id,jdbcType=BIGINT} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DnsFakeInfoDao.xml b/src/main/java/com/nis/web/dao/DnsFakeInfoDao.xml new file mode 100644 index 00000000..c8c89e0d --- /dev/null +++ b/src/main/java/com/nis/web/dao/DnsFakeInfoDao.xml @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + ID, GROUP_ID, INFO, IS_VALID, OP_TIME, YL1, YL2, YL3, YL4, YL5,LAST_UPDATE + + + + delete from DNS_FAKE_INFO + where ID = #{id,jdbcType=BIGINT} + + + + insert into DNS_FAKE_INFO (ID, GROUP_ID, INFO, + IS_VALID, OP_TIME, YL1, + YL2, YL3, YL4, YL5,LAST_UPDATE + ) + values (#{id,jdbcType=BIGINT}, #{groupId,jdbcType=INTEGER}, #{info,jdbcType=VARCHAR}, + #{isValid,jdbcType=INTEGER}, #{opTime,jdbcType=TIMESTAMP}, #{yl1,jdbcType=INTEGER}, + #{yl2,jdbcType=INTEGER}, #{yl3,jdbcType=VARCHAR}, #{yl4,jdbcType=VARCHAR}, #{yl5,jdbcType=VARCHAR} + , #{lastUpdate,jdbcType=TIMESTAMP} + ) + + + insert into DNS_FAKE_INFO + + + ID, + + + GROUP_ID, + + + INFO, + + + IS_VALID, + + + OP_TIME, + + + YL1, + + + YL2, + + + YL3, + + + YL4, + + + YL5, + + + LAST_UPDATE, + + + + + #{id,jdbcType=BIGINT}, + + + #{groupId,jdbcType=INTEGER}, + + + #{info,jdbcType=VARCHAR}, + + + #{isValid,jdbcType=INTEGER}, + + + #{opTime,jdbcType=TIMESTAMP}, + + + #{yl1,jdbcType=INTEGER}, + + + #{yl2,jdbcType=INTEGER}, + + + #{yl3,jdbcType=VARCHAR}, + + + #{yl4,jdbcType=VARCHAR}, + + + #{yl5,jdbcType=VARCHAR}, + + + #{lastUpdate,jdbcType=TIMESTAMP}, + + + + + update DNS_FAKE_INFO + + + GROUP_ID = #{groupId,jdbcType=INTEGER}, + + + INFO = #{info,jdbcType=VARCHAR}, + + + IS_VALID = #{isValid,jdbcType=INTEGER}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + YL1 = #{yl1,jdbcType=INTEGER}, + + + YL2 = #{yl2,jdbcType=INTEGER}, + + + YL3 = #{yl3,jdbcType=VARCHAR}, + + + YL4 = #{yl4,jdbcType=VARCHAR}, + + + YL5 = #{yl5,jdbcType=VARCHAR}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + where ID = #{id,jdbcType=BIGINT} + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DnsFakeIpDao.xml b/src/main/java/com/nis/web/dao/DnsFakeIpDao.xml new file mode 100644 index 00000000..de506c89 --- /dev/null +++ b/src/main/java/com/nis/web/dao/DnsFakeIpDao.xml @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, + groupId, + addrType, + srcIp, + maskSrcIp, + srcPort, + maskSrcPort, + dstIp, + maskDstIp, + dstPort, + maskDstPort, + protocol, + direction, + opTime, + isValid, + yl1, + yl2, + yl3, + yl4, + yl5, + lastUpdate + + + + + insert into DNS_FAKE_IP + + ID, + + GROUP_ID, + + + ADDR_TYPE, + + + SRC_IP, + + + MASK_SRC_IP, + + + SRC_PORT, + + + MASK_SRC_PORT, + + + DST_IP, + + + MASK_DST_IP, + + + DST_PORT, + + + MASK_DST_PORT, + + + PROTOCOL, + + + DIRECTION, + + + IS_VALID, + + + OP_TIME, + + + YL1, + + + YL2, + + + YL3, + + + YL4, + + + YL5, + + + LAST_UPDATE, + + + + #{id,jdbcType=BIGINT}, + + #{groupId,jdbcType=INTEGER}, + + + #{addrType,jdbcType=INTEGER}, + + + #{srcIp,jdbcType=VARCHAR}, + + + #{maskSrcIp,jdbcType=VARCHAR}, + + + #{srcPort,jdbcType=VARCHAR}, + + + #{maskSrcPort,jdbcType=VARCHAR}, + + + #{dstIp,jdbcType=VARCHAR}, + + + #{maskDstIp,jdbcType=VARCHAR}, + + + #{dstPort,jdbcType=VARCHAR}, + + + #{maskDstPort,jdbcType=VARCHAR}, + + + #{protocol,jdbcType=INTEGER}, + + + #{direction,jdbcType=INTEGER}, + + + #{isValid,jdbcType=INTEGER}, + + + #{opTime,jdbcType=TIMESTAMP}, + + + #{yl1,jdbcType=INTEGER}, + + + #{yl2,jdbcType=INTEGER}, + + + #{yl3,jdbcType=VARCHAR}, + + + #{yl4,jdbcType=VARCHAR}, + + + #{yl5,jdbcType=VARCHAR}, + + + #{lastUpdate,jdbcType=TIMESTAMP}, + + + + + UPDATE DNS_FAKE_IP + + + GROUP_ID=#{groupId,jdbcType=INTEGER}, + + + ADDR_TYPE=#{addrType,jdbcType=INTEGER}, + + + SRC_IP=#{srcIp,jdbcType=VARCHAR}, + + + MASK_SRC_IP=#{maskSrcIp,jdbcType=VARCHAR}, + + + SRC_PORT=#{srcPort,jdbcType=VARCHAR}, + + + MASK_SRC_PORT=#{maskSrcPort,jdbcType=VARCHAR}, + + + DST_IP=#{dstIp,jdbcType=VARCHAR}, + + + MASK_DST_IP=#{maskDstIp,jdbcType=VARCHAR}, + + + DST_PORT=#{dstPort,jdbcType=VARCHAR}, + + + MASK_DST_PORT=#{maskDstPort,jdbcType=VARCHAR}, + + + PROTOCOL=#{protocol,jdbcType=INTEGER}, + + + DIRECTION=#{direction,jdbcType=INTEGER}, + + + OP_TIME=#{opTime,jdbcType=TIMESTAMP}, + + + IS_VALID=#{isValid,jdbcType=INTEGER}, + + + YL1=#{yl1,jdbcType=INTEGER}, + + + YL2=#{yl2,jdbcType=INTEGER}, + + + YL3=#{yl3,jdbcType=VARCHAR}, + + + YL4=#{yl4,jdbcType=VARCHAR}, + + + YL5=#{yl5,jdbcType=VARCHAR}, + + + LAST_UPDATE=#{lastUpdate,jdbcType=TIMESTAMP}, + + + where ID = #{id ,jdbcType=BIGINT } + + + DELETE FROM DNS_FAKE_IP + WHERE ID = #{id,jdbcType=BIGINT} + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DnsGroupTypeDao.xml b/src/main/java/com/nis/web/dao/DnsGroupTypeDao.xml new file mode 100644 index 00000000..b2bd8b8f --- /dev/null +++ b/src/main/java/com/nis/web/dao/DnsGroupTypeDao.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + id, + groupId, + groupName, + resTypeId, + opTime, + isValid, + yl1, + yl2, + yl3, + yl4, + yl5, + lastUpdate + + + + + insert into DNS_GROUP_TYPE(ID,GROUP_ID,GROUP_NAME,RES_TYPE_ID,OP_TIME,IS_VALID,YL1,YL2,YL3,YL4,YL5,LAST_UPDATE) + values (#{id},#{groupId},#{groupName},#{resTypeId},#{opTime},#{isValid},#{yl1},#{yl2},#{yl3},#{yl4},#{yl5},#{lastUpdate}) + + + UPDATE DNS_GROUP_TYPE + + + GROUP_ID=#{groupId,jdbcType=INTEGER}, + + + GROUP_NAME=#{groupName,jdbcType=VARCHAR}, + + + RES_TYPE_ID=#{resTypeId,jdbcType=INTEGER}, + + + OP_TIME=#{opTime,jdbcType=TIMESTAMP}, + + + IS_VALID=#{isValid,jdbcType=INTEGER}, + + + YL1=#{yl1,jdbcType=INTEGER}, + + + YL2=#{yl2,jdbcType=INTEGER}, + + + YL3=#{yl3,jdbcType=VARCHAR}, + + + YL4=#{yl4,jdbcType=VARCHAR}, + + + YL5=#{yl5,jdbcType=VARCHAR}, + + + LAST_UPDATE=#{lastUpdate,jdbcType=TIMESTAMP}, + + + where ID = #{id ,jdbcType=BIGINT } + + + DELETE FROM DNS_GROUP_TYPE + WHERE ID = #{id,jdbcType=BIGINT} + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/DnsResponseStrategyDao.xml b/src/main/java/com/nis/web/dao/DnsResponseStrategyDao.xml new file mode 100644 index 00000000..254aa82a --- /dev/null +++ b/src/main/java/com/nis/web/dao/DnsResponseStrategyDao.xml @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, + reqStrateId, + strateName, + resGroupOneId, + resGroupOneNum, + resGroupTwoId, + resGroupTwoNum, + resGroupThreeId, + resGroupThreeNum, + resGroupFourId, + resGroupFourNum, + resGroupFiveId, + resGroupFiveNum, + authGroup, + addGroup, + opTime, + isValid, + yl1, + yl2, + yl3, + yl4, + yl5, + lastUpdate, + minTtl, + maxTtl + + + + + + insert into DNS_RESPONSE_STRATEGY + + ID, + + REQ_STRATE_ID, + + + STRATE_NAME, + + + RES_GROUP_1_ID, + + + RES_GROUP_1_NUM, + + + RES_GROUP_2_ID, + + + RES_GROUP_2_NUM, + + + RES_GROUP_3_ID, + + + RES_GROUP_3_NUM, + + + RES_GROUP_4_ID, + + + RES_GROUP_4_NUM, + + + RES_GROUP_5_ID, + + + RES_GROUP_5_NUM, + + + AUTH_GROUP, + + + ADD_GROUP, + + + OP_TIME, + + + IS_VALID, + + + YL1, + + + YL2, + + + YL3, + + + YL4, + + + YL5, + + + LAST_UPDATE, + + + MIN_TTL, + + + MAX_TTL, + + + + #{id,jdbcType=BIGINT}, + + #{reqStrateId,jdbcType=INTEGER}, + + + #{strateName,jdbcType=VARCHAR}, + + + #{resGroupOneId,jdbcType=INTEGER}, + + + #{resGroupOneNum,jdbcType=INTEGER}, + + + #{resGroupTwoId,jdbcType=INTEGER}, + + + #{resGroupTwoNum,jdbcType=INTEGER}, + + + #{resGroupThreeId,jdbcType=INTEGER}, + + + #{resGroupThreeNum,jdbcType=INTEGER}, + + + #{resGroupFourId,jdbcType=INTEGER}, + + + #{resGroupFourNum,jdbcType=INTEGER}, + + + #{resGroupFiveId,jdbcType=INTEGER}, + + + #{resGroupFiveNum,jdbcType=INTEGER}, + + + #{authGroup,jdbcType=INTEGER}, + + + #{addGroup,jdbcType=INTEGER}, + + + #{opTime,jdbcType=TIMESTAMP}, + + + #{isValid,jdbcType=INTEGER}, + + + #{yl1,jdbcType=INTEGER}, + + + #{yl2,jdbcType=INTEGER}, + + + #{yl3,jdbcType=VARCHAR}, + + + #{yl4,jdbcType=VARCHAR}, + + + #{yl5,jdbcType=VARCHAR}, + + + #{lastUpdate,jdbcType=TIMESTAMP}, + + + #{minTtl,jdbcType=INTEGER}, + + + #{maxTtl,jdbcType=INTEGER}, + + + + + + UPDATE DNS_RESPONSE_STRATEGY + + + REQ_STRATE_ID=#{reqStrateId,jdbcType=INTEGER}, + + + STRATE_NAME=#{strateName,jdbcType=VARCHAR}, + + + RES_GROUP_1_ID=#{resGroupOneId,jdbcType=INTEGER}, + + + RES_GROUP_1_NUM=#{resGroupOneNum,jdbcType=INTEGER}, + + + RES_GROUP_2_ID=#{resGroupTwoId,jdbcType=INTEGER}, + + + RES_GROUP_2_NUM=#{resGroupTwoNum,jdbcType=INTEGER}, + + + RES_GROUP_3_ID=#{resGroupThreeId,jdbcType=INTEGER}, + + + RES_GROUP_3_NUM=#{resGroupThreeNum,jdbcType=INTEGER}, + + + RES_GROUP_4_ID=#{resGroupFourId,jdbcType=INTEGER}, + + + RES_GROUP_4_NUM=#{resGroupFourNum,jdbcType=INTEGER}, + + + RES_GROUP_5_ID=#{resGroupFiveId,jdbcType=INTEGER}, + + + RES_GROUP_5_NUM=#{resGroupFiveNum,jdbcType=INTEGER}, + + + AUTH_GROUP=#{authGroup,jdbcType=INTEGER}, + + + ADD_GROUP=#{addGroup,jdbcType=INTEGER}, + + + OP_TIME=#{opTime,jdbcType=TIMESTAMP}, + + + IS_VALID=#{isValid,jdbcType=INTEGER}, + + + YL1=#{yl1,jdbcType=INTEGER}, + + + YL2=#{yl2,jdbcType=INTEGER}, + + + YL3=#{yl3,jdbcType=VARCHAR}, + + + YL4=#{yl4,jdbcType=VARCHAR}, + + + YL5=#{yl5,jdbcType=VARCHAR}, + + + LAST_UPDATE=#{lastUpdate,jdbcType=TIMESTAMP}, + + + MIN_TTL=#{minTtl,jdbcType=INTEGER}, + + + MAX_TTL=#{maxTtl,jdbcType=INTEGER}, + + + where ID = #{id ,jdbcType=BIGINT } + + + DELETE FROM DNS_RESPONSE_STRATEGY + WHERE ID = #{id,jdbcType=BIGINT} + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/EncryptProtoRandomDao.xml b/src/main/java/com/nis/web/dao/EncryptProtoRandomDao.xml new file mode 100644 index 00000000..c753d278 --- /dev/null +++ b/src/main/java/com/nis/web/dao/EncryptProtoRandomDao.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + ID, RANDOM_VALUE, PROTO, OP_TIME, IS_VALID, PROC_SEQ, LAST_UPDATE + + + + delete from ENCRYPT_PROTO_RANDOM + where ID = #{id,jdbcType=BIGINT} + + + + + insert into ENCRYPT_PROTO_RANDOM + + ID, + + RANDOM_VALUE, + + + PROTO, + + + OP_TIME, + + + IS_VALID, + + + LAST_UPDATE, + + + + #{id,jdbcType=BIGINT}, + + #{randomValue,jdbcType=INTEGER}, + + + #{proto,jdbcType=INTEGER}, + + + #{opTime,jdbcType=TIMESTAMP}, + + + #{isValid,jdbcType=INTEGER}, + + + #{lastUpdate,jdbcType=TIMESTAMP}, + + + + + update ENCRYPT_PROTO_RANDOM + + + RANDOM_VALUE = #{randomValue,jdbcType=INTEGER}, + + + PROTO = #{proto,jdbcType=INTEGER}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + IS_VALID = #{isValid,jdbcType=INTEGER}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + where ID = #{id,jdbcType=BIGINT} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/FakeIpConfigCompileDao.xml b/src/main/java/com/nis/web/dao/FakeIpConfigCompileDao.xml new file mode 100644 index 00000000..c597eb51 --- /dev/null +++ b/src/main/java/com/nis/web/dao/FakeIpConfigCompileDao.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + COMPILE_ID, SERVICE, ACTION, DO_BLACKLIST, DO_LOG, EFFECTIVE_RANGE, USER_REGION, + IS_VALID, OP_TIME, GROUP_NUM,LAST_UPDATE,ACTIVE_SYS + + + + delete from FAKE_IP_CONFIG_COMPILE + where COMPILE_ID = #{compileId,jdbcType=BIGINT} + + + + insert into FAKE_IP_CONFIG_COMPILE (COMPILE_ID, SERVICE, ACTION, + DO_BLACKLIST, DO_LOG, EFFECTIVE_RANGE, + USER_REGION, IS_VALID, OP_TIME, + GROUP_NUM,LAST_UPDATE,ACTIVE_SYS) + values (#{compileId,jdbcType=BIGINT}, #{service,jdbcType=INTEGER}, #{action,jdbcType=INTEGER}, + #{doBlacklist,jdbcType=INTEGER}, #{doLog,jdbcType=INTEGER}, #{effectiveRange,jdbcType=VARCHAR}, + #{userRegion,jdbcType=VARCHAR}, #{isValid,jdbcType=INTEGER}, #{opTime,jdbcType=TIMESTAMP}, + #{groupNum,jdbcType=INTEGER}, #{lastUpdate,jdbcType=TIMESTAMP},#{activeSys,jdbcType=INTEGER}) + + + + update FAKE_IP_CONFIG_COMPILE + + + SERVICE = #{service,jdbcType=INTEGER}, + + + ACTION = #{action,jdbcType=INTEGER}, + + + DO_BLACKLIST = #{doBlacklist,jdbcType=INTEGER}, + + + DO_LOG = #{doLog,jdbcType=INTEGER}, + + + EFFECTIVE_RANGE = #{effectiveRange,jdbcType=VARCHAR}, + + + USER_REGION = #{userRegion,jdbcType=VARCHAR}, + + + IS_VALID = #{isValid,jdbcType=INTEGER}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + GROUP_NUM = #{groupNum,jdbcType=INTEGER}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + ACTIVE_SYS = #{activeSys,jdbcType=INTEGER}, + + + where COMPILE_ID = #{compileId,jdbcType=BIGINT} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/FakeIpConfigGroupDao.xml b/src/main/java/com/nis/web/dao/FakeIpConfigGroupDao.xml new file mode 100644 index 00000000..658a324b --- /dev/null +++ b/src/main/java/com/nis/web/dao/FakeIpConfigGroupDao.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + insert into FAKE_IP_CONFIG_GROUP (GROUP_ID, COMPILE_ID, IS_VALID, + OP_TIME,LAST_UPDATE,ID) + values (#{groupId,jdbcType=BIGINT}, #{compileId,jdbcType=BIGINT}, #{isValid,jdbcType=INTEGER}, + #{opTime,jdbcType=TIMESTAMP},#{lastUpdate,jdbcType=TIMESTAMP},SEQ_CONFIG_GROUP.Nextval) + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/FwqInfoDao.xml b/src/main/java/com/nis/web/dao/FwqInfoDao.xml new file mode 100644 index 00000000..b25886ae --- /dev/null +++ b/src/main/java/com/nis/web/dao/FwqInfoDao.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + ID, NAME, ENTRANCE_ID, CZYID, OP_TIME,LAST_UPDATE + + + + delete from FWQ_INFO + where ID = #{id,jdbcType=BIGINT} + + + + insert into FWQ_INFO (ID, NAME, ENTRANCE_ID, + CZYID, OP_TIME,LAST_UPDATE) + values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{entranceId,jdbcType=BIGINT}, + #{czyid,jdbcType=BIGINT}, #{opTime,jdbcType=TIMESTAMP},#{lastUpdate,jdbcType=TIMESTAMP}) + + + + update FWQ_INFO + + + NAME = #{name,jdbcType=VARCHAR}, + + + ENTRANCE_ID = #{entranceId,jdbcType=BIGINT}, + + + CZYID = #{czyid,jdbcType=BIGINT}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + where ID = #{id,jdbcType=BIGINT} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/IntervalTimeSearchDao.xml b/src/main/java/com/nis/web/dao/IntervalTimeSearchDao.xml new file mode 100644 index 00000000..65fb6f24 --- /dev/null +++ b/src/main/java/com/nis/web/dao/IntervalTimeSearchDao.xml @@ -0,0 +1,44 @@ + + + + + + + CFG_ID,SERVICE,ACTION,OP_TIME + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/IpLocationPublicMapper.xml b/src/main/java/com/nis/web/dao/IpLocationPublicMapper.xml new file mode 100644 index 00000000..b816d258 --- /dev/null +++ b/src/main/java/com/nis/web/dao/IpLocationPublicMapper.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + ID, IP_START, IP_END, IP_START_NUM, IP_END_NUM, CONTINENT, COUNTRY, PROVINCE, CITY, + DISTRICT, DESCRIPTION, ISP, AREA_CODE, COUNTRY_ENGLISH, COUNTRY_CODE, LONGITUDE, + LATITUDE + + + + delete from IP_LOCATION_PUBLIC + where ID = #{id,jdbcType=BIGINT} + + + + SELECT SEQ_IP_LOCATION_PUBLIC.Nextval as ID from DUAL + + insert into IP_LOCATION_PUBLIC (ID, IP_START, IP_END, + IP_START_NUM, IP_END_NUM, CONTINENT, + COUNTRY, PROVINCE, CITY, + DISTRICT, DESCRIPTION, ISP, + AREA_CODE, COUNTRY_ENGLISH, COUNTRY_CODE, + LONGITUDE, LATITUDE) + values (#{id,jdbcType=BIGINT}, #{ipStart,jdbcType=VARCHAR}, #{ipEnd,jdbcType=VARCHAR}, + #{ipStartNum,jdbcType=BIGINT}, #{ipEndNum,jdbcType=BIGINT}, #{continent,jdbcType=VARCHAR}, + #{country,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, #{city,jdbcType=VARCHAR}, + #{district,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{isp,jdbcType=VARCHAR}, + #{areaCode,jdbcType=VARCHAR}, #{countryEnglish,jdbcType=VARCHAR}, #{countryCode,jdbcType=VARCHAR}, + #{longitude,jdbcType=VARCHAR}, #{latitude,jdbcType=VARCHAR}) + + + insert into IP_LOCATION_PUBLIC + + + ID, + + + IP_START, + + + IP_END, + + + IP_START_NUM, + + + IP_END_NUM, + + + CONTINENT, + + + COUNTRY, + + + PROVINCE, + + + CITY, + + + DISTRICT, + + + DESCRIPTION, + + + ISP, + + + AREA_CODE, + + + COUNTRY_ENGLISH, + + + COUNTRY_CODE, + + + LONGITUDE, + + + LATITUDE, + + + + + #{id,jdbcType=BIGINT}, + + + #{ipStart,jdbcType=VARCHAR}, + + + #{ipEnd,jdbcType=VARCHAR}, + + + #{ipStartNum,jdbcType=BIGINT}, + + + #{ipEndNum,jdbcType=BIGINT}, + + + #{continent,jdbcType=VARCHAR}, + + + #{country,jdbcType=VARCHAR}, + + + #{province,jdbcType=VARCHAR}, + + + #{city,jdbcType=VARCHAR}, + + + #{district,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{isp,jdbcType=VARCHAR}, + + + #{areaCode,jdbcType=VARCHAR}, + + + #{countryEnglish,jdbcType=VARCHAR}, + + + #{countryCode,jdbcType=VARCHAR}, + + + #{longitude,jdbcType=VARCHAR}, + + + #{latitude,jdbcType=VARCHAR}, + + + + + update IP_LOCATION_PUBLIC + + + IP_START = #{ipStart,jdbcType=VARCHAR}, + + + IP_END = #{ipEnd,jdbcType=VARCHAR}, + + + IP_START_NUM = #{ipStartNum,jdbcType=BIGINT}, + + + IP_END_NUM = #{ipEndNum,jdbcType=BIGINT}, + + + CONTINENT = #{continent,jdbcType=VARCHAR}, + + + COUNTRY = #{country,jdbcType=VARCHAR}, + + + PROVINCE = #{province,jdbcType=VARCHAR}, + + + CITY = #{city,jdbcType=VARCHAR}, + + + DISTRICT = #{district,jdbcType=VARCHAR}, + + + DESCRIPTION = #{description,jdbcType=VARCHAR}, + + + ISP = #{isp,jdbcType=VARCHAR}, + + + AREA_CODE = #{areaCode,jdbcType=VARCHAR}, + + + COUNTRY_ENGLISH = #{countryEnglish,jdbcType=VARCHAR}, + + + COUNTRY_CODE = #{countryCode,jdbcType=VARCHAR}, + + + LONGITUDE = #{longitude,jdbcType=VARCHAR}, + + + LATITUDE = #{latitude,jdbcType=VARCHAR}, + + + where ID = #{id,jdbcType=BIGINT} + + + update IP_LOCATION_PUBLIC + set IP_START = #{ipStart,jdbcType=VARCHAR}, + IP_END = #{ipEnd,jdbcType=VARCHAR}, + IP_START_NUM = #{ipStartNum,jdbcType=BIGINT}, + IP_END_NUM = #{ipEndNum,jdbcType=BIGINT}, + CONTINENT = #{continent,jdbcType=VARCHAR}, + COUNTRY = #{country,jdbcType=VARCHAR}, + PROVINCE = #{province,jdbcType=VARCHAR}, + CITY = #{city,jdbcType=VARCHAR}, + DISTRICT = #{district,jdbcType=VARCHAR}, + DESCRIPTION = #{description,jdbcType=VARCHAR}, + ISP = #{isp,jdbcType=VARCHAR}, + AREA_CODE = #{areaCode,jdbcType=VARCHAR}, + COUNTRY_ENGLISH = #{countryEnglish,jdbcType=VARCHAR}, + COUNTRY_CODE = #{countryCode,jdbcType=VARCHAR}, + LONGITUDE = #{longitude,jdbcType=VARCHAR}, + LATITUDE = #{latitude,jdbcType=VARCHAR} + where ID = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/IpRegionDao.xml b/src/main/java/com/nis/web/dao/IpRegionDao.xml new file mode 100644 index 00000000..5a46d22c --- /dev/null +++ b/src/main/java/com/nis/web/dao/IpRegionDao.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + REGION_ID,GROUP_ID, + ADDR_TYPE,SRC_IP,MASK_SRC_IP,SRC_PORT,MASK_SRC_PORT,DST_IP, + MASK_DST_IP,DST_PORT,MASK_DST_PORT,PROTOCOL,DIRECTION,IS_VALID,OP_TIME,LAST_UPDATE,PROC_SEQ + + + + + + + + + + + insert into ${tableName} + (REGION_ID, + GROUP_ID, + ADDR_TYPE, + SRC_IP, + MASK_SRC_IP, + SRC_PORT, + MASK_SRC_PORT, + DST_IP, + MASK_DST_IP, + DST_PORT, + MASK_DST_PORT, + PROTOCOL, + DIRECTION, + IS_VALID, + OP_TIME,LAST_UPDATE + + ) + + select + #{item.regionId,jdbcType=BIGINT}, + #{item.groupId,jdbcType=BIGINT}, + #{item.addrType,jdbcType=INTEGER}, + #{item.srcIp,jdbcType=VARCHAR}, + #{item.maskSrcIp,jdbcType=VARCHAR}, + #{item.srcPort,jdbcType=VARCHAR}, + #{item.maskSrcPort,jdbcType=VARCHAR}, + #{item.dstIp,jdbcType=VARCHAR}, + #{item.maskDstIp,jdbcType=VARCHAR}, + #{item.dstPort,jdbcType=VARCHAR}, + #{item.maskDstPort,jdbcType=VARCHAR}, + #{item.protocol,jdbcType=INTEGER}, + #{item.direction,jdbcType=INTEGER}, + #{item.isValid,jdbcType=INTEGER}, + #{item.opTime,jdbcType=TIMESTAMP}, + sysdate + + from dual + + + + + + + + + + + + + + + + + + + + + + insert into ${tableName} + (REGION_ID, + GROUP_ID, + ADDR_TYPE, + SRC_IP, + MASK_SRC_IP, + SRC_PORT, + MASK_SRC_PORT, + DST_IP, + MASK_DST_IP, + DST_PORT, + MASK_DST_PORT, + PROTOCOL, + DIRECTION, + IS_VALID, + + LAST_UPDATE, + + OP_TIME + ) + values + (#{regionId,jdbcType=BIGINT}, + #{groupId,jdbcType=BIGINT}, + #{addrType,jdbcType=INTEGER}, + #{srcIp,jdbcType=VARCHAR}, + #{maskSrcIp,jdbcType=VARCHAR}, + #{srcPort,jdbcType=VARCHAR}, + #{maskSrcPort,jdbcType=VARCHAR}, + #{dstIp,jdbcType=VARCHAR}, + #{maskDstIp,jdbcType=VARCHAR}, + #{dstPort,jdbcType=VARCHAR}, + #{maskDstPort,jdbcType=VARCHAR}, + #{protocol,jdbcType=INTEGER}, + #{direction,jdbcType=INTEGER}, + #{isValid,jdbcType=INTEGER}, + + #{lastUpdate,jdbcType=TIMESTAMP}, + + #{opTime,jdbcType=TIMESTAMP} + ) + + + + UPDATE ${tableName} + + + IS_VALID=#{isValid,jdbcType=INTEGER}, + + + OP_TIME=#{opTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATE=#{lastUpdate,jdbcType=TIMESTAMP}, + + + where REGION_ID=#{regionId} + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/JdjInfoDao.xml b/src/main/java/com/nis/web/dao/JdjInfoDao.xml new file mode 100644 index 00000000..04a6a095 --- /dev/null +++ b/src/main/java/com/nis/web/dao/JdjInfoDao.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + ID, NAME, FWQ_ID, JC_IP, FD_IP, CZYID, OP_TIME,LAST_UPDATE + + + + delete from JDJ_INFO + where ID = #{id,jdbcType=BIGINT} + + + + + insert into JDJ_INFO + + ID, + + NAME, + + + FWQ_ID, + + + JC_IP, + + + FD_IP, + + + CZYID, + + + OP_TIME, + + + LAST_UPDATE, + + + + #{id,jdbcType=BIGINT}, + + #{name,jdbcType=VARCHAR}, + + + #{fwqId,jdbcType=BIGINT}, + + + #{jcIp,jdbcType=VARCHAR}, + + + #{fdIp,jdbcType=VARCHAR}, + + + #{czyid,jdbcType=BIGINT}, + + + #{opTime,jdbcType=TIMESTAMP}, + + + #{lastUpdate,jdbcType=TIMESTAMP}, + + + + + + update JDJ_INFO + + + NAME = #{name,jdbcType=VARCHAR}, + + + FWQ_ID = #{fwqId,jdbcType=BIGINT}, + + + JC_IP = #{jcIp,jdbcType=VARCHAR}, + + + FD_IP = #{fdIp,jdbcType=VARCHAR}, + + + CZYID = #{czyid,jdbcType=BIGINT}, + + + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + + LAST_UPDATE = #{lastUpdate,jdbcType=TIMESTAMP}, + + + where ID = #{id,jdbcType=BIGINT} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/MyBatisDao.java b/src/main/java/com/nis/web/dao/MyBatisDao.java new file mode 100644 index 00000000..3d2c7a4c --- /dev/null +++ b/src/main/java/com/nis/web/dao/MyBatisDao.java @@ -0,0 +1,32 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.web.dao; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.springframework.stereotype.Component; + +/** + * 标识MyBatis的DAO,方便{@link org.mybatis.spring.mapper.MapperScannerConfigurer}的扫描。 + * @author thinkgem + * @version 2013-8-28 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Documented +@Component +public @interface MyBatisDao { + + /** + * The value may indicate a suggestion for a logical component name, + * to be turned into a Spring bean in case of an autodetected component. + * @return the suggested component name, if any + */ + String value() default ""; + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/NumRegionDao.xml b/src/main/java/com/nis/web/dao/NumRegionDao.xml new file mode 100644 index 00000000..bcf2d06e --- /dev/null +++ b/src/main/java/com/nis/web/dao/NumRegionDao.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + REGION_ID,GROUP_ID,LOW_BOUNDARY,UP_BOUNDARY,IS_VALID,OP_TIME,LAST_UPDATE,PROC_SEQ + + + + + + + + + + insert into ${tableName} + (REGION_ID , + GROUP_ID , + LOW_BOUNDARY , + UP_BOUNDARY , + IS_VALID , + OP_TIME,LAST_UPDATE + + ) + + select + #{item.regionId,jdbcType=BIGINT}, + #{item.groupId,jdbcType=BIGINT}, + #{item.lowBoundary,jdbcType=BIGINT}, + #{item.upBoundary,jdbcType=BIGINT}, + #{item.isValid,jdbcType=INTEGER}, + #{item.opTime,jdbcType=TIMESTAMP}, + sysdate + + from dual + + + + + + + + insert into ${tableName} + (REGION_ID , + GROUP_ID , + LOW_BOUNDARY , + UP_BOUNDARY , + IS_VALID , + + LAST_UPDATE, + + OP_TIME + ) + values + (#{regionId,jdbcType=BIGINT}, + #{groupId,jdbcType=BIGINT}, + #{lowBoundary,jdbcType=BIGINT}, + #{upBoundary,jdbcType=BIGINT}, + #{isValid,jdbcType=INTEGER}, + + #{lastUpdate,jdbcType=TIMESTAMP}, + + #{opTime,jdbcType=TIMESTAMP} + ) + + + + + UPDATE ${tableName} + + + IS_VALID=#{isValid , jdbcType=INTEGER }, + + + OP_TIME= #{ opTime , jdbcType=TIMESTAMP }, + + + LAST_UPDATE=#{lastUpdate,jdbcType=TIMESTAMP}, + + + where REGION_ID=#{regionId} + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/ServicesRequestLogDao.xml b/src/main/java/com/nis/web/dao/ServicesRequestLogDao.xml new file mode 100644 index 00000000..b95909ee --- /dev/null +++ b/src/main/java/com/nis/web/dao/ServicesRequestLogDao.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + ID, OPERATOR, VERSION, OPACTION,OPTIME, REQUEST_CONTENT, + REQUEST_TIME,REQUEST_IP, + CONSUMER_TIME,BUSINESS_CODE,EXCEPTION_INFO,SERVER_IP + + + + + delete from + SERVICES_REQUEST_LOG + where ID = #{id,jdbcType=BIGINT} + + + + delete from + SERVICES_REQUEST_LOG + + + + insert into SERVICES_REQUEST_LOG + + ID, + + OPERATOR, + + + VERSION, + + + OPACTION, + + + OPTIME, + + + REQUEST_CONTENT, + + + REQUEST_TIME, + + + CONSUMER_TIME, + + + REQUEST_IP, + + + BUSINESS_CODE, + + + EXCEPTION_INFO, + + + SERVER_IP, + + + + SEQ_SERVICES_REQUEST_LOG.Nextval, + + #{operator,jdbcType=VARCHAR}, + + + #{version,jdbcType=VARCHAR}, + + + #{opAction,jdbcType=INTEGER}, + + + #{opTime,jdbcType=TIMESTAMP}, + + + #{requestContent,jdbcType=CLOB}, + + + #{requestTime,jdbcType=TIMESTAMP}, + + + #{consumerTime,jdbcType=BIGINT}, + + + #{requestIp,jdbcType=VARCHAR}, + + + #{businessCode,jdbcType=INTEGER}, + + + #{exceptionInfo,jdbcType=VARCHAR}, + + + #{serverIp,jdbcType=VARCHAR}, + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SrcIpDao.java b/src/main/java/com/nis/web/dao/SrcIpDao.java new file mode 100644 index 00000000..5b32f00b --- /dev/null +++ b/src/main/java/com/nis/web/dao/SrcIpDao.java @@ -0,0 +1,25 @@ +package com.nis.web.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.SrcIp; +@MyBatisDao +public interface SrcIpDao extends CrudDao { + + + List getIpInfo(@Param("ip") Long ipaddr); + + int deleteByPrimaryKey(Integer seqId); + + int insert(SrcIp record); + + int insertSelective(SrcIp record); + + SrcIp selectByPrimaryKey(Integer seqId); + + int updateByPrimaryKeySelective(SrcIp record); + + int updateByPrimaryKey(SrcIp record); +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SrcIpDao.xml b/src/main/java/com/nis/web/dao/SrcIpDao.xml new file mode 100644 index 00000000..b574d181 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SrcIpDao.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + seq_id, ip_start_addr, ip_end_addr, ip_addr_range, ip_start_string, ip_end_string, + port, isp_id, area_id, flag, description, yl1, yl2 + + + + delete from src_ip + where seq_id = #{seqId,jdbcType=INTEGER} + + + insert into src_ip (seq_id, ip_start_addr, ip_end_addr, + ip_addr_range, ip_start_string, ip_end_string, + port, isp_id, area_id, + flag, description, yl1, + yl2) + values (#{seqId,jdbcType=INTEGER}, #{ipStartAddr,jdbcType=INTEGER}, #{ipEndAddr,jdbcType=INTEGER}, + #{ipAddrRange,jdbcType=INTEGER}, #{ipStartString,jdbcType=VARCHAR}, #{ipEndString,jdbcType=VARCHAR}, + #{port,jdbcType=INTEGER}, #{ispId,jdbcType=BIGINT}, #{areaId,jdbcType=BIGINT}, + #{flag,jdbcType=INTEGER}, #{description,jdbcType=VARCHAR}, #{yl1,jdbcType=INTEGER}, + #{yl2,jdbcType=VARCHAR}) + + + insert into src_ip + + + seq_id, + + + ip_start_addr, + + + ip_end_addr, + + + ip_addr_range, + + + ip_start_string, + + + ip_end_string, + + + port, + + + isp_id, + + + area_id, + + + flag, + + + description, + + + yl1, + + + yl2, + + + + + #{seqId,jdbcType=INTEGER}, + + + #{ipStartAddr,jdbcType=INTEGER}, + + + #{ipEndAddr,jdbcType=INTEGER}, + + + #{ipAddrRange,jdbcType=INTEGER}, + + + #{ipStartString,jdbcType=VARCHAR}, + + + #{ipEndString,jdbcType=VARCHAR}, + + + #{port,jdbcType=INTEGER}, + + + #{ispId,jdbcType=BIGINT}, + + + #{areaId,jdbcType=BIGINT}, + + + #{flag,jdbcType=INTEGER}, + + + #{description,jdbcType=VARCHAR}, + + + #{yl1,jdbcType=INTEGER}, + + + #{yl2,jdbcType=VARCHAR}, + + + + + update src_ip + + + ip_start_addr = #{ipStartAddr,jdbcType=INTEGER}, + + + ip_end_addr = #{ipEndAddr,jdbcType=INTEGER}, + + + ip_addr_range = #{ipAddrRange,jdbcType=INTEGER}, + + + ip_start_string = #{ipStartString,jdbcType=VARCHAR}, + + + ip_end_string = #{ipEndString,jdbcType=VARCHAR}, + + + port = #{port,jdbcType=INTEGER}, + + + isp_id = #{ispId,jdbcType=BIGINT}, + + + area_id = #{areaId,jdbcType=BIGINT}, + + + flag = #{flag,jdbcType=INTEGER}, + + + description = #{description,jdbcType=VARCHAR}, + + + yl1 = #{yl1,jdbcType=INTEGER}, + + + yl2 = #{yl2,jdbcType=VARCHAR}, + + + where seq_id = #{seqId,jdbcType=INTEGER} + + + update src_ip + set ip_start_addr = #{ipStartAddr,jdbcType=INTEGER}, + ip_end_addr = #{ipEndAddr,jdbcType=INTEGER}, + ip_addr_range = #{ipAddrRange,jdbcType=INTEGER}, + ip_start_string = #{ipStartString,jdbcType=VARCHAR}, + ip_end_string = #{ipEndString,jdbcType=VARCHAR}, + port = #{port,jdbcType=INTEGER}, + isp_id = #{ispId,jdbcType=BIGINT}, + area_id = #{areaId,jdbcType=BIGINT}, + flag = #{flag,jdbcType=INTEGER}, + description = #{description,jdbcType=VARCHAR}, + yl1 = #{yl1,jdbcType=INTEGER}, + yl2 = #{yl2,jdbcType=VARCHAR} + where seq_id = #{seqId,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/StrRegionDao.xml b/src/main/java/com/nis/web/dao/StrRegionDao.xml new file mode 100644 index 00000000..c8b5f55c --- /dev/null +++ b/src/main/java/com/nis/web/dao/StrRegionDao.xml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + REGION_ID, + GROUP_ID, + KEYWORDS, + EXPR_TYPE, + MATCH_METHOD, + IS_HEXBIN, + IS_VALID, + OP_TIME,LAST_UPDATE,PROC_SEQ + + + REGION_ID, + GROUP_ID, + DISTRICT, + KEYWORDS, + EXPR_TYPE, + MATCH_METHOD, + IS_HEXBIN, + IS_VALID, + OP_TIME,LAST_UPDATE,PROC_SEQ + + + + + + + + + insert into ${tableName} + (REGION_ID, + GROUP_ID, + KEYWORDS, + EXPR_TYPE, + MATCH_METHOD , + IS_HEXBIN, + IS_VALID, + OP_TIME,LAST_UPDATE + + ) + + select + #{item.regionId,jdbcType=BIGINT}, + #{item.groupId,jdbcType=BIGINT}, + #{item.keywords,jdbcType=VARCHAR}, + #{item.exprType,jdbcType=INTEGER}, + #{item.matchMethod,jdbcType=INTEGER}, + #{item.isHexbin,jdbcType=INTEGER}, + #{item.isValid,jdbcType=INTEGER}, + #{item.opTime,jdbcType=TIMESTAMP}, + sysdate + + from dual + + + + + + insert into ${tableName} + (REGION_ID, + GROUP_ID, + DISTRICT, + KEYWORDS, + EXPR_TYPE, + MATCH_METHOD , + IS_HEXBIN, + IS_VALID, + OP_TIME,LAST_UPDATE + ) + + select + #{item.regionId,jdbcType=BIGINT}, + #{item.groupId,jdbcType=BIGINT}, + #{item.district,jdbcType=VARCHAR}, + #{item.keywords,jdbcType=VARCHAR}, + #{item.exprType,jdbcType=INTEGER}, + #{item.matchMethod,jdbcType=INTEGER}, + #{item.isHexbin,jdbcType=INTEGER}, + #{item.isValid,jdbcType=INTEGER}, + #{item.opTime,jdbcType=TIMESTAMP}, + + sysdate + from dual + + + + + + + + UPDATE ${tableName} + + + IS_VALID=#{isValid , jdbcType=INTEGER }, + + + OP_TIME= #{ opTime , jdbcType=TIMESTAMP }, + + + LAST_UPDATE=#{lastUpdate,jdbcType=TIMESTAMP}, + + + where REGION_ID=#{regionId} + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysAreaDao.java b/src/main/java/com/nis/web/dao/SysAreaDao.java new file mode 100644 index 00000000..4f01052a --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysAreaDao.java @@ -0,0 +1,11 @@ +package com.nis.web.dao; + +import java.util.List; + +import com.nis.domain.SysArea; +@MyBatisDao +public interface SysAreaDao extends TreeDao{ + + List findByParentIdsLike(SysArea area); + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysAreaDao.xml b/src/main/java/com/nis/web/dao/SysAreaDao.xml new file mode 100644 index 00000000..495f1b04 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysAreaDao.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + id, parent_id, parent_ids, name, sort, code, type, remarks, longitude, latitude, del_flag + + + + a.id, + a.parent_id AS "parent.id", + a.parent_ids, + a.code, + a.name, + a.sort, + a.type, + a.remarks, + a.longitude, + a.latitude, + a.del_flag, + p.name AS "parent.name", + p.parent_ids as "parent.parentIds" + + + + + LEFT JOIN sys_area p ON p.id = a.parent_id + + + + + + + + + + + + + INSERT INTO sys_area( + parent_id, + parent_ids, + code, + name, + sort, + type, + longitude, + latitude, + remarks, + del_flag + ) VALUES ( + #{parent.id}, + #{parentIds}, + #{code}, + #{name}, + #{sort}, + #{type}, + #{longitude}, + #{latitude}, + #{remarks}, + #{delFlag} + ) + + + + UPDATE sys_area SET + parent_id = #{parent.id}, + parent_ids = #{parentIds}, + code = #{code}, + name = #{name}, + sort = #{sort}, + type = #{type}, + longitude = #{longitude}, + latitude = #{latitude}, + remarks = #{remarks} + WHERE id = #{id} + + + + UPDATE sys_area SET + parent_id = #{parent.id}, + parent_ids = #{parentIds} + WHERE id = #{id} + + + + + UPDATE sys_area SET + del_flag = #{DEL_FLAG_DELETE} + WHERE id = #{id} OR parent_ids LIKE + '%,'||#{id}||',%' + '%,'+#{id}+',%' + CONCAT('%,', #{id}, ',%') + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysDictDao.java b/src/main/java/com/nis/web/dao/SysDictDao.java new file mode 100644 index 00000000..90d0d1fb --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysDictDao.java @@ -0,0 +1,32 @@ +package com.nis.web.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.SysDataDictionaryItem; +import com.nis.domain.SysDataDictionaryName; + +@MyBatisDao +public interface SysDictDao extends CrudDao { + + + List findDicByName(@Param("DEL_FLAG_NORMAL")String DEL_FLAG_NORMAL,@Param("modualName") String modualName); + + List findDictList(SysDataDictionaryName sysDictName); + + SysDataDictionaryName getDictById(@Param("DEL_FLAG_NORMAL")Integer DEL_FLAG_NORMAL,@Param("id") Integer id); + + void insertDictName(SysDataDictionaryName sysDictName); + + void updateDictName(SysDataDictionaryName sysDictName); + + void insertDictItem(SysDataDictionaryItem sysDictitem); + + void deleteDictItem(@Param("dictId")Integer dictId); + + void deleteDictName(@Param("dictId")Integer dictId); + + + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysDictDao.xml b/src/main/java/com/nis/web/dao/SysDictDao.xml new file mode 100644 index 00000000..0d96f59b --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysDictDao.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, module_name, mark, remark, revision, create_time, modify_time, status + + + + n.id, + n.module_name, + n.mark, + n.remark, + n.revision, + n.create_time, + n.modify_time, + n.status, + t.id as item_id, + t.item_code, + t.item_value, + t.item_desc, + t.item_sort, + t.status as item_status, + t.type + + + + LEFT JOIN sys_data_dictionary_item t ON t.dictionary_id = n.id and t.status= #{DEL_FLAG_NORMAL} + + + + + + + + + + + + + + insert into sys_data_dictionary_name (module_name, mark, + remark, revision, create_time, + modify_time, status) + values ( #{moduleName,jdbcType=VARCHAR}, #{mark,jdbcType=VARCHAR}, + #{remark,jdbcType=VARCHAR}, #{revision,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, + #{modifyTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}) + + + + + insert into sys_data_dictionary_item ( item_code, item_value, + item_desc, item_sort, status, + type, dictionary_id) + values (#{itemCode,jdbcType=VARCHAR}, #{itemValue,jdbcType=VARCHAR}, + #{itemDesc,jdbcType=VARCHAR}, #{itemSort,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, + #{type,jdbcType=INTEGER}, #{dictionaryId,jdbcType=INTEGER}) + + + + + delete from sys_data_dictionary_name + where id = #{dictId} + + + + + delete from sys_data_dictionary_item + where dictionary_id = #{dictId} + + + + + update sys_data_dictionary_name + set module_name = #{moduleName,jdbcType=VARCHAR}, + mark = #{mark,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + revision = #{revision,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + modify_time = #{modifyTime,jdbcType=TIMESTAMP}, + status = #{status,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysLogDao.java b/src/main/java/com/nis/web/dao/SysLogDao.java new file mode 100644 index 00000000..ecabd4df --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysLogDao.java @@ -0,0 +1,7 @@ +package com.nis.web.dao; + +import com.nis.domain.SysLog; +@MyBatisDao +public interface SysLogDao extends CrudDao{ + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysLogDao.xml b/src/main/java/com/nis/web/dao/SysLogDao.xml new file mode 100644 index 00000000..e251c471 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysLogDao.xml @@ -0,0 +1,62 @@ + + + + + + + + + INSERT INTO sys_log( + type, + title, + create_by, + create_date, + remote_addr, + user_agent, + request_uri, + method, + state, + consumer_time, + params, + exception + ) VALUES ( + #{type}, + #{title}, + #{createBy}, + #{createDate}, + #{remoteAddr}, + #{userAgent}, + #{requestUri}, + #{method}, + #{state}, + #{consumerTime}, + #{params}, + #{exception} + ) + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysMenuDao.java b/src/main/java/com/nis/web/dao/SysMenuDao.java new file mode 100644 index 00000000..3e90c6de --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysMenuDao.java @@ -0,0 +1,23 @@ +package com.nis.web.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.SysMenu; + +@MyBatisDao +public interface SysMenuDao extends CrudDao{ + + + + + List findSysMenuByUserId(@Param("userId") Long userId); + + List findByParentIdsLike(SysMenu m); + + void updateParentIds(SysMenu e); + + void updateSort(SysMenu menu); + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysMenuDao.xml b/src/main/java/com/nis/web/dao/SysMenuDao.xml new file mode 100644 index 00000000..029537a1 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysMenuDao.xml @@ -0,0 +1,154 @@ + + + + + + a.id, + a.parent_id AS "parent.id", + a.parent_ids, + a.name, + a.href, + a.target, + a.icon, + a.sort, + a.is_show, + a.permission, + a.remarks, + a.create_by AS "createBy.id", + a.create_date, + a.update_by AS "updateBy.id", + a.update_date, + a.del_flag, + a.quick_action, + a.menu_bg, + p.name AS "parent.name" + + + + LEFT JOIN sys_menu p ON p.id = a.parent_id + + + + + + + + + + + + + + INSERT INTO sys_menu( + parent_id, + parent_ids, + name, + href, + target, + icon, + sort, + is_show, + permission, + create_by, + create_date, + update_by, + update_date, + remarks, + del_flag + ) VALUES ( + #{parent.id}, + #{parentIds}, + #{name}, + #{href}, + #{target}, + #{icon}, + #{sort}, + #{isShow}, + #{permission}, + #{createBy.id}, + #{createDate}, + #{updateBy.id}, + #{updateDate}, + #{remarks}, + #{delFlag} + ) + + + + UPDATE sys_menu SET + parent_id = #{parent.id}, + parent_ids = #{parentIds}, + name = #{name}, + href = #{href}, + target = #{target}, + icon = #{icon}, + sort = #{sort}, + is_show = #{isShow}, + permission = #{permission}, + update_by = #{updateBy.id}, + update_date = #{updateDate}, + remarks = #{remarks} + WHERE id = #{id} + + + + + + UPDATE sys_menu SET + parent_id = #{parent.id}, + parent_ids = #{parentIds} + WHERE id = #{id} + + + + UPDATE sys_menu SET + sort = #{sort} + WHERE id = #{id} + + + + UPDATE sys_menu SET + del_flag = #{DEL_FLAG_DELETE} + WHERE id = #{id} OR parent_ids LIKE + '%,'||#{id}||',%' + '%,'+#{id}+',%' + CONCAT('%,', #{id}, ',%') + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysOfficeDao.java b/src/main/java/com/nis/web/dao/SysOfficeDao.java new file mode 100644 index 00000000..b357bbe3 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysOfficeDao.java @@ -0,0 +1,32 @@ +package com.nis.web.dao; + + +import java.util.List; +import java.util.Map; + +import com.nis.domain.SysOffice; + +@MyBatisDao +public interface SysOfficeDao extends TreeDao { + int deleteByPrimaryKey(Integer id); + + int insert(SysOffice record); + + int insertSelective(SysOffice record); + + SysOffice selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(SysOffice record); + + int updateByPrimaryKey(SysOffice record); + + List selectSysOffice(SysOffice sysOffice); + + List selectLowerDeptement(Map hmap); + + List selectOfficeForDeptment(Map map); + + List selectOfficeForLetter(Map hmap); + + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysOfficeDao.xml b/src/main/java/com/nis/web/dao/SysOfficeDao.xml new file mode 100644 index 00000000..0f8080fb --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysOfficeDao.xml @@ -0,0 +1,331 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, parent_id, parent_ids, name, en_name, sort, area_id, code, type, grade, job_type, address, + zip_code, master, phone, fax, email, USEABLE, PRIMARY_PERSON, DEPUTY_PERSON, remarks, + del_flag, create_time + + + + + + + + + + + + + + + + + + a.id, + a.parent_id AS "parent.id", + a.parent_ids AS "parentIds", + a.area_id AS "area.id", + a.code, + a.name, + a.sort, + a.type, + a.grade, + a.job_type, + a.address, + a.zip_code, + a.master, + a.phone, + a.fax, + a.email, + a.remarks, + a.del_flag, + a.useable AS useable, + a.primary_person AS "primaryPerson.id", + a.deputy_person AS "deputyPerson.id", + p.name AS "parent.name", + ar.name AS "area.name", + ar.parent_ids AS "area.parentIds", + pp.name AS "primaryPerson.name", + dp.name AS "deputyPerson.name" + + + + LEFT JOIN sys_office p ON p.id = a.parent_id + LEFT JOIN sys_area ar ON ar.id = a.area_id + LEFT JOIN SYS_USER pp ON pp.id = a.primary_person + LEFT JOIN SYS_USER dp ON dp.id = a.deputy_person + + + + + + + + + + + + + + INSERT INTO sys_office( + parent_id, + parent_ids, + area_id, + code, + name, + sort, + type, + grade, + job_type, + address, + zip_code, + master, + phone, + fax, + email, + remarks, + del_flag, + useable, + primary_person, + deputy_person, + create_time + ) VALUES ( + #{parent.id}, + #{parentIds}, + #{area.id}, + #{code}, + #{name}, + #{sort}, + #{type}, + #{grade}, + #{jobType}, + #{address}, + #{zipCode}, + #{master}, + #{phone}, + #{fax}, + #{email}, + #{remarks}, + #{delFlag}, + #{useable}, + #{primaryPerson.id}, + #{deputyPerson.id}, + #{createTime} + ) + + + + UPDATE sys_office SET + parent_id = #{parent.id}, + parent_ids = #{parentIds} + WHERE id = #{id} + + + + + UPDATE sys_office SET + parent_id = #{parent.id}, + parent_ids = #{parentIds}, + area_id = #{area.id}, + code = #{code}, + name = #{name}, + type = #{type}, + grade = #{grade}, + job_type = #{jobType}, + address = #{address}, + zip_code = #{zipCode}, + master = #{master}, + phone = #{phone}, + fax = #{fax}, + email = #{email}, + remarks = #{remarks}, + useable=#{useable}, + primary_person=#{primaryPerson.id}, + deputy_person=#{deputyPerson.id} + WHERE id = #{id} + + + + + UPDATE sys_office SET + del_flag = #{DEL_FLAG_DELETE} + WHERE id = #{id} OR parent_ids LIKE + '%,'||#{id}||',%' + '%,'+#{id}+',%' + CONCAT('%,', #{id}, ',%') + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysRoleDao.java b/src/main/java/com/nis/web/dao/SysRoleDao.java new file mode 100644 index 00000000..e696f97e --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysRoleDao.java @@ -0,0 +1,18 @@ +package com.nis.web.dao; + +import java.util.List; + +import com.nis.domain.SysRole; +import com.nis.domain.SysUser; +@MyBatisDao +public interface SysRoleDao extends CrudDao{ + + SysRole getByName(SysRole r); + + void insertRoleMenu(SysRole role); + + void deleteRoleMenu(SysRole role); + + List findUserByRole(SysRole role); + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysRoleDao.xml b/src/main/java/com/nis/web/dao/SysRoleDao.xml new file mode 100644 index 00000000..93678499 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SysRoleDao.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + r.ID, r.NAME, r.ROLE_TYPE, r.DATA_SCOPE, r.REMARK, r.STATUS, r.CREATE_TIME + + + + + + + + + + + + + + + + + + + INSERT INTO sys_role( + name, + role_type, + data_scope, + create_time, + remark, + status + ) VALUES ( + #{name}, + #{roleType}, + #{dataScope}, + #{createTime}, + #{remark}, + #{status} + ) + + + + UPDATE sys_role SET + name = #{name}, + role_type = #{roleType}, + data_scope = #{dataScope}, + remark = #{remark} + WHERE id = #{id} + + + + INSERT INTO sys_privilege( + privilege_master, + privilege_master_value, + privilege_access, + privilege_access_value, + privilege_operation) + + SELECT 'ROLE',#{id},'1000',#{menu.id},1 + + FROM dual + + + + + + DELETE FROM sys_privilege WHERE privilege_master='ROLE' and privilege_master_value = #{id} + + + + UPDATE sys_role SET + status = #{DEL_FLAG_DELETE} + WHERE id = #{id} + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SystemFunStatusDao.xml b/src/main/java/com/nis/web/dao/SystemFunStatusDao.xml new file mode 100644 index 00000000..c3f180e4 --- /dev/null +++ b/src/main/java/com/nis/web/dao/SystemFunStatusDao.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + insert into SYSTEM_FUN_STATUS + + ID, + FUNCTION, + BACK_DATA, + EFFECTIVE_RANGE, + ACTIVE_SYS, + IS_VALID, + OP_TIME, + + + #{id,jdbcType=BIGINT}, + #{function,jdbcType=BIGINT}, + #{backData,jdbcType=BIGINT}, + #{effectiveRange,jdbcType=VARCHAR}, + #{activeSys,jdbcType=INTEGER}, + #{isValid,jdbcType=INTEGER}, + #{opTime,jdbcType=TIMESTAMP}, + + + + + + update SYSTEM_FUN_STATUS + + FUNCTION = #{function,jdbcType=BIGINT}, + BACK_DATA = #{backData,jdbcType=BIGINT}, + EFFECTIVE_RANGE = #{effectiveRange,jdbcType=VARCHAR}, + ACTIVE_SYS = #{activeSys,jdbcType=INTEGER}, + IS_VALID = #{isValid,jdbcType=INTEGER}, + OP_TIME = #{opTime,jdbcType=TIMESTAMP}, + + where ID = #{id,jdbcType=BIGINT} + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/TreeDao.java b/src/main/java/com/nis/web/dao/TreeDao.java new file mode 100644 index 00000000..ad9ebbb7 --- /dev/null +++ b/src/main/java/com/nis/web/dao/TreeDao.java @@ -0,0 +1,29 @@ +package com.nis.web.dao; + +import java.util.List; + +import com.nis.domain.TreeEntity; + +/** + * DAO支持类实现 + * @author ThinkGem + * @version 2014-05-16 + * @param + */ +public interface TreeDao> extends CrudDao { + + /** + * 找到所有子节点 + * @param entity + * @return + */ + public List findByParentIdsLike(T entity); + + /** + * 更新所有父节点字段 + * @param entity + * @return + */ + public int updateParentIds(T entity); + +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/UserDao.java b/src/main/java/com/nis/web/dao/UserDao.java new file mode 100644 index 00000000..45089a2a --- /dev/null +++ b/src/main/java/com/nis/web/dao/UserDao.java @@ -0,0 +1,69 @@ +package com.nis.web.dao; + + + +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.SysUser; + +@MyBatisDao +public interface UserDao extends CrudDao { + + /** + * 通过主键ID获取相关用户,不包含密码 + * @param id + * @return + */ + SysUser getUserById(@Param("id") Long id); + + /** + * 通过登录账户获取相关用户,不包含密码 + * @param loginName + * @return + */ + SysUser getUserByLoginName(@Param("loginName") String loginName); + + + + /** + * 删除用户角色关联数据 + * @param user id + * @return + */ + public int deleteUserRole(Long id); + + + /** + * 查询用户附带关联:部门、角色 + * @param user + * @return + */ + SysUser getUserWithRelation(SysUser user); + + + + void insertUserRole(SysUser user); + + public int deleteUserOffice(Long id); + + void insertUserOffice(SysUser user); + + List findUserByRoleId(Long id); + + List findUserByOfficeId(Long id); + + void removeUserInRole(@Param("userId") Long userId, @Param("roleId") Long roleId); + + void updateUserInfo(SysUser user); + + void updatePasswordById(SysUser user); + + List findDeptLeader(Integer DeptementId); + + int officeIsExistOfCompany(@Param("officeId") Long officeId, @Param("companyId") Long companyId); + + +} diff --git a/src/main/java/com/nis/web/dao/UserDao.xml b/src/main/java/com/nis/web/dao/UserDao.xml new file mode 100644 index 00000000..8e573947 --- /dev/null +++ b/src/main/java/com/nis/web/dao/UserDao.xml @@ -0,0 +1,419 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + u.id AS user_id, + u.photo, + u.login_id, + u.name AS user_name, + u.identity, + u.password, + u.email, + u.create_time AS user_create_time, + u.status AS user_status, + u.company_id AS "company.id", + c.name AS "company.name", + c.parent_id AS "company.parent.id", + c.parent_ids AS "company.parentIds", + c.type AS "company.type", + c.grade AS "company.grade", + c.job_type AS "company.job_type", + u.office_id AS "office.id", + o.name AS "office.name", + o.parent_id AS "office.parent.id", + o.parent_ids AS "office.parentIds", + o.type AS "office.type", + o.grade AS "office.grade", + o.job_type AS "office.job_type", + u.entity_id AS "entity.id", + e.name AS "entity.name", + e.parent_id AS "entity.parent.id", + e.parent_ids AS "entity.parentIds", + e.type AS "entity.type", + e.grade AS "entity.grade", + e.job_type AS "entity.job_type", + r.id AS role_id, + r.name AS role_name, + r.data_scope, + r.remark AS role_desc, + r.status AS role_status, + r.create_time AS role_create_time + + + + LEFT JOIN sys_office c ON c.id = u.company_id AND c.useable=1 + LEFT JOIN sys_office e ON e.id=u.entity_id AND e.useable=1 + LEFT JOIN sys_office o ON o.id=u.office_id AND o.useable=1 + LEFT JOIN sys_inter_user_role ir ON u.id=ir.user_id + LEFT JOIN sys_role r ON r.id=ir.role_id AND r.status=1 + + + + + + + + + + + + insert into sys_user(LOGIN_ID,PHOTO,NAME,IDENTITY,EMAIL,PASSWORD,CREATE_TIME,STATUS,COMPANY_ID,ENTITY_ID,OFFICE_ID) + values(#{loginId},#{photo},#{name},#{identity},#{email},#{password},#{createTime},#{status},#{company.id},#{entity.id},#{office.id}) + + + + + UPDATE sys_user SET + login_id= #{loginId}, + password = #{password}, + name = #{name}, + identity = #{identity}, + photo = #{photo}, + email = #{email}, + company_id = #{company.id}, + entity_id = #{entity.id}, + office_id = #{office.id} + WHERE id = #{id} + + + + + + + INSERT INTO sys_inter_user_role(role_id, user_id) + + SELECT #{role.id},#{id} + + FROM dual + + + + + + + INSERT INTO sys_inter_user_office(office_id, user_id) + + SELECT #{office.id},#{id} + + FROM dual + + + + + + + DELETE FROM sys_inter_user_role WHERE user_id = #{id} + + + + + DELETE FROM sys_inter_user_role WHERE user_id = #{userId} and role_id = #{roleId} + + + + + + + DELETE FROM sys_inter_user_office WHERE user_id = #{id} + + + + + UPDATE sys_user SET + status = #{DEL_FLAG_DELETE} + WHERE id = #{id} + + + + + UPDATE sys_user SET + email = #{email}, + photo = #{photo} + WHERE id = #{id} + + + + + UPDATE sys_user SET + password = #{password} + WHERE id = #{id} + + + + + + + + + diff --git a/src/main/java/com/nis/web/security/CacheSessionDAO.java b/src/main/java/com/nis/web/security/CacheSessionDAO.java new file mode 100644 index 00000000..df64ed10 --- /dev/null +++ b/src/main/java/com/nis/web/security/CacheSessionDAO.java @@ -0,0 +1,173 @@ +package com.nis.web.security; + +import java.io.Serializable; +import java.util.Collection; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.shiro.session.Session; +import org.apache.shiro.session.UnknownSessionException; +import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO; +import org.apache.shiro.subject.PrincipalCollection; +import org.apache.shiro.subject.support.DefaultSubjectContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.Sets; +import com.nis.util.Configurations; +import com.nis.util.Constants; +import com.nis.util.DateUtils; +import com.nis.util.StringUtils; + + +/** + * 系统安全认证实现类 + * @author + * @version + */ +public class CacheSessionDAO extends EnterpriseCacheSessionDAO implements SessionDAO { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + public CacheSessionDAO() { + super(); + } + + @Override + protected void doUpdate(Session session) { + if (session == null || session.getId() == null) { + return; + } + + HttpServletRequest request = Servlets.getRequest(); + if (request != null){ + String uri = request.getServletPath(); + // 如果是静态文件,则不更新SESSION + if (Servlets.isStaticFile(uri)){ + return; + } + // 如果是视图文件,则不更新SESSION + if (StringUtils.startsWith(uri, Configurations.getStringProperty("web.view.prefix","/WEB-INF/views/")) + && StringUtils.endsWith(uri,Configurations.getStringProperty("web.view.suffix",".jsp"))){ + return; + } + // 手动控制不更新SESSION + String updateSession = request.getParameter("updateSession"); + if (Constants.FALSE.equals(updateSession) || Constants.NO.equals(updateSession)){ + return; + } + } + super.doUpdate(session); + logger.debug("update {} {}", session.getId(), request != null ? request.getRequestURI() : ""); + } + + @Override + protected void doDelete(Session session) { + if (session == null || session.getId() == null) { + return; + } + + super.doDelete(session); + logger.debug("delete {} ", session.getId()); + } + + @Override + protected Serializable doCreate(Session session) { + HttpServletRequest request = Servlets.getRequest(); + if (request != null){ + String uri = request.getServletPath(); + // 如果是静态文件,则不创建SESSION + if (Servlets.isStaticFile(uri)){ + return null; + } + } + super.doCreate(session); + logger.debug("doCreate {} {}", session, request != null ? request.getRequestURI() : ""); + return session.getId(); + } + + @Override + protected Session doReadSession(Serializable sessionId) { + return super.doReadSession(sessionId); + } + + @Override + public Session readSession(Serializable sessionId) throws UnknownSessionException { + try{ + Session s = null; + HttpServletRequest request = Servlets.getRequest(); + if (request != null){ + String uri = request.getServletPath(); + // 如果是静态文件,则不获取SESSION + if (Servlets.isStaticFile(uri)){ + return null; + } + s = (Session)request.getAttribute("session_"+sessionId); + } + if (s != null){ + return s; + } + + Session session = super.readSession(sessionId); + logger.debug("readSession {} {}", sessionId, request != null ? request.getRequestURI() : ""); + + if (request != null && session != null){ + request.setAttribute("session_"+sessionId, session); + } + + return session; + }catch (UnknownSessionException e) { + return null; + } + } + + /** + * 获取活动会话 + * @param includeLeave 是否包括离线(最后访问时间大于3分钟为离线会话) + * @return + */ + @Override + public Collection getActiveSessions(boolean includeLeave) { + return getActiveSessions(includeLeave, null, null); + } + + /** + * 获取活动会话 + * @param includeLeave 是否包括离线(最后访问时间大于3分钟为离线会话) + * @param principal 根据登录者对象获取活动会话 + * @param filterSession 不为空,则过滤掉(不包含)这个会话。 + * @return + */ + @Override + public Collection getActiveSessions(boolean includeLeave, Object principal, Session filterSession) { + // 如果包括离线,并无登录者条件。 + if (includeLeave && principal == null){ + return getActiveSessions(); + } + Set sessions = Sets.newHashSet(); + for (Session session : getActiveSessions()){ + boolean isActiveSession = false; + // 不包括离线并符合最后访问时间小于等于3分钟条件。 + if (includeLeave || DateUtils.pastMinutes(session.getLastAccessTime()) <= 3){ + isActiveSession = true; + } + // 符合登陆者条件。 + if (principal != null){ + PrincipalCollection pc = (PrincipalCollection)session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY); + if (principal.toString().equals(pc != null ? pc.getPrimaryPrincipal().toString() : StringUtils.EMPTY)){ + isActiveSession = true; + } + } + // 过滤掉的SESSION + if (filterSession != null && filterSession.getId().equals(session.getId())){ + isActiveSession = false; + } + if (isActiveSession){ + sessions.add(session); + } + } + return sessions; + } + +} diff --git a/src/main/java/com/nis/web/security/FormAuthenticationFilter.java b/src/main/java/com/nis/web/security/FormAuthenticationFilter.java new file mode 100644 index 00000000..cbe2f0d8 --- /dev/null +++ b/src/main/java/com/nis/web/security/FormAuthenticationFilter.java @@ -0,0 +1,95 @@ +package com.nis.web.security; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; + +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.IncorrectCredentialsException; +import org.apache.shiro.authc.UnknownAccountException; +import org.apache.shiro.web.util.WebUtils; +import org.springframework.stereotype.Service; + +import com.nis.util.Constants; +import com.nis.util.IpUtil; +import com.nis.util.StringUtils; + + +@Service +public class FormAuthenticationFilter extends org.apache.shiro.web.filter.authc.FormAuthenticationFilter { + + + protected AuthenticationToken createToken(ServletRequest request, ServletResponse response) { + String username = getUsername(request); + String password = getPassword(request); + if (password==null){ + password = ""; + } + boolean rememberMe = isRememberMe(request); + + String host =IpUtil.getIpAddr((HttpServletRequest)request); + String captcha = getCaptcha(request); + boolean mobile = isMobileLogin(request); + return new UsernamePasswordToken(username, password.toCharArray(), rememberMe, host, captcha, mobile); + } + + + protected String getCaptcha(ServletRequest request) { + return WebUtils.getCleanParam(request, Constants.DEFAULT_CAPTCHA_PARAM); + } + + + + protected boolean isMobileLogin(ServletRequest request) { + return WebUtils.isTrue(request, Constants.DEFAULT_MOBILE_PARAM); + } + + + + /** + * 登录成功之后跳转URL + */ + public String getSuccessUrl() { + return super.getSuccessUrl(); + } + + @Override + protected void issueSuccessRedirect(ServletRequest request, + ServletResponse response) throws Exception { +// Principal p = UserUtils.getPrincipal(); +// if (p != null && !p.isMobileLogin()){ + WebUtils.issueRedirect(request, response, getSuccessUrl(), null, true); +// }else{ +// super.issueSuccessRedirect(request, response); +// } + } + + /** + * 登录失败调用事件 + */ + @Override + protected boolean onLoginFailure(AuthenticationToken token, + AuthenticationException e, ServletRequest request, ServletResponse response) { + String className = e.getClass().getName(), message = ""; + if (IncorrectCredentialsException.class.getName().equals(className) + || UnknownAccountException.class.getName().equals(className)){ + message = "用户或密码错误, 请重试."; + } + else if (e.getMessage() != null && StringUtils.startsWith(e.getMessage(), "msg:")){ + message = StringUtils.replace(e.getMessage(), "msg:", ""); + } + + else{ + message = "系统出现点问题,请稍后再试!"; + e.printStackTrace(); // 输出到控制台 + } + request.setAttribute(getFailureKeyAttribute(), className); + request.setAttribute(Constants.DEFAULT_MESSAGE_PARAM, message); + return true; + } + + + + +} diff --git a/src/main/java/com/nis/web/security/IdGen.java b/src/main/java/com/nis/web/security/IdGen.java new file mode 100644 index 00000000..0ae2830c --- /dev/null +++ b/src/main/java/com/nis/web/security/IdGen.java @@ -0,0 +1,69 @@ +package com.nis.web.security; + +import java.io.Serializable; +import java.security.SecureRandom; +import java.util.UUID; + +import org.apache.shiro.session.Session; +import org.apache.shiro.session.mgt.eis.SessionIdGenerator; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import com.nis.util.Encodes; + +/** + * 封装各种生成唯一性ID算法的工具类. + * @author + * @version 2013-01-15 + */ +@Service +@Lazy(false) +public class IdGen implements SessionIdGenerator { + + private static SecureRandom random = new SecureRandom(); + + /** + * 封装JDK自带的UUID, 通过Random数字生成, 中间无-分割. + */ + public static String uuid() { + return UUID.randomUUID().toString().replaceAll("-", ""); + } + + /** + * 使用SecureRandom随机生成Long. + */ + public static long randomLong() { + return Math.abs(random.nextLong()); + } + + /** + * 基于Base62编码的SecureRandom随机生成bytes. + */ + public static String randomBase62(int length) { + byte[] randomBytes = new byte[length]; + random.nextBytes(randomBytes); + return Encodes.encodeBase62(randomBytes); + } + + /** + * Activiti ID 生成 + */ + public String getNextId() { + return IdGen.uuid(); + } + + @Override + public Serializable generateId(Session session) { + return IdGen.uuid(); + } + + public static void main(String[] args) { + System.out.println(IdGen.uuid()); + System.out.println(IdGen.uuid().length()); + System.out.println(new IdGen().getNextId()); + for (int i=0; i<1000; i++){ + System.out.println(IdGen.randomLong() + " " + IdGen.randomBase62(5)); + } + } + +} diff --git a/src/main/java/com/nis/web/security/Servlets.java b/src/main/java/com/nis/web/security/Servlets.java new file mode 100644 index 00000000..7c3aefbc --- /dev/null +++ b/src/main/java/com/nis/web/security/Servlets.java @@ -0,0 +1,262 @@ +/** + * Copyright (c) 2005-2012 springside.org.cn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + */ +package com.nis.web.security; + +import java.io.UnsupportedEncodingException; +import java.util.Arrays; +import java.util.Enumeration; +import java.util.Iterator; +import java.util.Map; +import java.util.Map.Entry; +import java.util.StringTokenizer; +import java.util.TreeMap; + +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.Validate; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import com.google.common.net.HttpHeaders; +import com.nis.util.Configurations; +import com.nis.util.Encodes; +import com.nis.util.StringUtils; +import com.nis.web.security.SystemAuthorizingRealm.Principal; + +/** + * Http与Servlet工具类. + * @author calvin/thinkgem + * @version 2014-8-19 + */ +public class Servlets { + + // -- 常用数值定义 --// + public static final long ONE_YEAR_SECONDS = 60 * 60 * 24 * 365; + + // 静态文件后缀 + private final static String[] staticFiles = StringUtils.split(Configurations.getStringProperty("web.staticFile",""), ","); + + + + // 动态映射URL后缀 + private final static String urlSuffix = Configurations.getStringProperty("urlSuffix", ".jsp"); + + /** + * 设置客户端缓存过期时间 的Header. + */ + public static void setExpiresHeader(HttpServletResponse response, long expiresSeconds) { + // Http 1.0 header, set a fix expires date. + response.setDateHeader(HttpHeaders.EXPIRES, System.currentTimeMillis() + expiresSeconds * 1000); + // Http 1.1 header, set a time after now. + response.setHeader(HttpHeaders.CACHE_CONTROL, "private, max-age=" + expiresSeconds); + } + + /** + * 设置禁止客户端缓存的Header. + */ + public static void setNoCacheHeader(HttpServletResponse response) { + // Http 1.0 header + response.setDateHeader(HttpHeaders.EXPIRES, 1L); + response.addHeader(HttpHeaders.PRAGMA, "no-cache"); + // Http 1.1 header + response.setHeader(HttpHeaders.CACHE_CONTROL, "no-cache, no-store, max-age=0"); + } + + /** + * 设置LastModified Header. + */ + public static void setLastModifiedHeader(HttpServletResponse response, long lastModifiedDate) { + response.setDateHeader(HttpHeaders.LAST_MODIFIED, lastModifiedDate); + } + + /** + * 设置Etag Header. + */ + public static void setEtag(HttpServletResponse response, String etag) { + response.setHeader(HttpHeaders.ETAG, etag); + } + + /** + * 根据浏览器If-Modified-Since Header, 计算文件是否已被修改. + * + * 如果无修改, checkIfModify返回false ,设置304 not modify status. + * + * @param lastModified 内容的最后修改时间. + */ + public static boolean checkIfModifiedSince(HttpServletRequest request, HttpServletResponse response, + long lastModified) { + long ifModifiedSince = request.getDateHeader(HttpHeaders.IF_MODIFIED_SINCE); + if ((ifModifiedSince != -1) && (lastModified < ifModifiedSince + 1000)) { + response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); + return false; + } + return true; + } + + /** + * 根据浏览器 If-None-Match Header, 计算Etag是否已无效. + * + * 如果Etag有效, checkIfNoneMatch返回false, 设置304 not modify status. + * + * @param etag 内容的ETag. + */ + public static boolean checkIfNoneMatchEtag(HttpServletRequest request, HttpServletResponse response, String etag) { + String headerValue = request.getHeader(HttpHeaders.IF_NONE_MATCH); + if (headerValue != null) { + boolean conditionSatisfied = false; + if (!"*".equals(headerValue)) { + StringTokenizer commaTokenizer = new StringTokenizer(headerValue, ","); + + while (!conditionSatisfied && commaTokenizer.hasMoreTokens()) { + String currentToken = commaTokenizer.nextToken(); + if (currentToken.trim().equals(etag)) { + conditionSatisfied = true; + } + } + } else { + conditionSatisfied = true; + } + + if (conditionSatisfied) { + response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); + response.setHeader(HttpHeaders.ETAG, etag); + return false; + } + } + return true; + } + + /** + * 设置让浏览器弹出下载对话框的Header. + * + * @param fileName 下载后的文件名. + */ + public static void setFileDownloadHeader(HttpServletResponse response, String fileName) { + try { + // 中文文件名支持 + String encodedfileName = new String(fileName.getBytes(), "ISO8859-1"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + encodedfileName + "\""); + } catch (UnsupportedEncodingException e) { + e.getMessage(); + } + } + + /** + * 取得带相同前缀的Request Parameters, copy from spring WebUtils. + * + * 返回的结果的Parameter名已去除前缀. + */ + @SuppressWarnings("rawtypes") + public static Map getParametersStartingWith(ServletRequest request, String prefix) { + Validate.notNull(request, "Request must not be null"); + Enumeration paramNames = request.getParameterNames(); + Map params = new TreeMap(); + String pre = prefix; + if (pre == null) { + pre = ""; + } + while (paramNames != null && paramNames.hasMoreElements()) { + String paramName = (String) paramNames.nextElement(); + if ("".equals(pre) || paramName.startsWith(pre)) { + String unprefixed = paramName.substring(pre.length()); + String[] values = request.getParameterValues(paramName); + if (values == null || values.length == 0) { + values = new String[]{}; + // Do nothing, no values found at all. + } else if (values.length > 1) { + params.put(unprefixed, values); + } else { + params.put(unprefixed, values[0]); + } + } + } + return params; + } + + /** + * 组合Parameters生成Query String的Parameter部分,并在paramter name上加上prefix. + * + */ + public static String encodeParameterStringWithPrefix(Map params, String prefix) { + StringBuilder queryStringBuilder = new StringBuilder(); + + String pre = prefix; + if (pre == null) { + pre = ""; + } + Iterator> it = params.entrySet().iterator(); + while (it.hasNext()) { + Entry entry = it.next(); + queryStringBuilder.append(pre).append(entry.getKey()).append("=").append(entry.getValue()); + if (it.hasNext()) { + queryStringBuilder.append("&"); + } + } + return queryStringBuilder.toString(); + } + + /** + * 客户端对Http Basic验证的 Header进行编码. + */ + public static String encodeHttpBasic(String userName, String password) { + String encode = userName + ":" + password; + return "Basic " + Encodes.encodeBase64(encode.getBytes()); + } + + /** + * 是否是Ajax异步请求 + * @param request + */ + public static boolean isAjaxRequest(HttpServletRequest request){ + + String accept = request.getHeader("accept"); + String xRequestedWith = request.getHeader("X-Requested-With"); + Principal principal = UserUtils.getPrincipal(); + + // 如果是异步请求或是手机端,则直接返回信息 + return ((accept != null && accept.indexOf("application/json") != -1 + || (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) + || (principal != null && principal.isMobileLogin()))); + } + + /** + * 获取当前请求对象 + * @return + */ + public static HttpServletRequest getRequest(){ + try{ + return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); + }catch(Exception e){ + return null; + } + } + + /** + * 判断访问URI是否是静态文件请求 + * @throws Exception + */ + public static boolean isStaticFile(String uri){ + if (staticFiles == null){ + try { + throw new Exception("检测到“app.properties”中没有配置“web.staticFile”属性。配置示例:\n#静态文件后缀\n" + +"web.staticFile=.css,.js,.png,.jpg,.gif,.jpeg,.bmp,.ico,.swf,.psd,.htc,.crx,.xpi,.exe,.ipa,.apk"); + } catch (Exception e) { + e.printStackTrace(); + } + } +// if ((StringUtils.startsWith(uri, "/static/") || StringUtils.endsWithAny(uri, sfs)) +// && !StringUtils.endsWithAny(uri, ".jsp") && !StringUtils.endsWithAny(uri, ".java")){ +// return true; +// } + if (StringUtils.endsWithAny(uri, staticFiles) && !StringUtils.endsWithAny(uri, urlSuffix) + && !StringUtils.endsWithAny(uri, ".jsp") && !StringUtils.endsWithAny(uri, ".java")){ + return true; + } + return false; + } +} diff --git a/src/main/java/com/nis/web/security/SessionDAO.java b/src/main/java/com/nis/web/security/SessionDAO.java new file mode 100644 index 00000000..5613a769 --- /dev/null +++ b/src/main/java/com/nis/web/security/SessionDAO.java @@ -0,0 +1,25 @@ +package com.nis.web.security; + +import java.util.Collection; + +import org.apache.shiro.session.Session; + +public interface SessionDAO extends org.apache.shiro.session.mgt.eis.SessionDAO { + + /** + * 获取活动会话 + * @param includeLeave 是否包括离线(最后访问时间大于3分钟为离线会话) + * @return + */ + public Collection getActiveSessions(boolean includeLeave); + + /** + * 获取活动会话 + * @param includeLeave 是否包括离线(最后访问时间大于3分钟为离线会话) + * @param principal 根据登录者对象获取活动会话 + * @param filterSession 不为空,则过滤掉(不包含)这个会话。 + * @return + */ + public Collection getActiveSessions(boolean includeLeave, Object principal, Session filterSession); + +} diff --git a/src/main/java/com/nis/web/security/SessionManager.java b/src/main/java/com/nis/web/security/SessionManager.java new file mode 100644 index 00000000..32b5d8fb --- /dev/null +++ b/src/main/java/com/nis/web/security/SessionManager.java @@ -0,0 +1,208 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.web.security; + +import java.io.Serializable; +import java.util.Collection; +import java.util.Date; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.session.InvalidSessionException; +import org.apache.shiro.session.Session; +import org.apache.shiro.session.UnknownSessionException; +import org.apache.shiro.session.mgt.SessionContext; +import org.apache.shiro.session.mgt.SessionKey; +import org.apache.shiro.session.mgt.SimpleSession; +import org.apache.shiro.web.servlet.Cookie; +import org.apache.shiro.web.servlet.ShiroHttpServletRequest; +import org.apache.shiro.web.servlet.SimpleCookie; +import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; +import org.apache.shiro.web.util.WebUtils; + +import com.nis.util.StringUtils; + + +/** + * 自定义WEB会话管理类 + * @author ThinkGem + * @version 2014-7-20 + */ +public class SessionManager extends DefaultWebSessionManager { + + public SessionManager() { + super(); + } + + @Override + protected Serializable getSessionId(ServletRequest request, ServletResponse response) { + // 如果参数中包含“__sid”参数,则使用此sid会话。 例如:http://localhost/project?__sid=xxx&__cookie=true + String sid = request.getParameter("__sid"); + if (StringUtils.isNotBlank(sid)) { + // 是否将sid保存到cookie,浏览器模式下使用此参数。 + if (WebUtils.isTrue(request, "__cookie")){ + HttpServletRequest rq = (HttpServletRequest)request; + HttpServletResponse rs = (HttpServletResponse)response; + Cookie template = getSessionIdCookie(); + Cookie cookie = new SimpleCookie(template); + cookie.setValue(sid); cookie.saveTo(rq, rs); + } + // 设置当前session状态 + request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_SOURCE, + ShiroHttpServletRequest.URL_SESSION_ID_SOURCE); // session来源与url + request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID, sid); + request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_IS_VALID, Boolean.TRUE); + return sid; + }else{ + return super.getSessionId(request, response); + } + } + + @Override + public void validateSessions() { + super.validateSessions(); + } + + protected Session retrieveSession(SessionKey sessionKey) { + try{ + return super.retrieveSession(sessionKey); + }catch (UnknownSessionException e) { + // 获取不到SESSION不抛出异常 + return null; + } + } + + public Date getStartTimestamp(SessionKey key) { + try{ + return super.getStartTimestamp(key); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + return null; + } + } + + public Date getLastAccessTime(SessionKey key) { + try{ + return super.getLastAccessTime(key); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + return null; + } + } + + public long getTimeout(SessionKey key){ + try{ + return super.getTimeout(key); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + return 0; + } + } + + public void setTimeout(SessionKey key, long maxIdleTimeInMillis) { + try{ + super.setTimeout(key, maxIdleTimeInMillis); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + } + } + + public void touch(SessionKey key) { + try{ + super.touch(key); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + } + } + + public String getHost(SessionKey key) { + try{ + return super.getHost(key); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + return null; + } + } + + public Collection getAttributeKeys(SessionKey key) { + try{ + return super.getAttributeKeys(key); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + return null; + } + } + + public Object getAttribute(SessionKey sessionKey, Object attributeKey) { + try{ + return super.getAttribute(sessionKey, attributeKey); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + return null; + } + } + + public void setAttribute(SessionKey sessionKey, Object attributeKey, Object value) { + try{ + super.setAttribute(sessionKey, attributeKey, value); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + } + } + + public Object removeAttribute(SessionKey sessionKey, Object attributeKey) { + try{ + return super.removeAttribute(sessionKey, attributeKey); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + return null; + } + } + + public void stop(SessionKey key) { + try{ + super.stop(key); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + } + } + + public void checkValid(SessionKey key) { + try{ + super.checkValid(key); + }catch (InvalidSessionException e) { + // 获取不到SESSION不抛出异常 + } + } + + @Override + protected Session doCreateSession(SessionContext context) { + try{ + return super.doCreateSession(context); + }catch (IllegalStateException e) { + return null; + } + } + + @Override + protected Session newSessionInstance(SessionContext context) { + Session session = super.newSessionInstance(context); + session.setTimeout(getGlobalSessionTimeout()); + return session; + } + + @Override + public Session start(SessionContext context) { + try{ + return super.start(context); + }catch (NullPointerException e) { + SimpleSession session = new SimpleSession(); + session.setId(0); + return session; + } + } +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/security/SystemAuthorizingRealm.java b/src/main/java/com/nis/web/security/SystemAuthorizingRealm.java new file mode 100644 index 00000000..e638b383 --- /dev/null +++ b/src/main/java/com/nis/web/security/SystemAuthorizingRealm.java @@ -0,0 +1,295 @@ +package com.nis.web.security; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; + +import javax.annotation.PostConstruct; + +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authc.credential.DefaultPasswordService; +import org.apache.shiro.authc.credential.HashedCredentialsMatcher; +import org.apache.shiro.authc.credential.PasswordService; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.Permission; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.session.Session; +import org.apache.shiro.subject.PrincipalCollection; +import org.apache.shiro.util.ByteSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.google.code.kaptcha.Constants; +import com.nis.domain.SysMenu; +import com.nis.domain.SysRole; +import com.nis.domain.SysUser; +import com.nis.util.Configurations; +import com.nis.util.Encodes; +import com.nis.util.LogUtils; +import com.nis.util.StringUtil; +import com.nis.util.StringUtils; +import com.nis.util.TreeUtil; +import com.nis.web.service.SystemService; + + +/** + * 系统安全认证实现类 + * @author + * @version 2014-7-5 + */ +@Service +public class SystemAuthorizingRealm extends AuthorizingRealm { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private SystemService systemService; + + /** + * 认证回调函数, 登录时调用 + * Authentication 存放用户名、密码地方,身份认证 + */ + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) { + + UsernamePasswordToken token = (UsernamePasswordToken) authcToken; + + int activeSessionSize = systemService.getActiveSessions(false).size(); + + + if (logger.isDebugEnabled()){ + logger.debug("login submit, active session size: {}, username: {}", activeSessionSize, token.getUsername()); + } + + // 校验登录验证码 + if (UserUtils.isValidateCodeLogin(token.getUsername(), false, false)){ + + if (!UserUtils.validateCodeIsValid(token.getCaptcha())){ + throw new AuthenticationException("msg:验证码错误, 请重试."); + } + } + + // 校验用户名密码 + SysUser user = systemService.getUserByLoginName(token.getUsername()); + if (user != null) { + if (com.nis.util.Constants.NO.equals(user.getStatus())){ + throw new AuthenticationException("msg:该已帐号禁止登录."); + } + byte[] salt = Encodes.decodeHex(user.getPassword().substring(0,16)); + return new SimpleAuthenticationInfo(new Principal(user, token.isMobileLogin()), user.getPassword().substring(16), ByteSource.Util.bytes(salt), getName()); + } + return null; + } + + /** + * 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用 + * Authorzation 授权,存放用户权限 + */ + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { + Principal principal = (Principal) getAvailablePrincipal(principals); + + // 获取当前已登录的用户 + if (!com.nis.util.Constants.TRUE.equals(Configurations.getStringProperty("user.multiAccountLogin","true"))){ + Collection sessions = systemService.getActiveSessions(true, principal, UserUtils.getSession()); + if (sessions.size() > 0){ + // 如果是登录进来的,则踢出已在线用户 + if (UserUtils.getSubject().isAuthenticated()){ + for (Session session : sessions){ + systemService.deleteSession(session); + } + } + // 记住我进来的,并且当前用户已登录,则退出当前用户提示信息。 + else{ + UserUtils.getSubject().logout(); + throw new AuthenticationException("msg:账号已在其它地方登录,请重新登录。"); + } + } + } + SysUser user = systemService.getUserByLoginName(principal.getLoginName()); + if (user != null) { + SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); + List list = UserUtils.getMenuList(); + if(!StringUtil.isEmpty(list)) { + for (SysMenu menu :list) { + if (!StringUtil.isBlank(menu.getPermission())) { + // 添加基于Permission的权限信息 + for (String permission : StringUtils.split(menu.getPermission(),",")){ + info.addStringPermission(permission); + } + } + + } + } + + // 添加用户权限 + info.addStringPermission("user"); + // 添加用户角色信息 + for (SysRole role : user.getUserRoleList()){ + info.addRole(role.getName()); + } + // 更新登录IP和时间,集成用户日志记录 + //systemService.updateUserLoginInfo(user); + // 记录登录日志 + LogUtils.saveLog(Servlets.getRequest(), "系统登录"); + return info; + } + return null; + + } + + @Override + protected void checkPermission(Permission permission, AuthorizationInfo info) { + authorizationValidate(permission); + super.checkPermission(permission, info); + } + + @Override + protected boolean[] isPermitted(List permissions, AuthorizationInfo info) { + if (permissions != null && !permissions.isEmpty()) { + for (Permission permission : permissions) { + authorizationValidate(permission); + } + } + return super.isPermitted(permissions, info); + } + + @Override + public boolean isPermitted(PrincipalCollection principals, Permission permission) { + authorizationValidate(permission); + return super.isPermitted(principals, permission); + } + + @Override + protected boolean isPermittedAll(Collection permissions, AuthorizationInfo info) { + if (permissions != null && !permissions.isEmpty()) { + for (Permission permission : permissions) { + authorizationValidate(permission); + } + } + return super.isPermittedAll(permissions, info); + } + + /** + * 授权验证方法 + * @param permission + */ + private void authorizationValidate(Permission permission){ + // 模块授权预留接口 + } + + /** + * 设定密码校验的Hash算法与迭代次数 + */ + @PostConstruct + public void initCredentialsMatcher() { + HashedCredentialsMatcher matcher = new HashedCredentialsMatcher(com.nis.util.Constants.HASH_ALGORITHM); + matcher.setHashIterations(com.nis.util.Constants.HASH_INTERATIONS); + setCredentialsMatcher(matcher); + } + +// /** +// * 清空用户关联权限认证,待下次使用时重新加载 +// */ +// public void clearCachedAuthorizationInfo(Principal principal) { +// SimplePrincipalCollection principals = new SimplePrincipalCollection(principal, getName()); +// clearCachedAuthorizationInfo(principals); +// } + + + /** + * 授权用户信息 + */ + public static class Principal implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // 编号 + private String loginName; // 登录名 + private String name; // 姓名 + private boolean mobileLogin; // 是否手机登录 + private String email; + +// private Map cacheMap; + + public Principal(SysUser user, boolean mobileLogin) { + this.id = user.getId(); + this.loginName = user.getLoginId(); + this.name = user.getName(); + this.email = user.getEmail(); + this.mobileLogin = mobileLogin; + + } + + + + public String getEmail() { + return email; + } + + + + public void setEmail(String email) { + this.email = email; + } + + + + public Long getId() { + return id; + } + + + + public void setId(Long id) { + this.id = id; + } + + + + public String getLoginName() { + return loginName; + } + + public String getName() { + return name; + } + + public boolean isMobileLogin() { + return mobileLogin; + } + +// @JsonIgnore +// public Map getCacheMap() { +// if (cacheMap==null){ +// cacheMap = new HashMap(); +// } +// return cacheMap; +// } + + /** + * 获取SESSIONID + */ + public String getSessionid() { + try{ + return (String) UserUtils.getSession().getId(); + }catch (Exception e) { + return ""; + } + } + + @Override + public String toString() { + return String.valueOf(id); + } + + + + } +} diff --git a/src/main/java/com/nis/web/security/UserUtils.java b/src/main/java/com/nis/web/security/UserUtils.java new file mode 100644 index 00000000..77ac58ee --- /dev/null +++ b/src/main/java/com/nis/web/security/UserUtils.java @@ -0,0 +1,428 @@ +package com.nis.web.security; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.UnavailableSecurityManagerException; +import org.apache.shiro.session.InvalidSessionException; +import org.apache.shiro.session.Session; +import org.apache.shiro.subject.Subject; + +import com.google.code.kaptcha.Constants; +import com.google.common.collect.Maps; +import com.nis.domain.SysArea; +import com.nis.domain.SysMenu; +import com.nis.domain.SysOffice; +import com.nis.domain.SysRole; +import com.nis.domain.SysUser; +import com.nis.util.CacheUtils; +import com.nis.util.StringUtil; +import com.nis.util.StringUtils; +import com.nis.util.TreeUtil; +import com.nis.web.dao.SysAreaDao; +import com.nis.web.dao.SysMenuDao; +import com.nis.web.dao.SysOfficeDao; +import com.nis.web.dao.SysRoleDao; +import com.nis.web.dao.UserDao; +import com.nis.web.security.SystemAuthorizingRealm.Principal; +import com.nis.web.service.BaseService; +import com.nis.web.service.SpringContextHolder; + + +/** + * 用户工具类 + * @author darnell + * @version + */ +public class UserUtils { + + private static UserDao userDao = SpringContextHolder.getBean(UserDao.class); + private static SysOfficeDao officeDao = SpringContextHolder.getBean(SysOfficeDao.class); + private static SysRoleDao roleDao = SpringContextHolder.getBean(SysRoleDao.class); + private static SysMenuDao sysMenuDao = SpringContextHolder.getBean(SysMenuDao.class); + private static SysAreaDao areaDao = SpringContextHolder.getBean(SysAreaDao.class); + + + public static final String USER_CACHE = "userCache"; + public static final String USER_CACHE_ID_ = "id_"; + public static final String USER_CACHE_LOGIN_NAME_ = "ln"; + public static final String USER_CACHE_LIST_BY_OFFICE_ID_ = "oid_"; + + public static final String CACHE_ROLE_LIST = "roleList"; + public static final String CACHE_MENU_LIST = "menuList"; + public static final String CACHE_AREA_LIST = "areaList"; + public static final String CACHE_OFFICE_LIST = "officeList"; + public static final String CACHE_OFFICE_ALL_LIST = "officeAllList"; + public static final String CACHE_OFFICE_ALL_MAP = "officeAllMap"; + + + /** + * 根据ID获取用户 + * @param id + * @return 取不到返回null + */ + public static SysUser get(String id){ + SysUser user = (SysUser)CacheUtils.get(USER_CACHE, USER_CACHE_ID_ + id); + if (user == null){ + user = userDao.getUserWithRelation(new SysUser(Long.valueOf(id),null)); + if (user == null){ + return null; + } + CacheUtils.put(USER_CACHE, USER_CACHE_ID_ + user.getId(), user); + CacheUtils.put(USER_CACHE, USER_CACHE_LOGIN_NAME_ + user.getLoginId(), user); + } + return user; + } + + /** + * 根据登录名获取用户 + * @param loginName + * @return 取不到返回null + */ + public static SysUser getByLoginName(String loginName){ + SysUser user = (SysUser)CacheUtils.get(USER_CACHE, USER_CACHE_LOGIN_NAME_ + loginName); + if (user == null){ + user = userDao.getUserWithRelation(new SysUser(null,loginName)); + if (user == null){ + return null; + } + CacheUtils.put(USER_CACHE, USER_CACHE_ID_ + user.getId(), user); + CacheUtils.put(USER_CACHE, USER_CACHE_LOGIN_NAME_ + user.getLoginId(), user); + } + return user; + } + + /** + * 清除当前用户缓存 + */ + public static void clearCache(){ + removeCache(CACHE_ROLE_LIST); + removeCache(CACHE_MENU_LIST); + removeCache(CACHE_AREA_LIST); + removeCache(CACHE_OFFICE_LIST); + removeCache(CACHE_OFFICE_ALL_LIST); + UserUtils.clearCache(getUser()); + } + + /** + * 清除指定用户缓存 + * @param user + */ + public static void clearCache(SysUser user){ + CacheUtils.remove(USER_CACHE, USER_CACHE_ID_ + user.getId()); + CacheUtils.remove(USER_CACHE, USER_CACHE_LOGIN_NAME_ + user.getLoginId()); + CacheUtils.remove(USER_CACHE, USER_CACHE_LOGIN_NAME_ + user.getOldLoginId()); + if (user.getOffice() != null && user.getOffice().getId() != null){ + CacheUtils.remove(USER_CACHE, USER_CACHE_LIST_BY_OFFICE_ID_ + user.getOffice().getId()); + } + + } + + /** + * 获取当前用户 + * @return 取不到返回 new User() + */ + public static SysUser getUser(){ + Principal principal = getPrincipal(); + if (principal!=null){ + SysUser user = get(String.valueOf(principal.getId())); + if (user != null){ + return user; + } + return new SysUser(); + } + // 如果没有登录,则返回实例化空的User对象。 + return new SysUser(); + } + + + /** + * 验证码是否合法 + * @param validateCode + * @return + */ + public static boolean validateCodeIsValid(String validateCode) { + String code = (String) getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); + return (StringUtil.isBlank(validateCode) || validateCode.toUpperCase().equals(code)); + } + + /** + * 获取当前用户角色列表 + * @return + */ + public static List getRoleList(){ + @SuppressWarnings("unchecked") + List roleList = (List)getCache(CACHE_ROLE_LIST); + if (roleList == null){ + roleList = roleDao.findAllList(new SysRole()); + putCache(CACHE_ROLE_LIST, roleList); + } + return roleList; + } + + + + + /** + * 获取当前用户授权菜单 + * @return + */ + public static List getMenuList(){ + @SuppressWarnings("unchecked") + List menuList = (List)getCache(CACHE_MENU_LIST); + if (menuList == null){ + SysUser user = getUser(); + if (user.isAdmin()){ + menuList = sysMenuDao.findAllList(new SysMenu()); + }else{ + menuList = sysMenuDao.findSysMenuByUserId(user.getId()); + } + putCache(CACHE_MENU_LIST, menuList); + } + return menuList; + + + + } + + public static String getMenuNameById(String id) { + for (SysMenu menu : getMenuList()) { + if (menu.getId() == Long.valueOf(id)) { + return menu.getName(); + } + } + return ""; + } + + + + + /** + * 按照菜单各级递归排列 + * @return + */ + public static List getMenuTreeList(){ + return new TreeUtil(getMenuList()).buildTree(); + } + + + + + /** + * 验证用户是否有该权限 + * @param permission + * @return + */ + public static boolean checkPermission(String permission) { + return SecurityUtils.getSubject().isPermitted(permission); + } + + + + /** + * 获取当前用户有权限访问的部门 + * @return + */ + public static List getOfficeList(){ + @SuppressWarnings("unchecked") + List officeList = (List)getCache(CACHE_OFFICE_LIST); + if (officeList == null){ + SysUser user = getUser(); + if (user.isAdmin()){ + officeList = officeDao.findAllList(new SysOffice()); + }else{ + SysOffice office = new SysOffice(); + office.getSqlMap().put("dsf", BaseService.dataScopeFilter(user, "a", "")); + officeList = officeDao.findList(office); + } + putCache(CACHE_OFFICE_LIST, officeList); + } + return officeList; + } + + + + /** + * 获取当前用户授权的区域 + * @return + */ + public static List getAreaList(){ + @SuppressWarnings("unchecked") + List areaList = (List)getCache(CACHE_AREA_LIST); + if (areaList == null){ + areaList = areaDao.findAllList(new SysArea()); + putCache(CACHE_AREA_LIST, areaList); + } + return areaList; + } + + /** + * 获取当前用户有权限访问的部门 + * @return + */ + public static List getOfficeAllList(){ + @SuppressWarnings("unchecked") + List officeList = (List)getCache(CACHE_OFFICE_ALL_LIST); + if (officeList == null){ + officeList = officeDao.findAllList(new SysOffice()); + putCache(CACHE_OFFICE_ALL_MAP, getOfficeAllMap(officeList)); + } + + return officeList; + } + + /** + * 获取当前用户有权限访问的部门 + * @return + */ + public static Map getOfficeAllMap(){ + @SuppressWarnings("unchecked") + Map officeMap = (Map)getCache(CACHE_OFFICE_ALL_MAP); + if (officeMap == null){ + officeMap = getOfficeAllMap(getOfficeAllList()); + } + + return officeMap; + } + + + + + private static Map getOfficeAllMap(List officeList) { + Map officeMap = new HashMap(); + for (SysOffice office: officeList) { + officeMap.put(office.getId(), office); + } + return officeMap; + } + + + /** + * 获取当前部门各个部门级别描述 + * @param deptId + * @return + */ + public static String getOfficeDesc(Long deptId) { + + StringBuilder offices = new StringBuilder(); + Map officeMap = getOfficeAllMap(); + SysOffice office = officeMap.get(deptId); + + if(!StringUtil.isEmpty(office)) { + + String[] parentIds = office.getParentIds().split(","); + + for(String id : parentIds) { + if (StringUtils.isNotBlank(id) && !id.equals("0") && !id.equals("1")) {//去除空|0无意义|1顶部公司组织机构 + SysOffice parentOffice = officeMap.get(Long.valueOf(id)); + offices.append(StringUtil.isEmpty(parentOffice) ? "" : parentOffice.getName()).append("-"); + } + } + + offices.append(office.getName()); + } + return offices.toString(); + + } + + + + + /** + * 获取授权主要对象 + */ + public static Subject getSubject(){ + return SecurityUtils.getSubject(); + } + + /** + * 获取当前登录者对象 + */ + public static Principal getPrincipal(){ + try{ + Subject subject = SecurityUtils.getSubject(); + Principal principal = (Principal)subject.getPrincipal(); + + if (principal != null){ + return principal; + } +// subject.logout(); + }catch (UnavailableSecurityManagerException e) { + + }catch (InvalidSessionException e){ + + } + return null; + } + + public static Session getSession(){ + try{ + Subject subject = SecurityUtils.getSubject(); + Session session = subject.getSession(false); + if (session == null){ + session = subject.getSession(); + } + if (session != null){ + return session; + } +// subject.logout(); + }catch (InvalidSessionException e){ + + } + return null; + } + + // ============== User Cache ============== + + public static Object getCache(String key) { + return getCache(key, null); + } + + public static Object getCache(String key, Object defaultValue) { +// Object obj = getCacheMap().get(key); + Object obj = getSession().getAttribute(key); + return obj==null?defaultValue:obj; + } + + public static void putCache(String key, Object value) { +// getCacheMap().put(key, value); + getSession().setAttribute(key, value); + } + + public static void removeCache(String key) { +// getCacheMap().remove(key); + getSession().removeAttribute(key); + } + + + + /** + * 是否是验证码登录 + * @param useruame 用户名 + * @param isFail 计数加1 + * @param clean 计数清零 + * @return + */ + @SuppressWarnings("unchecked") + public static boolean isValidateCodeLogin(String useruame, boolean isFail, boolean clean){ + Map loginFailMap = (Map)CacheUtils.get("loginFailMap"); + if (loginFailMap==null){ + loginFailMap = Maps.newHashMap(); + CacheUtils.put("loginFailMap", loginFailMap); + } + Integer loginFailNum = loginFailMap.get(useruame); + if (loginFailNum==null){ + loginFailNum = 0; + } + if (isFail){ + loginFailNum++; + loginFailMap.put(useruame, loginFailNum); + } + if (clean){ + loginFailMap.remove(useruame); + } + return loginFailNum >= 3; + } +} diff --git a/src/main/java/com/nis/web/security/UsernamePasswordToken.java b/src/main/java/com/nis/web/security/UsernamePasswordToken.java new file mode 100644 index 00000000..71afd14a --- /dev/null +++ b/src/main/java/com/nis/web/security/UsernamePasswordToken.java @@ -0,0 +1,37 @@ +package com.nis.web.security; + +import org.apache.shiro.web.filter.authc.LogoutFilter; + + +public class UsernamePasswordToken extends org.apache.shiro.authc.UsernamePasswordToken { + + private static final long serialVersionUID = 1L; + + private String captcha; + private boolean mobileLogin; + + public UsernamePasswordToken() { + super(); + } + + public UsernamePasswordToken(String username, char[] password, + boolean rememberMe, String host, String captcha, boolean mobileLogin) { + super(username, password, rememberMe, host); + this.captcha = captcha; + this.mobileLogin = mobileLogin; + } + + public String getCaptcha() { + return captcha; + } + + public void setCaptcha(String captcha) { + this.captcha = captcha; + } + + public boolean isMobileLogin() { + return mobileLogin; + } + + +} diff --git a/src/main/java/com/nis/web/service/ArchiveServcie.java b/src/main/java/com/nis/web/service/ArchiveServcie.java new file mode 100644 index 00000000..3e2926d6 --- /dev/null +++ b/src/main/java/com/nis/web/service/ArchiveServcie.java @@ -0,0 +1,8 @@ +package com.nis.web.service; + +import org.springframework.stereotype.Service; + +@Service +public class ArchiveServcie extends BaseService{ + +} diff --git a/src/main/java/com/nis/web/service/AreaService.java b/src/main/java/com/nis/web/service/AreaService.java new file mode 100644 index 00000000..64c3123e --- /dev/null +++ b/src/main/java/com/nis/web/service/AreaService.java @@ -0,0 +1,44 @@ +package com.nis.web.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.google.common.collect.Lists; +import com.nis.domain.SysArea; +import com.nis.util.StringUtil; +import com.nis.web.dao.SysAreaDao; +import com.nis.web.security.UserUtils; + +@Service +public class AreaService extends TreeService { + @Autowired + private SysAreaDao areaDao; + + public List findAll() { + return UserUtils.getAreaList(); + } + + + public List findAllAreaList(SysArea area) { + if (!StringUtil.isEmpty(area.getId())) { + area.setParentIds(area.getParentIds()+area.getId()+","+"%"); + } else { + //area.setParentIds(area.getParentIds()+"%"); + return Lists.newArrayList(); + } + + return areaDao.findByParentIdsLike(area); + } + + + public void saveOrUpdate(SysArea sysArea) { + if (StringUtil.isEmpty(sysArea.getId())) { + sysArea.setDelFlag(1); + } + this.save(sysArea); + UserUtils.removeCache(UserUtils.CACHE_AREA_LIST); + } + +} diff --git a/src/main/java/com/nis/web/service/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java new file mode 100644 index 00000000..3af041c8 --- /dev/null +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -0,0 +1,153 @@ +package com.nis.web.service; + +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.Lists; +import com.nis.domain.SysRole; +import com.nis.domain.SysUser; +import com.nis.util.StringUtils; + +/** + * Service基类 + * @author ThinkGem + * @version 2014-05-16 + */ +public abstract class BaseService { + + + + /** + * 日志对象 + */ + protected Logger logger = LoggerFactory.getLogger(getClass()); + + + + /** + * 数据范围过滤 + * @param user 当前用户对象,通过“entity.getCurrentUser()”获取 + * @param officeAlias 机构表别名,多个用“,”逗号隔开。 + * @param userAlias 用户表别名,多个用“,”逗号隔开,传递空,忽略此参数 + * @return 标准连接条件对象 + */ + public static String dataScopeFilter(SysUser user, String officeAlias, String userAlias) { + + + StringBuilder sqlString = new StringBuilder(); + + // 进行权限过滤,多个角色权限范围之间为或者关系。 + List dataScope = Lists.newArrayList(); + + if (StringUtils.isBlank(user.getLoginId())){ + return ""; + } + + // 超级管理员,跳过权限过滤 + if (user.isAdmin()){ + boolean isDataScopeAll = isContainsDataScopeAll(user.getUserRoleList()); + + + + for (SysRole r : user.getUserRoleList()) { + for (String oa : StringUtils.split(officeAlias, ",")){ + if (!dataScope.contains(r.getDataScope()) && StringUtils.isNotBlank(oa)){ + + sqlString.append(createScopeSql(r.getDataScope(),oa,user)); + dataScope.add(r.getDataScope()); + } + } + } + // 如果没有全部数据权限,并设置了用户别名,则当前权限为本人;如果未设置别名,当前无权限为已植入权限 + if (!isDataScopeAll){ + if (StringUtils.isNotBlank(userAlias)){ + for (String ua : StringUtils.split(userAlias, ",")){ + sqlString.append(" OR " + ua + ".id = '" + user.getId() + "'"); + } + }else { + for (String oa : StringUtils.split(officeAlias, ",")){ + //sqlString.append(" OR " + oa + ".id = " + user.getOffice().getId()); + sqlString.append(" OR " + oa + ".id IS NULL"); + } + } + }else{ + // 如果包含全部权限,则去掉之前添加的所有条件,并跳出循环。 + sqlString = new StringBuilder(); + } + } + if (StringUtils.isNotBlank(sqlString.toString())){ + return " AND (" + sqlString.substring(4) + ")"; + } + return ""; + } + + + + + /** + * 测试数据是否包含全集 + * @return + */ + private static boolean isContainsDataScopeAll(List roleList) { + boolean isDataScopeAll = false; + + for(SysRole role : roleList) { + if(SysRole.DATA_SCOPE_ALL.equals(role.getDataScope())){ + isDataScopeAll = true; + break; + } + } + + return isDataScopeAll; + + } + + + /** + * 过滤机构信息 + * @param dataScope 数据范围(1:所有数据;2:所在公司及以下数据;3:所在公司数据;4:所在部门及以下数据;5:所在部门数据;6:所在单位及以下数据;7:所在单位数据) + * @return + */ + private static String createScopeSql(int dataScope,String officeAlias,SysUser user) { + StringBuilder scopeSql = new StringBuilder(1024); + + if (SysRole.DATA_SCOPE_COMPANY_AND_CHILD.equals(dataScope)){ + scopeSql.append(" OR " + officeAlias + ".id = " + user.getCompany().getId()); + scopeSql.append(" OR " + officeAlias + ".parent_ids LIKE '" + user.getCompany().getParentIds() + user.getCompany().getId() + ",%'"); + } + else if (SysRole.DATA_SCOPE_COMPANY.equals(dataScope)){ + scopeSql.append(" OR " + officeAlias + ".id = " + user.getCompany().getId()); + // 包括本公司下的部门 (type=1:公司;type=2:单位 3.部门) + scopeSql.append(" OR (" + officeAlias + ".parent_id = '" + user.getCompany().getId() + "' AND " + officeAlias + ".type>1)"); + } + else if (SysRole.DATA_SCOPE_OFFICE_AND_CHILD.equals(dataScope)){ + scopeSql.append(" OR " + officeAlias + ".id = " + user.getOffice().getId()); + scopeSql.append(" OR " + officeAlias + ".parent_ids LIKE '" + user.getOffice().getParentIds() + user.getOffice().getId() + ",%'"); + } + else if (SysRole.DATA_SCOPE_OFFICE.equals(dataScope)){ + scopeSql.append(" OR " + officeAlias + ".id = " + user.getOffice().getId()); + } + else if (SysRole.DATA_SCOPE_ENTITY_AND_CHILD.equals(dataScope)){ + scopeSql.append(" OR " + officeAlias + ".id = " + user.getEntity().getId()); + scopeSql.append(" OR " + officeAlias + ".parent_ids LIKE '" + user.getEntity().getParentIds() + user.getEntity().getId() + ",%'"); + + } else if (SysRole.DATA_SCOPE_ENTITY.equals(dataScope)){ + scopeSql.append(" OR " + officeAlias + ".id = " + user.getEntity().getId()); + // 包括本公司下的部门 (type=1:公司;type=2:单位 3.部门) + scopeSql.append(" OR (" + officeAlias + ".parent_id = '" + user.getEntity().getId() + "' AND " + officeAlias + ".type>1)"); + + } + + return scopeSql.toString(); + } + + + + + + + + +} diff --git a/src/main/java/com/nis/web/service/CommonService.java b/src/main/java/com/nis/web/service/CommonService.java new file mode 100644 index 00000000..d2689097 --- /dev/null +++ b/src/main/java/com/nis/web/service/CommonService.java @@ -0,0 +1,6 @@ +package com.nis.web.service; + + +public interface CommonService { + +} diff --git a/src/main/java/com/nis/web/service/CrudService.java b/src/main/java/com/nis/web/service/CrudService.java new file mode 100644 index 00000000..d022bac3 --- /dev/null +++ b/src/main/java/com/nis/web/service/CrudService.java @@ -0,0 +1,180 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.web.service; + +import java.lang.reflect.Field; +import java.util.List; + +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import com.nis.domain.BaseEntity; +import com.nis.domain.Page; +import com.nis.util.Constants; +import com.nis.web.dao.CrudDao; + +/** + * Service基类 + * @author ThinkGem + * @version 2014-05-16 + */ +public abstract class CrudService, T extends BaseEntity> extends BaseService { + + /** + * 持久层对象 + */ + @Autowired + protected D dao; + + /** + * 获取单条数据 + * @param id + * @return + */ + public T get(Long id) { + return dao.get(id); + } + + /** + * 获取单条数据 + * @param entity + * @return + */ + public T get(T entity) { + return dao.get(entity); + } + + /** + * 查询列表数据 + * @param entity + * @return + */ + public List findList(T entity) { + return dao.findList(entity); + } + + /** + * 查询分页数据 + * @param page 分页对象 + * @param entity + * @return + */ + public Page findPage(Page page, T entity) { + entity.setPage(page); + page.setList(dao.findList(entity)); + return page; + } + + /** + * 保存数据(插入或更新) + * @param entity + */ + public void save(T entity) { + if (entity.getIsNewRecord()){ + dao.insert(entity); + }else{ + dao.update(entity); + } + } + + /** + * 删除数据 + * @param entity + */ + public void delete(T entity) { + dao.delete(entity); + } + /** + * + * saveBatch(批量全部保存数据) + * (这里描述这个方法适用条件 – 可选) + * @param data 数据集合 + * @param mClass 传入的dao.xml里的mapper + * @author wx + * @since 1.0.0 + */ + + @SuppressWarnings("unchecked") + public void saveBatch(List data,@SuppressWarnings("rawtypes")Class mClass) { + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + SqlSession batchSqlSession = null; + try{ + batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + for(int index = 0; index < data.size();index++){ + T t = data.get(index); + ((CrudDao) batchSqlSession.getMapper(mClass)).insert(t); + } + batchSqlSession.commit(); +// }catch (Exception e){ +// batchSqlSession.rollback(); +// throw e; + }finally { + if(batchSqlSession != null){ + batchSqlSession.close(); + } + } + } + /** + * + * updateBatch(批量更新全部数据) + * (这里描述这个方法适用条件 – 可选) + * @param data 数据集合 + * @param mClass 传入的dao.xml里的mapper + * @author wx + * @since 1.0.0 + */ + @SuppressWarnings("unchecked") + public void updateBatch(List data,@SuppressWarnings("rawtypes") Class mClass) { + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + SqlSession batchSqlSession = null; + try{ + batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + for(int index = 0; index < data.size();index++){ + T t = data.get(index); + ((CrudDao) batchSqlSession.getMapper(mClass)).update(t); + } + batchSqlSession.commit(); +// }catch (Exception e){ +// batchSqlSession.rollback(); +// throw e; + }finally { + if(batchSqlSession != null){ + batchSqlSession.close(); + } + } + } + + /** + * + * deleteBatch(批量删除全部数据) + * (这里描述这个方法适用条件 – 可选) + * @param data 数据集合 + * @param mClass 传入的dao.xml里的mapper + * @author wx + * @since 1.0.0 + */ + @SuppressWarnings("unchecked") + public void deleteBatch(List data,@SuppressWarnings("rawtypes") Class mClass) { + SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class); + SqlSession batchSqlSession = null; + try{ + batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + for(int index = 0; index < data.size();index++){ + T t = data.get(index); + ((CrudDao) batchSqlSession.getMapper(mClass)).delete(t); + } + batchSqlSession.commit(); +// }catch (Exception e){ +// batchSqlSession.rollback(); +// throw e; + }finally { + if(batchSqlSession != null){ + batchSqlSession.close(); + } + } + } + +} diff --git a/src/main/java/com/nis/web/service/DictService.java b/src/main/java/com/nis/web/service/DictService.java new file mode 100644 index 00000000..d7cec3d7 --- /dev/null +++ b/src/main/java/com/nis/web/service/DictService.java @@ -0,0 +1,108 @@ +package com.nis.web.service; + +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nis.domain.Page; +import com.nis.domain.SysDataDictionaryItem; +import com.nis.domain.SysDataDictionaryName; +import com.nis.util.DateUtil; +import com.nis.util.StringUtil; +import com.nis.web.dao.SysDictDao; +import com.nis.web.security.UserUtils; + +@Service +public class DictService extends BaseService { + /**@Resource**/ + @Autowired + private SysDictDao dictDao; + + + public Page findDictList(Page page, SysDataDictionaryName sysDictName) { + // 设置分页参数 + sysDictName.setPage(page); + // 执行分页查询 + page.setList(dictDao.findDictList(sysDictName)); + return page; + } + + + public void saveOrUpdate(SysDataDictionaryName sysDictName) { + + + + if(StringUtil.isEmpty(sysDictName.getId())) {//新增 + + sysDictName.setCreateTime(new Date()); + sysDictName.setModifyTime(new Date()); + sysDictName.setStatus(1); + dictDao.insertDictName(sysDictName); + + List dictItemList = sysDictName.getDictItemList(); + if(!StringUtil.isEmpty(dictItemList) && dictItemList.size()>0) { + for (SysDataDictionaryItem dictItem : dictItemList) { + dictItem.setDictionaryId(sysDictName.getId().intValue()); + dictDao.insertDictItem(dictItem); + } + } + + }else {//修改 + + //累加修改记录 + String newRevision = "用户"+UserUtils.getUser().getName()+",在"+DateUtil.getCurrentDate(DateUtil.YYYY_MM_DD_HH24_MM_SS)+"修改!"; + StringBuilder revisionBuilder = new StringBuilder(newRevision); + String oldRevision = sysDictName.getRevision(); + if(!StringUtil.isBlank(oldRevision)){ + if(oldRevision.split("\\|").length<10){ + revisionBuilder.append("|").append(oldRevision); + }else { + revisionBuilder.append("|").append(oldRevision.substring(0,oldRevision.lastIndexOf("|"))); + } + + } + sysDictName.setRevision(revisionBuilder.toString()); + sysDictName.setModifyTime(new Date()); + sysDictName.setStatus(1); + dictDao.updateDictName(sysDictName); + + + dictDao.deleteDictItem(sysDictName.getId().intValue());//删除所有词条项信息 + + List dictItemList = sysDictName.getDictItemList(); + if(!StringUtil.isEmpty(dictItemList) && dictItemList.size()>0) { + for (SysDataDictionaryItem dictItem : dictItemList) { + dictItem.setDictionaryId(sysDictName.getId().intValue()); + dictDao.insertDictItem(dictItem); + } + } + + + } + + + + + } + + + public void deleteDict(Integer dictId) { + + //删除词典项 + dictDao.deleteDictItem(dictId); + //删除词典标识 + dictDao.deleteDictName(dictId); + + } + + + public SysDataDictionaryName getDictByIdWithRelation(Integer id) { + + return dictDao.getDictById(1,id); + } + + + +} diff --git a/src/main/java/com/nis/web/service/HiveSqlService.java b/src/main/java/com/nis/web/service/HiveSqlService.java new file mode 100644 index 00000000..416b9524 --- /dev/null +++ b/src/main/java/com/nis/web/service/HiveSqlService.java @@ -0,0 +1,628 @@ +package com.nis.web.service; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.sql.ResultSet; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.ibatis.mapping.ResultMap; +import org.apache.ibatis.mapping.ResultMapping; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.log4j.Logger; + +import com.nis.domain.Page; +import com.nis.util.Configurations; +import com.nis.util.Constants; +import com.nis.util.HiveDataSource; +import com.nis.util.HiveJDBC; +import com.nis.util.StringUtil; +import com.nis.util.redis.SaveRedisThread; + +public class HiveSqlService { + private final static Logger logger = Logger.getLogger(HiveJDBC.class); + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + public static ResultSet getResultSet(Page page, Object bean, String tableName, + Map> col2col, String orderBy, String searchActiveSys) throws Exception { + tableName = tableName.toLowerCase(); + tableName = Configurations.getStringProperty(tableName, "t_" + tableName).trim(); + String showColmun = getFiledsSql(bean.getClass().getSimpleName(), page.getFields()); + StringBuffer sql = new StringBuffer(); + Map filedAndColumnMap = getFiledAndColumnMap(bean.getClass()); + if (null == showColmun || showColmun.equals("")) { + for (String key : filedAndColumnMap.keySet()) { + if (!filedAndColumnMap.get(key).toLowerCase().equals("id")) { + sql.append(filedAndColumnMap.get(key) + ","); + } + } + } else { + sql.append(showColmun); + } + String sqlTrim = sql.toString().trim(); + if (sqlTrim.endsWith(",")) { + sqlTrim = sqlTrim.substring(0, sqlTrim.length() - 1); + } + sql.setLength(0); + sql.append(" select " + sqlTrim + " from " + tableName + " t where 1=1 "); + if (bean != null) { + Class clazz = bean.getClass(); + for (; clazz != Object.class; clazz = clazz.getSuperclass()) { + // 获取所有的字段包括public,private,protected,private + // Field[] fields = bean.getClass().getDeclaredFields(); + Field[] fields = clazz.getDeclaredFields(); + Long foundTimePartStart = null; + Long foundTimePartEnd = null; + for (int i = 0; i < fields.length; i++) { + Field f = fields[i]; + String key = f.getName();// 获取字段名 + if (f.getType().getName().equals("java.lang.String") && key.startsWith("search")) { + Object value = getFieldValue(bean, key); + if (value != null) { + setFieldValue(bean, key, value.toString().trim()); + if (key.endsWith("Time")) {// 日期开始或结束的字段 + if (col2col.containsKey(key)) { + value = sdf.parse(value.toString().trim()).getTime() / 1000; + if (key.toLowerCase().equals("searchfoundstarttime")) { + foundTimePartStart = Long.parseLong(value.toString()) / 3600; + } + if (key.toLowerCase().equals("searchfoundendtime")) { + foundTimePartEnd = Long.parseLong(value.toString()) / 3600; + } + if (col2col.get(key).get("start") != null) { + // sql.append(" and " + + // filedAndColumnMap.get(col2col.get(key).get("start")) + // + ">=to_date('" + + // value.toString().trim() + // + "','yyyy-mm-dd HH24:mi:ss')"); + sql.append(" and " + filedAndColumnMap.get(col2col.get(key).get("start")) + ">=" + + value + "L"); + } else { + // sql.append(" and " + + // filedAndColumnMap.get(col2col.get(key).get("end")) + // + "<=to_date('" + + // value.toString().trim() + // + "','yyyy-mm-dd HH24:mi:ss')"); + sql.append(" and " + filedAndColumnMap.get(col2col.get(key).get("end")) + "<" + + value + "L"); + } + } + } else { + if (key.toLowerCase().startsWith("search")) { + key = key.replace("search", ""); + key = key.substring(0, 1).toLowerCase() + key.substring(1); + } + + if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && (key.toLowerCase().equals("cfgid") + || key.toLowerCase().equals("entranceid"))) { + sql.append( + " and " + filedAndColumnMap.get(key) + "=" + value.toString().trim() + "L"); + } else if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && (key.toLowerCase().equals("protocol") || key.toLowerCase().equals("serverip") + || key.toLowerCase().equals("clientip") + || key.toLowerCase().equals("url") + || key.toLowerCase().equals("mailfrom") + || key.toLowerCase().equals("mailto") + || key.toLowerCase().equals("encryptmode") + || key.toLowerCase().equals("exprotocol") + || key.toLowerCase().equals("cljip"))) { + sql.append(" and " + filedAndColumnMap.get(key) + "='" + value.toString().trim() + + "'"); + } else if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && key.toLowerCase().equals("servicetype")) { + sql.append(" and " + filedAndColumnMap.get(key) + "=" + value.toString().trim()); + } + } + } + + } + } + + //if (null != searchActiveSys && !searchActiveSys.equals(Constants.ACTIVESYS_A)) {// B版数据库才有found_time_partition字段,A版毛衣found_time_partition分区字段 + if (null != searchActiveSys){//为A版日志库添加分区字段 + if (null != foundTimePartStart) { + sql.append(" and found_time_partition>=" + foundTimePartStart + "L"); + } + if (null != foundTimePartEnd) { + sql.append(" and found_time_partition<" + foundTimePartEnd + "L"); + } + } + + } + } + Integer startNum = (page.getPageNo() - 1) * page.getPageSize() + 1; + Integer endNum = startNum - 1 + page.getPageSize(); + // sql.append(" order by " + orderBy + " limit 10000) t1) t2 where + // row_Num between " + startNum + " and " + endNum); + sql.append(" limit " + Constants.EVERY_GETHIVEDATANUM); + logger.info("获取数据中心日志sql===================" + sql); + // ResultSet query = HiveJDBC.query(sql.toString()); + ResultSet query = HiveDataSource.query(sql.toString(), searchActiveSys); + logger.info("获取数据中心日志成功"); + return query; + } + + public static Long getHivePageCount(Object bean, String countKey, String tableName, + Map> col2col, String searchActiveSys) throws Exception { + tableName = tableName.toLowerCase(); + tableName = Configurations.getStringProperty(tableName, "t_" + tableName).trim(); + StringBuffer countSql = new StringBuffer(); + Map filedAndColumnMap = getFiledAndColumnMap(bean.getClass()); + countSql.append("select count(1) from " + tableName + " where 1=1 "); + if (bean != null) { + Class clazz = bean.getClass(); + for (; clazz != Object.class; clazz = clazz.getSuperclass()) { + // 获取所有的字段包括public,private,protected,private + // Field[] fields = bean.getClass().getDeclaredFields(); + Field[] fields = clazz.getDeclaredFields(); + Long foundTimePartStart = null; + Long foundTimePartEnd = null; + for (int i = 0; i < fields.length; i++) { + Field f = fields[i]; + String key = f.getName();// 获取字段名 + if (f.getType().getName().equals("java.lang.String") && key.startsWith("search")) { + Object value = getFieldValue(bean, key); + if (value != null) { + setFieldValue(bean, key, value.toString().trim()); + if (key.endsWith("Time")) {// 日期开始或结束的字段 + if (col2col.containsKey(key)) { + value = sdf.parse(value.toString().trim()).getTime() / 1000; + if (key.toLowerCase().equals("searchfoundstarttime")) { + foundTimePartStart = Long.parseLong(value.toString()) / 3600; + } + if (key.toLowerCase().equals("searchfoundendtime")) { + foundTimePartEnd = Long.parseLong(value.toString()) / 3600; + } + if (col2col.get(key).get("start") != null) { + countSql.append(" and " + filedAndColumnMap.get(col2col.get(key).get("start")) + + ">=" + value + "L"); + } else { + countSql.append(" and " + filedAndColumnMap.get(col2col.get(key).get("end")) + + "<" + value + "L"); + } + } + } else { + if (key.toLowerCase().startsWith("search")) { + key = key.replace("search", ""); + key = key.substring(0, 1).toLowerCase() + key.substring(1); + } + + if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && (key.toLowerCase().equals("cfgid") + || key.toLowerCase().equals("entranceid"))) { + countSql.append( + " and " + filedAndColumnMap.get(key) + "=" + value.toString().trim() + "L"); + } else if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && (key.toLowerCase().equals("protocol") || key.toLowerCase().equals("serverip") + || key.toLowerCase().equals("clientip") + || key.toLowerCase().equals("url") + || key.toLowerCase().equals("mailfrom") + || key.toLowerCase().equals("mailto") + || key.toLowerCase().equals("encryptmode") + || key.toLowerCase().equals("exprotocol") + || key.toLowerCase().equals("cljip"))) { + countSql.append(" and " + filedAndColumnMap.get(key) + "='" + + value.toString().trim() + "'"); + } else if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && key.toLowerCase().equals("servicetype")) { + countSql.append( + " and " + filedAndColumnMap.get(key) + "=" + value.toString().trim()); + } + } + } + + } + } + //if (null != searchActiveSys && !searchActiveSys.equals(Constants.ACTIVESYS_A)) {// B版数据库才有found_time_partition字段,A版毛衣found_time_partition分区字段 + if (null != searchActiveSys){ + if (null != foundTimePartStart) { + countSql.append(" and found_time_partition>=" + foundTimePartStart + "L"); + } + if (null != foundTimePartEnd) { + countSql.append(" and found_time_partition<" + foundTimePartEnd + "L"); + } + } + } + } + logger.info("获取数据中心日志总条数sql==================" + countSql.toString()); + // ResultSet countRs = HiveJDBC.query(countSql.toString()); + ResultSet countRs = HiveDataSource.query(countSql.toString(), searchActiveSys); + String countStr = null; + while (countRs.next()) { + countStr = countRs.getObject(1).toString(); + break; + } + if (countStr == null || countStr.equals("")) { + logger.info("获取数据中心日志总条数成功总共===================0条配置"); + return 0l; + } + Long count = Long.valueOf(countStr); + logger.info("获取数据中心日志总条数成功总共===================" + count + "条配置"); + // HiveJDBC.closeConn(); + if (Constants.IS_OPEN_REDIS && Constants.DATACENTER_OPEN_REDIS) { + new SaveRedisThread(countKey, count, Constants.HIVE_EXPIRE).start(); + } + return count; + } + + public static ResultSet getResultSet2(Page page, Object bean, String tableName, + Map> col2col, String orderBy, String searchActiveSys) throws Exception { + tableName = tableName.toLowerCase(); + tableName = Configurations.getStringProperty(tableName, "t_" + tableName).trim(); + String showColmun = getFiledsSql(bean.getClass().getSimpleName(), page.getFields()); + StringBuffer sql = new StringBuffer(); + Map filedAndColumnMap = getFiledAndColumnMap(bean.getClass()); + if (null == showColmun || showColmun.equals("")) { + for (String key : filedAndColumnMap.keySet()) { + if (!filedAndColumnMap.get(key).toLowerCase().equals("id")) { + sql.append(filedAndColumnMap.get(key) + ","); + } + } + } else { + sql.append(showColmun); + } + String sqlTrim = sql.toString().trim(); + if (sqlTrim.endsWith(",")) { + sqlTrim = sqlTrim.substring(0, sqlTrim.length() - 1); + } + sql.setLength(0); + sql.append("select " + sqlTrim + " from(select " + sqlTrim + ",row_Num from(select " + sqlTrim + + ",row_number() over() as row_Num from " + tableName + " t where 1=1 "); + if (bean != null) { + Class clazz = bean.getClass(); + for (; clazz != Object.class; clazz = clazz.getSuperclass()) { + // 获取所有的字段包括public,private,protected,private + // Field[] fields = bean.getClass().getDeclaredFields(); + Field[] fields = clazz.getDeclaredFields(); + Long foundTimePartStart = null; + Long foundTimePartEnd = null; + for (int i = 0; i < fields.length; i++) { + Field f = fields[i]; + String key = f.getName();// 获取字段名 + if (f.getType().getName().equals("java.lang.String") && key.startsWith("search")) { + Object value = getFieldValue(bean, key); + if (value != null) { + setFieldValue(bean, key, value.toString().trim()); + if (key.endsWith("Time")) {// 日期开始或结束的字段 + if (col2col.containsKey(key)) { + value = sdf.parse(value.toString().trim()).getTime() / 1000; + if (key.toLowerCase().equals("searchfoundstarttime")) { + foundTimePartStart = Long.parseLong(value.toString()) / 3600; + } + if (key.toLowerCase().equals("searchfoundendtime")) { + foundTimePartEnd = Long.parseLong(value.toString()) / 3600; + } + if (col2col.get(key).get("start") != null) { + // sql.append(" and " + + // filedAndColumnMap.get(col2col.get(key).get("start")) + // + ">=to_date('" + + // value.toString().trim() + // + "','yyyy-mm-dd HH24:mi:ss')"); + sql.append(" and " + filedAndColumnMap.get(col2col.get(key).get("start")) + ">=" + + value + "L"); + } else { + // sql.append(" and " + + // filedAndColumnMap.get(col2col.get(key).get("end")) + // + "<=to_date('" + + // value.toString().trim() + // + "','yyyy-mm-dd HH24:mi:ss')"); + sql.append(" and " + filedAndColumnMap.get(col2col.get(key).get("end")) + "<" + + value + "L"); + } + } + } else { + if (key.toLowerCase().startsWith("search")) { + key = key.replace("search", ""); + key = key.substring(0, 1).toLowerCase() + key.substring(1); + } + + if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && (key.toLowerCase().equals("cfgid") + || key.toLowerCase().equals("entranceid"))) { + sql.append( + " and " + filedAndColumnMap.get(key) + "=" + value.toString().trim() + "L"); + } else if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && (key.toLowerCase().equals("protocol") || key.toLowerCase().equals("serverip") + || key.toLowerCase().equals("clientip") + || key.toLowerCase().equals("cljip"))) { + sql.append(" and " + filedAndColumnMap.get(key) + "='" + value.toString().trim() + + "'"); + } else if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && key.toLowerCase().equals("servicetype")) { + sql.append(" and " + filedAndColumnMap.get(key) + "=" + value.toString().trim()); + } + } + } + + } + } + if (null != searchActiveSys && !searchActiveSys.equals(Constants.ACTIVESYS_A)) {// B版数据库才有found_time_partition字段,A版毛衣found_time_partition分区字段 + if (null != foundTimePartStart) { + sql.append(" and found_time_partition>=" + foundTimePartStart + "L"); + } + if (null != foundTimePartEnd) { + sql.append(" and found_time_partition<" + foundTimePartEnd + "L"); + } + } + + } + } + Integer startNum = (page.getPageNo() - 1) * page.getPageSize() + 1; + Integer endNum = startNum - 1 + page.getPageSize(); + sql.append( + " order by " + orderBy + " limit 10000) t1) t2 where row_Num between " + startNum + " and " + endNum); + logger.info("获取数据中心日志sql===================" + sql); + ResultSet query = HiveJDBC.query(sql.toString(), searchActiveSys); + logger.info("获取数据中心日志成功"); + return query; + } + + public static Long getHivePageCount2(Object bean, String tableName, Map> col2col, + String searchActiveSys) throws Exception { + tableName = tableName.toLowerCase(); + tableName = Configurations.getStringProperty(tableName, "t_" + tableName).trim(); + StringBuffer countSql = new StringBuffer(); + Map filedAndColumnMap = getFiledAndColumnMap(bean.getClass()); + countSql.append("select count(1) from " + tableName + " where 1=1 "); + if (bean != null) { + Class clazz = bean.getClass(); + for (; clazz != Object.class; clazz = clazz.getSuperclass()) { + // 获取所有的字段包括public,private,protected,private + // Field[] fields = bean.getClass().getDeclaredFields(); + Field[] fields = clazz.getDeclaredFields(); + Long foundTimePartStart = null; + Long foundTimePartEnd = null; + for (int i = 0; i < fields.length; i++) { + Field f = fields[i]; + String key = f.getName();// 获取字段名 + if (f.getType().getName().equals("java.lang.String") && key.startsWith("search")) { + Object value = getFieldValue(bean, key); + if (value != null) { + setFieldValue(bean, key, value.toString().trim()); + if (key.endsWith("Time")) {// 日期开始或结束的字段 + if (col2col.containsKey(key)) { + value = sdf.parse(value.toString().trim()).getTime() / 1000; + if (key.toLowerCase().equals("searchfoundstarttime")) { + foundTimePartStart = Long.parseLong(value.toString()) / 3600; + } + if (key.toLowerCase().equals("searchfoundendtime")) { + foundTimePartEnd = Long.parseLong(value.toString()) / 3600; + } + if (col2col.get(key).get("start") != null) { + countSql.append(" and " + filedAndColumnMap.get(col2col.get(key).get("start")) + + ">=" + value + "L"); + } else { + countSql.append(" and " + filedAndColumnMap.get(col2col.get(key).get("end")) + + "<" + value + "L"); + } + } + } else { + if (key.toLowerCase().startsWith("search")) { + key = key.replace("search", ""); + key = key.substring(0, 1).toLowerCase() + key.substring(1); + } + + if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && (key.toLowerCase().equals("cfgid") + || key.toLowerCase().equals("entranceid"))) { + countSql.append( + " and " + filedAndColumnMap.get(key) + "=" + value.toString().trim() + "L"); + } else if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && (key.toLowerCase().equals("protocol") || key.toLowerCase().equals("serverip") + || key.toLowerCase().equals("clientip") + || key.toLowerCase().equals("cljip"))) { + countSql.append(" and " + filedAndColumnMap.get(key) + "='" + + value.toString().trim() + "'"); + } else if (!value.toString().trim().equals("") && filedAndColumnMap.containsKey(key) + && key.toLowerCase().equals("servicetype")) { + countSql.append( + " and " + filedAndColumnMap.get(key) + "=" + value.toString().trim()); + } + } + } + + } + } + if (null != searchActiveSys && !searchActiveSys.equals(Constants.ACTIVESYS_A)) {// B版数据库才有found_time_partition字段,A版毛衣found_time_partition分区字段 + if (null != foundTimePartStart) { + countSql.append(" and found_time_partition>=" + foundTimePartStart + "L"); + } + if (null != foundTimePartEnd) { + countSql.append(" and found_time_partition<" + foundTimePartEnd + "L"); + } + } + } + } + logger.info("获取数据中心日志总条数sql==================" + countSql.toString()); + ResultSet countRs = HiveJDBC.query(countSql.toString(), searchActiveSys); + String countStr = null; + while (countRs.next()) { + countStr = countRs.getObject(1).toString(); + break; + } + if (countStr == null || countStr.equals("")) { + logger.info("获取数据中心日志总条数成功总共===================0条配置"); + return 0l; + } + Long count = Long.valueOf(countStr); + logger.info("获取数据中心日志总条数成功总共===================" + count + "条配置"); + HiveJDBC.closeConn(); + return count; + } + + public static String getFiledsSql(String mapName, String fileds) throws Exception { + String[] fieldsColoumn = null; + String orderByStr = ""; + // 所有字段名 + List columnList = new ArrayList(); + // 所有属性名 + List propertyList = new ArrayList(); + // 属性名称为key,字段名称为value + Map columnMap = new HashMap(); + + if (!StringUtil.isBlank(fileds)) { + // 解析Fileds的字段/属性名称 + fieldsColoumn = fileds.split(","); + + // 从resultMap中获取字段名称和属性名称 + if (fieldsColoumn != null) { + SqlSessionFactory sqlSessionFactory = SpringContextHolder.getBean(SqlSessionFactory.class); + ResultMap map = sqlSessionFactory.getConfiguration().getResultMap(mapName + "Map"); + List mapping = map.getResultMappings(); + for (ResultMapping mapp : mapping) { + columnList.add(mapp.getColumn().toLowerCase()); + propertyList.add(mapp.getProperty()); + columnMap.put(mapp.getProperty(), mapp.getColumn()); + } + } + if (fieldsColoumn != null) { + fileds = ""; + for (String column : fieldsColoumn) { + if (!StringUtil.isBlank(column)) { + column = column.trim(); + if (columnList.contains(column)) { + fileds += "," + column; + } else if (propertyList.contains(column)) { + fileds += "," + columnMap.get(column).toString(); + } + } + } + if (!StringUtil.isBlank(fileds)) { + fileds = fileds.substring(1); + } + + } + + } + return fileds; + } + + public static Map getFiledAndColumnMap(Class clazz) { + Map map = new HashMap(); + SqlSessionFactory sqlSessionFactory = SpringContextHolder.getBean(SqlSessionFactory.class); + ResultMap resultMap = sqlSessionFactory.getConfiguration().getResultMap(clazz.getSimpleName() + "Map"); + List mapping = resultMap.getResultMappings(); + for (ResultMapping mapp : mapping) { + map.put(mapp.getProperty(), mapp.getColumn().toLowerCase()); + } + return map; + + } + + /** + * 利用反射通过get方法获取bean中字段fieldName的值 + * + * @param bean + * @param fieldName + * @return + * @throws Exception + */ + private static Object getFieldValue(Object bean, String fieldName) throws Exception { + StringBuffer result = new StringBuffer(); + String methodName = result.append("get").append(fieldName.substring(0, 1).toUpperCase()) + .append(fieldName.substring(1)).toString(); + + Object rObject = null; + Method method = null; + + @SuppressWarnings("rawtypes") + Class[] classArr = new Class[0]; + method = bean.getClass().getMethod(methodName, classArr); + rObject = method.invoke(bean, new Object[0]); + + return rObject; + } + + /** + * 利用发射调用bean.set方法将value设置到字段 + * + * @param bean + * @param fieldName + * @param value + * @throws Exception + */ + private static void setFieldValue(Object bean, String fieldName, Object value) throws Exception { + StringBuffer result = new StringBuffer(); + String methodName = result.append("set").append(fieldName.substring(0, 1).toUpperCase()) + .append(fieldName.substring(1)).toString(); + /** + * 利用发射调用bean.set方法将value设置到字段 + */ + Class[] classArr = new Class[1]; + classArr[0] = "java.lang.String".getClass(); + Method method = bean.getClass().getMethod(methodName, classArr); + method.invoke(bean, value); + } + + /** + * 比较开始时间或者结束时间是否比当前系统时间早48小时 + * + * @param startTime + * 开始时间 + * @param endTime + * 结束时间 + * @return + * @throws ParseException + */ + public static boolean ifTimeGreaterThan48(String startTime, String endTime) throws Exception { + logger.info("ifTimeGreaterThan48方法开始" + System.currentTimeMillis()); + if (null != startTime && !startTime.equals("") && null != endTime && !endTime.equals("")) {// 开始和结束时间都不为空 + Date startDate = sdf.parse(startTime); + Date endDate = sdf.parse(endTime); + if (startDate.getTime() < endDate.getTime()) {// 开始时间比结束时间早 + logger.info("ifTimeGreaterThan48方法结束" + System.currentTimeMillis()); + return gt48(endTime); + } else {// 开始时间比结束时间晚,不符合一般情况 + logger.info("ifTimeGreaterThan48方法结束" + System.currentTimeMillis()); + return false; + } + } else if (null != endTime && !endTime.equals("")) {// 开始时间为空,结束时间不为空 + logger.info("ifTimeGreaterThan48方法结束" + System.currentTimeMillis()); + return gt48(endTime); + } else if (null != startTime && !startTime.equals("")) {// 结束时间为空,开始时间不为空 + logger.info("ifTimeGreaterThan48方法结束" + System.currentTimeMillis()); + return gt48(startTime); + } else {// 开始和结束时间都为空 + logger.info("ifTimeGreaterThan48方法结束" + System.currentTimeMillis()); + return false; + } + + } + + public static boolean gt48(String eqTime) throws ParseException { + logger.info("gt48方法开始" + System.currentTimeMillis()); + Date eqDate = sdf.parse(eqTime); + Long dateNum = eqDate.getTime(); + Long currentDate = new Date().getTime(); + Long time = 0l; + if (dateNum < currentDate) { + time = currentDate - dateNum;// 获取结束时间与当前系统时间的时间差毫秒数 + } else { + logger.info("gt48方法结束" + System.currentTimeMillis()); + return false;// 结束时间比当前系统时间晚,不符合从数据中心查询数据要求(当前日期48小时前数据从数据中心查询) + } + double hours = time.doubleValue() / (1000 * 60 * 60); + Long datacenterTime = Constants.DATACENTER_TIME; + double doubleValue = datacenterTime.doubleValue(); + if (hours > doubleValue) { + logger.info("gt48方法结束" + System.currentTimeMillis()); + return true;// 符合要求 + } else { + logger.info("gt48方法结束" + System.currentTimeMillis()); + return false; + } + + } + + public static void main(String[] args) { + Long datacenterTime = Constants.DATACENTER_TIME; + double doubleValue = datacenterTime.doubleValue(); + System.out.println(doubleValue); + } +} diff --git a/src/main/java/com/nis/web/service/LogService.java b/src/main/java/com/nis/web/service/LogService.java new file mode 100644 index 00000000..b009ecf0 --- /dev/null +++ b/src/main/java/com/nis/web/service/LogService.java @@ -0,0 +1,27 @@ +package com.nis.web.service; + +import org.springframework.stereotype.Service; + +import com.nis.domain.Page; +import com.nis.domain.SysLog; +import com.nis.util.DateUtils; +import com.nis.web.dao.SysLogDao; + +@Service +public class LogService extends CrudService { + +public Page findPage(Page page, SysLog sysLog) { + + // 设置默认时间范围,默认当前月 + if (sysLog.getBeginDate() == null){ + sysLog.setBeginDate(DateUtils.setDays(DateUtils.parseDate(DateUtils.getDate()), 1)); + } + if (sysLog.getEndDate() == null){ + sysLog.setEndDate(DateUtils.addMonths(sysLog.getBeginDate(), 1)); + } + + return super.findPage(page, sysLog); + + } + +} diff --git a/src/main/java/com/nis/web/service/MenuService.java b/src/main/java/com/nis/web/service/MenuService.java new file mode 100644 index 00000000..935b7cc5 --- /dev/null +++ b/src/main/java/com/nis/web/service/MenuService.java @@ -0,0 +1,97 @@ +package com.nis.web.service; + +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nis.domain.SysMenu; +import com.nis.domain.SysUser; +import com.nis.util.CacheUtils; +import com.nis.util.LogUtils; +import com.nis.util.StringUtil; +import com.nis.web.dao.SysMenuDao; +import com.nis.web.security.UserUtils; + +@Service +public class MenuService extends BaseService { + @Autowired + private SysMenuDao menuDao; + + public List findAllMenu() { + return UserUtils.getMenuList(); + } + + public SysMenu getMenu(Long id) { + + return menuDao.get(id); + } + + + public void saveOrUpdateMenu(SysMenu menu) { + + // 获取父节点实体 + menu.setParent(this.getMenu(menu.getParent().getId())); + + // 获取修改前的parentIds,用于更新子节点的parentIds + String oldParentIds = menu.getParentIds(); + + // 设置新的父节点串 + menu.setParentIds(menu.getParent().getParentIds()+menu.getParent().getId()+","); + SysUser user = UserUtils.getUser(); + + // 保存或更新实体 + if (StringUtil.isEmpty(menu.getId())){ + + menu.setUpdateBy(user); + menu.setCreateBy(user); + menu.setCreateDate(new Date()); + menu.setUpdateDate(menu.getCreateDate()); + menu.setDelFlag(1); + menuDao.insert(menu); + }else{ + menu.setUpdateBy(user); + menu.setUpdateDate(new Date()); + menuDao.update(menu); + } + + // 更新子节点 parentIds + SysMenu m = new SysMenu(); + m.setParentIds("%,"+menu.getId()+",%"); + List list = menuDao.findByParentIdsLike(m); + for (SysMenu e : list){ + e.setParentIds(e.getParentIds().replace(oldParentIds, menu.getParentIds())); + menuDao.updateParentIds(e); + } + // 清除用户菜单缓存 + UserUtils.removeCache(UserUtils.CACHE_MENU_LIST); +// // 清除权限缓存 +// systemRealm.clearAllCachedAuthorizationInfo(); + // 清除日志相关缓存 + CacheUtils.remove(LogUtils.CACHE_MENU_NAME_PATH_MAP); + } + + public void deleteMenu(SysMenu menu) { + + menuDao.delete(menu); + // 清除用户菜单缓存 + UserUtils.removeCache(UserUtils.CACHE_MENU_LIST); +// // 清除权限缓存 +// systemRealm.clearAllCachedAuthorizationInfo(); + // 清除日志相关缓存 + CacheUtils.remove(LogUtils.CACHE_MENU_NAME_PATH_MAP); + + } + + public void updateMenuSort(SysMenu menu) { + menuDao.updateSort(menu); + // 清除用户菜单缓存 + UserUtils.removeCache(UserUtils.CACHE_MENU_LIST); +// // 清除权限缓存 +// systemRealm.clearAllCachedAuthorizationInfo(); + // 清除日志相关缓存 + CacheUtils.remove(LogUtils.CACHE_MENU_NAME_PATH_MAP); + } + +} diff --git a/src/main/java/com/nis/web/service/OfficeService.java b/src/main/java/com/nis/web/service/OfficeService.java new file mode 100644 index 00000000..594fabbb --- /dev/null +++ b/src/main/java/com/nis/web/service/OfficeService.java @@ -0,0 +1,108 @@ +package com.nis.web.service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.stereotype.Service; + +import com.nis.domain.SysOffice; +import com.nis.util.DictUtils; +import com.nis.util.StringUtil; +import com.nis.web.dao.SysOfficeDao; +import com.nis.web.security.UserUtils; +@Service +public class OfficeService extends TreeService{ + + public List findAll() { + return UserUtils.getOfficeList(); + } + + public List findList(Boolean isAll){ + if (isAll != null && isAll){ + return UserUtils.getOfficeAllList(); + }else{ + return UserUtils.getOfficeList(); + } + } + public SysOffice selectByPrimaryKey(Integer id){ + if(id != null){ + + return dao.selectByPrimaryKey(id); + }else{ + return null; + } + } + + public List findAllOfficeList(SysOffice office){ + //office.getSqlMap().put("dsf", dataScopeFilter(UserUtils.getUser(), "a", "")); + if (!StringUtil.isEmpty(office.getId()) && office.getId() != 1l) { + office.setParentIds(office.getParentIds()+office.getId()+","+"%"); + } else { + office.setParentIds(office.getParentIds()+"%"); + } + + return dao.findByParentIdsLike(office); + + } + + public void saveOrUpdate(SysOffice office) { + if (StringUtil.isEmpty(office.getId())) { + office.setCreateTime(new Date()); + office.setDelFlag(1); + } + + this.save(office); + + + if(office.getChildDeptList() != null) { + SysOffice childOffice = null; + for(String id : office.getChildDeptList()){ + childOffice = new SysOffice(); + childOffice.setName(DictUtils.getDictLabel("SYS_OFFICE_COMMON", id, "未知")); + childOffice.setParent(office); + childOffice.setArea(office.getArea()); + childOffice.setType(2); + childOffice.setGrade(office.getGrade()+1); + childOffice.setUseable(1); + childOffice.setCreateTime(new Date()); + childOffice.setDelFlag(1); + this.save(childOffice); + } + } + + + UserUtils.removeCache(UserUtils.CACHE_OFFICE_LIST); + + } + + public void delete(SysOffice office) { + super.delete(office); + UserUtils.removeCache(UserUtils.CACHE_OFFICE_LIST); + } + + public List selectOfficeForDeptment(Map map) { + List sysOfficeList=dao.selectOfficeForDeptment(map); + return sysOfficeList; + } + + public List selectOfficeForLetter(Map hmap) { + List sysOfficeList=dao.selectOfficeForLetter(hmap); + return sysOfficeList; + + } + public List selectLowerDeptement(Map hmap) { + List sysOfficeList=dao.selectLowerDeptement(hmap); + return sysOfficeList; + + } + + public List selectSysOffice(SysOffice sysOffice) { + + return dao.selectSysOffice(sysOffice); + + } + + + +} diff --git a/src/main/java/com/nis/web/service/RoleService.java b/src/main/java/com/nis/web/service/RoleService.java new file mode 100644 index 00000000..bea2c126 --- /dev/null +++ b/src/main/java/com/nis/web/service/RoleService.java @@ -0,0 +1,80 @@ +package com.nis.web.service; + +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nis.domain.SysRole; +import com.nis.domain.SysUser; +import com.nis.util.StringUtil; +import com.nis.web.dao.SysRoleDao; +import com.nis.web.security.UserUtils; + +@Service +public class RoleService extends BaseService { + @Autowired + private SysRoleDao roleDao; + + public List findAllRole() { + return UserUtils.getRoleList(); + } + + public SysRole getRole(Long id) { + + return roleDao.get(id); + } + + + public SysRole getRoleByName(String name) { + SysRole r = new SysRole(); + r.setName(name); + return roleDao.getByName(r); + } + + + public void saveOrUpdate(SysRole role) { + if (StringUtil.isEmpty(role.getId())){ + role.setCreateTime(new Date()); + role.setStatus(1); + roleDao.insert(role); + // 同步到Activiti + //saveActivitiGroup(role); + }else{ + roleDao.update(role); + // 更新角色与菜单关联 + roleDao.deleteRoleMenu(role); + } + + if (role.getMenuList().size() > 0){ + roleDao.insertRoleMenu(role); + } + + // 同步到Activiti + //saveActivitiGroup(role); + // 清除用户角色缓存 + UserUtils.removeCache(UserUtils.CACHE_ROLE_LIST); + List userList = roleDao.findUserByRole(role); + for (SysUser user : userList) { + UserUtils.clearCache(user); + } + +// // 清除权限缓存 +// systemRealm.clearAllCachedAuthorizationInfo(); + } + + public void deleteRole(SysRole role) { + roleDao.delete(role); + // 同步到Activiti + //deleteActivitiGroup(role); + // 清除用户角色缓存 + //UserUtils.removeCache(UserUtils.CACHE_ROLE_LIST); + UserUtils.clearCache(); +// // 清除权限缓存 +// systemRealm.clearAllCachedAuthorizationInfo(); + } + + + +} diff --git a/src/main/java/com/nis/web/service/SpringContextHolder.java b/src/main/java/com/nis/web/service/SpringContextHolder.java new file mode 100644 index 00000000..12b1c2f3 --- /dev/null +++ b/src/main/java/com/nis/web/service/SpringContextHolder.java @@ -0,0 +1,88 @@ +/** + * Copyright © 2012-2014 JeeSite All rights reserved. + */ +package com.nis.web.service; + + +import org.apache.commons.lang3.Validate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + + +/** + * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候取出ApplicaitonContext. + * + * @author Zaric + * @date 2013-5-29 下午1:25:40 + */ +@Service +@Lazy(false) +public class SpringContextHolder implements ApplicationContextAware, DisposableBean { + + private static ApplicationContext applicationContext = null; + + private static Logger logger = LoggerFactory.getLogger(SpringContextHolder.class); + + /** + * 取得存储在静态变量中的ApplicationContext. + */ + public static ApplicationContext getApplicationContext() { + assertContextInjected(); + return applicationContext; + } + + /** + * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. + */ + @SuppressWarnings("unchecked") + public static T getBean(String name) { + assertContextInjected(); + return (T) applicationContext.getBean(name); + } + + /** + * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. + */ + public static T getBean(Class requiredType) { + assertContextInjected(); + return applicationContext.getBean(requiredType); + } + + /** + * 清除SpringContextHolder中的ApplicationContext为Null. + */ + public static void clearHolder() { + if (logger.isDebugEnabled()){ + logger.debug("清除SpringContextHolder中的ApplicationContext:" + applicationContext); + } + applicationContext = null; + } + + /** + * 实现ApplicationContextAware接口, 注入Context到静态变量中. + */ + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + SpringContextHolder.applicationContext = applicationContext; + } + + /** + * 实现DisposableBean接口, 在Context关闭时清理静态变量. + */ + @Override + public void destroy() throws Exception { + SpringContextHolder.clearHolder(); + } + + /** + * 检查ApplicationContext不为空. + */ + private static void assertContextInjected() { + Validate.validState(applicationContext != null, "applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder."); + } +} \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/SystemService.java b/src/main/java/com/nis/web/service/SystemService.java new file mode 100644 index 00000000..14195e94 --- /dev/null +++ b/src/main/java/com/nis/web/service/SystemService.java @@ -0,0 +1,161 @@ +package com.nis.web.service; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMNamespace; +import org.apache.axiom.om.impl.OMNamespaceImpl; +import org.apache.axis2.AxisFault; +import org.apache.axis2.addressing.EndpointReference; +import org.apache.axis2.client.Options; +import org.apache.axis2.client.ServiceClient; +import org.apache.axis2.rpc.client.RPCServiceClient; +import org.apache.commons.io.FileUtils; +import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nis.domain.SrcIp; +import com.nis.domain.SysRole; +import com.nis.domain.SysUser; +import com.nis.util.Configurations; +import com.nis.util.DateUtils; +import com.nis.util.IpUtil; +import com.nis.util.StringUtil; +import com.nis.util.TimeConstants; +import com.nis.web.dao.SrcIpDao; +import com.nis.web.dao.SysOfficeDao; +import com.nis.web.dao.UserDao; +import com.nis.web.security.Servlets; +import com.nis.web.security.SessionDAO; +import com.nis.web.security.UserUtils; + +@Service +public class SystemService extends BaseService{ + + @Autowired + private SessionDAO sessionDao; + + @Autowired + private UserDao userDao; + + @Autowired + private SysOfficeDao sysOfficeDao; + + @Autowired + private SrcIpDao srcIpDao; + + + public Collection getActiveSessions(boolean includeLeave) { + return sessionDao.getActiveSessions(includeLeave); + } + + + public Collection getActiveSessions(boolean includeLeave, Object principal, Session filterSession) { + return sessionDao.getActiveSessions(includeLeave, principal, filterSession); + } + + public void deleteSession(Session session) { + sessionDao.delete(session); + } + + + public SysUser getUserByLoginName(String loginName) { + return UserUtils.getByLoginName(loginName); + } + + public List ipLookUp(String ip) { + return srcIpDao.getIpInfo(IpUtil.getIpHostDesimal(ip)); + } + + + public SysUser assignUserToRole(SysRole role, SysUser user) { + if (user == null){ + return null; + } + List roleIds = user.getRoleIdList(); + if (roleIds.contains(role.getId())) { + return null; + } + user.getUserRoleList().clear(); + user.getUserRoleList().add(role); + userDao.insertUserRole(user); + UserUtils.clearCache(user); + return user; + } + + public Boolean outUserInRole(SysRole role, SysUser user) { + List roles = user.getUserRoleList(); + for (SysRole e : roles){ + if (e.getId().equals(role.getId())){ + roles.remove(e); + userDao.removeUserInRole(user.getId(),role.getId()); + return true; + } + } + return false; + } + + public boolean officeIsValid(Long officeId, Long companyId) { + return userDao.officeIsExistOfCompany(officeId, companyId) >0 ? true : false; + } + + /** + * 结果信息存入文件 + * @param result + * @throws IOException + */ + private void saveToFile(String prefixName, String result) throws IOException{ + String flieName = prefixName + DateUtils.formatDate(new Date(), TimeConstants.YYYYMMDDHH24MMSS); + String filePath = Servlets.getRequest().getServletContext().getRealPath(Configurations.getStringProperty("userfiles.basedir", "")) + File.separator + + "upload" + File.separator + flieName + ".txt"; + FileUtils.writeStringToFile(new File(filePath), result, false); + + } + + /** + * 新增设置header信息,需要修改里面rid、sid对应的值、sid为服务唯一标识、 rid为请求者唯一标识 + */ + private static OMElement setHeader(String ns, String rid, String sid) { + OMFactory fac = OMAbstractFactory.getOMFactory(); + // OMNamespace指定此SOAP文档名称空间。 + OMNamespaceImpl omNs = (OMNamespaceImpl) fac.createOMNamespace(ns, "ns1"); + // 创建header元素,并指定其在omNs指代的名称空间中,header名称固定为CyberpoliceSBReqHeader。 + OMElement method = fac.createOMElement("CyberpoliceSBReqHeader", omNs); + + // 指定元素的文本内容。 + OMElement ridE = fac.createOMElement("rid", omNs); + // TODO将下面的值修改为请求者在系统中的唯一标识 + ridE.setText(rid); + method.addChild(ridE); + + OMElement sidE = fac.createOMElement("sid", omNs); + // TODO将下面的值修改要请求服务的唯一标识 + sidE.setText(sid); + method.addChild(sidE); + + OMElement timeoutE = fac.createOMElement("timeout", omNs); + // TODO将下面的值修改为请求的超时时间,单位秒 + timeoutE.setText(Configurations.getStringProperty("webservice.request.timeout", "60")); + method.addChild(timeoutE); + + OMElement secE = fac.createOMElement("sec", omNs); + // TODO将下面的值修改为请求密码,如果使用其他加密方式,则根据要求统一修改即可 + secE.setText(""); + method.addChild(secE); + return method; + } +} diff --git a/src/main/java/com/nis/web/service/TreeService.java b/src/main/java/com/nis/web/service/TreeService.java new file mode 100644 index 00000000..d78b54c6 --- /dev/null +++ b/src/main/java/com/nis/web/service/TreeService.java @@ -0,0 +1,81 @@ + +package com.nis.web.service; + +import java.util.List; + +import org.springframework.transaction.annotation.Transactional; + +import com.nis.domain.TreeEntity; +import com.nis.exceptions.ServiceException; +import com.nis.util.Reflections; +import com.nis.util.StringUtil; +import com.nis.util.StringUtils; +import com.nis.web.dao.TreeDao; + +/** + * Service基类 + * @author ThinkGem + * @version 2014-05-16 + */ +public abstract class TreeService, T extends TreeEntity> extends CrudService { + + public void save(T entity) { + + @SuppressWarnings("unchecked") + Class entityClass = Reflections.getClassGenricType(getClass(), 1); + + // 如果没有设置父节点,则代表为跟节点,有则获取父节点实体 + if (entity.getParent() == null || StringUtil.isEmpty(entity.getParentId()) + || "0".equals(entity.getParentId())){ + entity.setParent(null); + }else{ + entity.setParent(super.get(entity.getParentId())); + } + if (entity.getParent() == null){ + T parentEntity = null; + try { + parentEntity = entityClass.getConstructor(Long.class).newInstance(0l); + } catch (Exception e) { + throw new ServiceException(e); + } + entity.setParent(parentEntity); + entity.getParent().setParentIds(StringUtils.EMPTY); + } + + // 获取修改前的parentIds,用于更新子节点的parentIds + String oldParentIds = entity.getParentIds(); + + // 设置新的父节点串 + entity.setParentIds(entity.getParent().getParentIds()+entity.getParent().getId()+","); + + // 保存或更新实体 + super.save(entity); + + // 更新子节点 parentIds + T o = null; + try { + o = entityClass.newInstance(); + } catch (Exception e) { + throw new ServiceException(e); + } + o.setParentIds("%,"+entity.getId()+",%"); + List list = dao.findByParentIdsLike(o); + for (T e : list){ + if (e.getParentIds() != null && oldParentIds != null){ + e.setParentIds(e.getParentIds().replace(oldParentIds, entity.getParentIds())); + preUpdateChild(entity, e); + dao.updateParentIds(e); + } + } + + } + + /** + * 预留接口,用户更新子节前调用 + * @param childEntity + */ + protected void preUpdateChild(T entity, T childEntity) { + + } + +} diff --git a/src/main/java/com/nis/web/service/UserService.java b/src/main/java/com/nis/web/service/UserService.java new file mode 100644 index 00000000..7f444d07 --- /dev/null +++ b/src/main/java/com/nis/web/service/UserService.java @@ -0,0 +1,162 @@ +package com.nis.web.service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nis.domain.Page; +import com.nis.domain.SysUser; +import com.nis.exceptions.ServiceException; +import com.nis.util.CacheUtils; +import com.nis.util.StringUtil; +import com.nis.util.StringUtils; +import com.nis.web.dao.UserDao; +import com.nis.web.security.UserUtils; + +@Service +public class UserService extends BaseService { + /**@Resource**/ + @Autowired + private UserDao userDao; + + + /** + * 获取用户 + * @param id + * @return + */ + public SysUser getUser(String id) { + return UserUtils.get(id); + } + + + + public Page findUser(Page page, SysUser user) { + // 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL) + user.getSqlMap().put("dsf", dataScopeFilter(user.getCurrentUser(), "o", "u")); + // 设置分页参数 + user.setPage(page); + // 执行分页查询 + page.setList(userDao.findList(user)); + return page; + } + + + + public SysUser getUserById(Long id) { + return userDao.getUserById(id); + } + + public SysUser getUserByLoginName(String loginName) { + return userDao.getUserByLoginName(loginName); + } + + + public SysUser getUserByIdWithRelation(Long userId) { + return userDao.getUserWithRelation(new SysUser(userId, null)); + } + + + + + public void saveOrUpdate(SysUser user) { + + if (StringUtil.isEmpty(user.getId())) { + user.setCreateTime(new Date()); + user.setStatus(1); + userDao.insert(user); + } else { + SysUser oldUser = userDao.getUserWithRelation(user); + // 清除原用户机构用户缓存 + if (!StringUtil.isEmpty(oldUser.getOffice())) { + CacheUtils.remove(UserUtils.USER_CACHE, UserUtils.USER_CACHE_LIST_BY_OFFICE_ID_ + oldUser.getOffice().getId()); + } + + userDao.update(user); + userDao.deleteUserRole(user.getId()); + + //userDao.deleteUserOffice(user.getId()); + + } + + + /*if (!StringUtil.isEmpty(user.getOffice())) { + user.addOffice(user.getOffice()); + userDao.insertUserOffice(user); + }else { + throw new ServiceException(user.getLoginId() + "没有设置部门!"); + }*/ + + if (!StringUtil.isEmpty(user.getUserRoleList())) { + userDao.insertUserRole(user); + } else { + throw new ServiceException(user.getLoginId() + "没有设置角色!"); + } + + // 将当前用户同步到Activiti + //saveActivitiUser(user); + UserUtils.clearCache(user); + // 清除权限缓存 + //systemRealm.clearAllCachedAuthorizationInfo(); + + + + + } + + + public void deleteUser(SysUser user) { + userDao.delete(user); + // 同步到Activiti + //deleteActivitiUser(user); + // 清除用户缓存 + UserUtils.clearCache(user); +// // 清除权限缓存 +// systemRealm.clearAllCachedAuthorizationInfo(); + } + + + public void updatePasswordById(Long id, String loginId, String newPassword) { + SysUser user = new SysUser(id,loginId); + user.setPassword(StringUtils.entryptPassword(newPassword)); + userDao.updatePasswordById(user); + UserUtils.clearCache(user); +// // 清除权限缓存 +// systemRealm.clearAllCachedAuthorizationInfo(); + } + + + + + public List findUserByRoleId(Long id) { + return userDao.findUserByRoleId(id); + } + + + + public List findUserByOfficeId(Long id) { + return userDao.findUserByOfficeId(id); + } + + + + public void updateUserInfo(SysUser user) { + userDao.updateUserInfo(user); + // 清除用户缓存 + UserUtils.clearCache(user); +// // 清除权限缓存 +// systemRealm.clearAllCachedAuthorizationInfo(); + + + } + + public List findDeptLeader(Integer DeptementId){ + return userDao.findDeptLeader(DeptementId); + } + + +} diff --git a/src/main/java/com/nis/web/test/HelloWorldController.java b/src/main/java/com/nis/web/test/HelloWorldController.java new file mode 100644 index 00000000..57b662da --- /dev/null +++ b/src/main/java/com/nis/web/test/HelloWorldController.java @@ -0,0 +1,123 @@ +package com.nis.web.test; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; + + + + + + + + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.servlet.ModelAndView; + +import com.nis.domain.SysMenu; +import com.nis.web.controller.BaseController; +import com.nis.web.service.UserService; + + +@SessionAttributes(value="userObject") +@RequestMapping("/helloworld") +public class HelloWorldController extends BaseController{ + + + @RequestMapping("/hello") + public String hello(){ + return "success"; + } + + /** + * requestMapping 参数有value(url),method(request method),params,headers + * @return + */ + @RequestMapping(value="/testMethod",method=RequestMethod.POST) + public String testMethod(){ + return "success"; + } + + /** + * params 参数为数组,包含username属性并且age参数的值不为10 + * @return + */ + @RequestMapping(value="/testParams",params={"username","age!=10"},headers={"Accept-Language=en-US"}) + public String testParams() { + return "success"; + } + + /** + * 使用通配符映射请求参数 + * ?一个字符 + * *多个字符 + * **多级目录 + * @return + */ + @RequestMapping("/testAntPath/*/test") + public String testAntPath() { + return "success"; + } + + @RequestMapping("/testPathVariable/{id}") + public String testPathVariable(@PathVariable("id") int id){ + System.out.println(id); + return "success"; + } + + /** + * @RequestParam 参数value代表url参数名,required:是否必须传入,defaultValue,为空时默认值为。 + * + * @param username + * @param age + * @return + */ + @RequestMapping(value="/testRequestParam") + public String testRequestParam(@RequestParam(value="username",required=true) String username,@RequestParam(required=false,defaultValue="0") int age){ + System.out.println(username+":"+age); + return "success"; + } + + + + + + /** + * 通过modelandview 传递数据与视图 + * @param map + * @return + */ + @RequestMapping("/testModelAndView") + public ModelAndView testModelAndView(){ + String viewName = "success"; + ModelAndView modelAndView = new ModelAndView(viewName); + + modelAndView.addObject("time", new Date()); + + return modelAndView; + } + + /** + * 通过自动注解map对象传递数据 + * @param map + * @return + */ + @RequestMapping("/testMap") + public String testMap(Map map){ + map.put("names", Arrays.asList("A","B","C")); + return "success"; + } + + + + + +} diff --git a/src/main/resources/applicationContext-mybatis.xml b/src/main/resources/applicationContext-mybatis.xml new file mode 100644 index 00000000..9ad8c8a6 --- /dev/null +++ b/src/main/resources/applicationContext-mybatis.xml @@ -0,0 +1,349 @@ + + + + + + + + + classpath:jdbc.properties + classpath:nis.properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/applicationContext-shiro.xml b/src/main/resources/applicationContext-shiro.xml new file mode 100644 index 00000000..ae0a624e --- /dev/null +++ b/src/main/resources/applicationContext-shiro.xml @@ -0,0 +1,172 @@ + + + + + Shiro Configuration + + + + + + classpath:jdbc.properties + classpath:nis.properties + + + + + + + + + + + + + + + + + + + + /static/** = anon + /userfiles/** = anon + ${adminPath}/cas = cas + /login = authc + /logout = logout + ${adminPath}/** = user + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 115 + + 46 + + abcde012345678gfynmnpwx + + 5 + + no + + white + + 25 + + Arial, Courier + 104,183,26 + 104,183,26 + com.google.code.kaptcha.impl.ShadowGimpy + com.google.code.kaptcha.impl.NoNoise + + red + + 1 + + + + + + + + + + + diff --git a/src/main/resources/cache/ehcache-local.xml b/src/main/resources/cache/ehcache-local.xml new file mode 100644 index 00000000..8d20f6de --- /dev/null +++ b/src/main/resources/cache/ehcache-local.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/cache/ehcache-rmi.xml b/src/main/resources/cache/ehcache-rmi.xml new file mode 100644 index 00000000..2c093c0d --- /dev/null +++ b/src/main/resources/cache/ehcache-rmi.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/generatorConfig.xml b/src/main/resources/generatorConfig.xml new file mode 100644 index 00000000..f1c4d84a --- /dev/null +++ b/src/main/resources/generatorConfig.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    \ No newline at end of file diff --git a/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties new file mode 100644 index 00000000..df116c85 --- /dev/null +++ b/src/main/resources/jdbc.properties @@ -0,0 +1,123 @@ +#jdbc for oracle +#jdbc.driver=oracle.jdbc.driver.OracleDriver +jdbc.devlop.driver=com.mysql.jdbc.Driver +jdbc.devlop.url=jdbc:mysql://10.0.6.100:3306/web_frame?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull +jdbc.devlop.username=dfh +jdbc.devlop.key=xLtQB+Bp6joOYrVIfBdrRA== +jdbc.devlop.password=/+7+DgxK++ZaD1nIcRRmDg== + +jdbc.product.driver=oracle.jdbc.driver.OracleDriver +#jdbc.product.url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.17)(PORT = 1521))(LOAD_BALANCE = yes)(CONNECT_DATA =(SERVICE_NAME = ORCL)(FAILOVER_MODE =(TYPE = select)(METHOD = basic)(RETRIES = 180)(DELAY = 180)))) +jdbc.product.url=jdbc:oracle:thin:@10.0.6.212:1523:app +#jdbc.product.url=jdbc:oracle:thin:@10.174.196.20:1521:orcl +jdbc.product.username=gk_pz +#jdbc.product.username=z2_5x9pz +jdbc.product.key=3X3ZBejyxS7lkVsHVm9KTw== +jdbc.product.password=sHqDBZIUS0hYZCbC+1xN3A== + +jdbc.log.driver=oracle.jdbc.driver.OracleDriver +jdbc.log.url=jdbc:oracle:thin:@10.0.6.212:1523:app +#jdbc.log.url=jdbc:oracle:thin:@10.174.196.22:1521:orcl +jdbc.log.username=gk_log +#jdbc.log.username=z2_5x9logb +jdbc.log.key=pHl+0udycGQWNZcN68Sv9A== +jdbc.log.password=Z/pVMDXcWNxzVGAX0yRp3Q== + +jdbc.logA.driver=oracle.jdbc.driver.OracleDriver +#jdbc.logA.url=jdbc:oracle:thin:@10.0.6.212:1523:app +jdbc.logA.url=jdbc:oracle:thin:@10.174.196.21:1521:orcl +#jdbc.logA.username=gk_log_a +jdbc.logA.username=z2_5x9loga +jdbc.logA.key=SXHfLUwzPw0cQEc1wzwM4w== +jdbc.logA.password=auvtDoVZpGP6P4OqfBrWAg== + +jdbc.logC.driver=oracle.jdbc.driver.OracleDriver +jdbc.logC.url=jdbc:oracle:thin:@10.0.6.212:1523:app +jdbc.logC.username=gk_log_c +jdbc.logC.key=MvwfUIYP0nLyiQeprHB/5A== +jdbc.logC.password=3HXvsqpbOoNBIkHDS5c9Aw== + +jdbc.jk.driver=oracle.jdbc.driver.OracleDriver +jdbc.jk.url=jdbc:oracle:thin:@10.0.6.212:1523:app +#jdbc.jk.url=jdbc:oracle:thin:@10.174.196.20:1521:orcl +jdbc.jk.username=gk_jk +#jdbc.jk.username=z2_5x9jk +jdbc.jk.key=+FaavsHgQ0qBSebsAoochw== +jdbc.jk.password=wBrNar7gX/iQR7IyCSHuSg== + + + +bonecp.idleMaxAgeInMinutes=60 +bonecp.idleConnectionTestPeriodInMinutes=240 +bonecp.maxConnectionsPerPartition=50 +bonecp.minConnectionsPerPartition=10 +bonecp.partitionCount=3 +bonecp.acquireIncrement=5 +bonecp.statementsCacheSize=100 + +############################################################################################################################################ +#数据中心神通数据库接口配置 +############################################################################################################################################ +bonecp.cluster.idleMaxAgeInMinutes=60 +bonecp.cluster.idleConnectionTestPeriodInMinutes=240 +bonecp.cluster.maxConnectionsPerPartition=10 +bonecp.cluster.minConnectionsPerPartition=5 +bonecp.cluster.partitionCount=3 +bonecp.cluster.acquireIncrement=5 +bonecp.cluster.statementsCacheSize=100 + +jdbc.log.cluster.driver=com.oscar.cluster.BulkDriver +jdbc.log.cluster.url=jdbc:oscarclusterbulk://10.3.129.125:2010/logdb +jdbc.log.cluster.username=xa_z2_iie +jdbc.log.cluster.key=2fa3hQn28+4AOdJXL4Ud2w== +jdbc.log.cluster.password=uut+weC9of5ocPheagBJ4A== +############################################################################################################################################ +#数据中心hive接口配置 +############################################################################################################################################ + +#A版日志库 +jdbc.hiveA.driver=org.apache.hive.jdbc.HiveDriver +jdbc.hiveA.url=jdbc:hive2://10.3.130.24:10000/default +jdbc.hiveA.username=xa_z2_mesa +jdbc.hiveA.key=aC/8fTC9vfPVhCk+CDzbAQ== +#加密后密码 +#jdbc.hiveA.password=V3GyFlG8Mg01bTt8ykFVaA== +#实际密码 +jdbc.hiveA.password=123!@#qwe + + + + + +#B版日志库 +jdbc.hiveB.driver=org.apache.hive.jdbc.HiveDriver +jdbc.hiveB.url=jdbc:hive2://10.3.130.25:10000/default +jdbc.hiveB.username=xa_z2_mesa +jdbc.hiveB.key=aC/8fTC9vfPVhCk+CDzbAQ== +#加密后密码 +#jdbc.hiveB.password=V3GyFlG8Mg01bTt8ykFVaA== +#实际密码 +jdbc.hiveB.password=123!@#qwe + + +bonecp.hive.idleMaxAgeInMinutes=60 +bonecp.hive.idleConnectionTestPeriodInMinutes=240 +bonecp.hive.maxConnectionsPerPartition=20 +bonecp.hive.minConnectionsPerPartition=10 +bonecp.hive.partitionCount=3 +bonecp.hive.acquireIncrement=5 +bonecp.hive.statementsCacheSize=100 + + + +############################################################################################################################################ +#下面的库为测试库,测试完成后会删除 +############################################################################################################################################ + +jdbc.test.driver=oracle.jdbc.driver.OracleDriver +jdbc.test.url=jdbc:oracle:thin:@10.0.6.212:1523:app +jdbc.test.username=gk_pztest +jdbc.test.key=cV9126WUYdojQjvuKNjidw== +jdbc.test.password=OrTu/cLwlduYPW/tmxqNgQ== + + diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties new file mode 100644 index 00000000..b734b9eb --- /dev/null +++ b/src/main/resources/log4j.properties @@ -0,0 +1,22 @@ +#Log4j +log4j.rootLogger=info,console,file +# 控制台日志设置 +log4j.appender.console=org.apache.log4j.ConsoleAppender +#log4j.appender.console.Threshold=info +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=[%d{yyyy-MM-dd HH\:mm\:ss}] [%-5p] [Thread\:%t] %l %x - <%m>%n + +# 文件日志设置 +log4j.appender.file=org.apache.log4j.DailyRollingFileAppender +log4j.appender.file.Threshold=error +log4j.appender.file.encoding=UTF-8 +log4j.appender.file.Append=true +log4j.appender.file.file=${nis.root}/WEB-INF/log/nis.log +log4j.appender.file.DatePattern='.'yyyy-MM-dd +log4j.appender.file.layout=org.apache.log4j.PatternLayout +#log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %X{ip} [%t] %5p %c{1} %m%n +log4j.appender.file.layout.ConversionPattern=[%d{yyyy-MM-dd HH\:mm\:ss}] [%-5p] %X{ip} [Thread\:%t] %l %x - %m%n +#MyBatis 配置,com.nis.web.dao是mybatis接口所在包 +log4j.logger.com.nis.web.dao=debug +#bonecp数据源配置 +log4j.category.com.jolbox=debug,console \ No newline at end of file diff --git a/src/main/resources/matt.properties b/src/main/resources/matt.properties new file mode 100644 index 00000000..11b00259 --- /dev/null +++ b/src/main/resources/matt.properties @@ -0,0 +1,37 @@ +#编译表表名 +compileTabName=CONFIG_COMPILE +#编译表 新增配置时添加的字段 英文逗号分隔 +compileFieldName=COMPILE_ID ,SERVICE ,ACTION , CONT_TYPE, ATTR_TYPE, CONT_LABEL, Task_id, Guarantee_ID, AFFAIR_ID, TOPIC_ID, DO_BLACKLIST ,DO_LOG ,EFFECTIVE_RANGE , ACTIVE_SYS, CONFIG_PERCENT ,CONFIG_OPTION ,START_TIME ,END_TIME , USER_REGION, IS_VALID,GROUP_NUM,FATHER_CFG_ID ,OP_TIME +#编译表 配置状态更新的条件 +compileUpdateCondition=COMPILE_ID + +#分组表表名 +groupTabName=CONFIG_GROUP +#分组表 新增配置时添加的字段 英文逗号分隔 +#注意:第一个字段必需是分组表主键 +groupFieldName=ID,GROUP_ID, COMPILE_ID, IS_VALID, OP_TIME +#分组表主键使用序列号 +groupSeqName=SEQ_CONFIG_GROUP +#分组表 配置状态更新的条件 +groupUpdateCondition=GROUP_ID,COMPILE_ID + +#域配置表配置ID字段名称 +regionId = REGION_ID + +#字符域表 新增配置时添加字段 英文逗号分隔 +strRegionFieldName=REGION_ID, GROUP_ID, KEYWORDS, EXPR_TYPE, MATCH_METHOD , IS_HEXBIN, IS_VALID, OP_TIME + +#增强字符域表 新增配置时添加字段 英文逗号分隔 +strongStrRegionFieldName=REGION_ID, GROUP_ID, DISTRICT, KEYWORDS, EXPR_TYPE, MATCH_METHOD , IS_HEXBIN, IS_VALID, OP_TIME + +#IP域表 新增配置时添加字段 英文逗号分隔 +ipRegionFieldName=REGION_ID, GROUP_ID, ADDR_TYPE, SRC_IP, MASK_SRC_IP, SRC_PORT, MASK_SRC_PORT, DST_IP, MASK_DST_IP, DST_PORT, MASK_DST_PORT, PROTOCOL, DIRECTION, IS_VALID, OP_TIME + +#数值域表 新增配置时添加字段 英文逗号分隔 +numRegionFieldName = REGION_ID,GROUP_ID,LOW_BOUNDARY,UP_BOUNDARY,IS_VALID,OP_TIME + +#是否包含LAST_UPDATE字段 (状态更新中使用) +hasLastUpdate=true + +#配置状态更新的字段 +updateFields=IS_VALID,OP_TIME diff --git a/src/main/resources/mybatis-config.xml b/src/main/resources/mybatis-config.xml new file mode 100644 index 00000000..b8aadf01 --- /dev/null +++ b/src/main/resources/mybatis-config.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties new file mode 100644 index 00000000..3236abb4 --- /dev/null +++ b/src/main/resources/nis.properties @@ -0,0 +1,237 @@ +#\u7ba1\u7406\u57fa\u7840\u8def\u5f84, \u9700\u540c\u6b65\u4fee\u6539\uff1aweb.xml +adminPath=/nis + +#Restful\u670D\u52A1\u9ED8\u8BA4\u8DEF\u5F84� +servicePath=/service + +#\u5206\u9875\u914d\u7f6e +page.pageSize=30 +#\u5206\u9875\u914d\u7f6e +page.count=0 + +#\u7d22\u5f15\u9875\u8def\u5f84 +web.view.index=/nis/index + +#\u7f13\u5b58\u8bbe\u7f6e +ehcache.configFile=cache/ehcache-local.xml +#ehcache.configFile=cache/ehcache-rmi.xml + +#\u4f1a\u8bdd\u8d85\u65f6\uff0c \u5355\u4f4d\uff1a\u6beb\u79d2\uff0c 20m=1200000ms, 30m=1800000ms, 60m=3600000ms +session.sessionTimeout=1800000 +#\u4f1a\u8bdd\u6e05\u7406\u95f4\u9694\u65f6\u95f4\uff0c \u5355\u4f4d\uff1a\u6beb\u79d2\uff0c2m=120000ms\u3002 +session.sessionTimeoutClean=120000 + +#\u9759\u6001\u6587\u4ef6\u540e\u7f00 +web.staticFile=.css,.js,.png,.jpg,.gif,.jpeg,.bmp,.ico,.swf,.psd,.htc,.htm,.html,.crx,.xpi,.exe,.ipa,.apk + +#\u7f51\u7ad9URL\u540e\u7f00 +urlSuffix=.jsp + +#\u89c6\u56fe\u6587\u4ef6\u5b58\u653e\u8def\u5f84 +web.view.prefix=/WEB-INF/views/ +web.view.suffix=.jsp + +#\u662f\u5426\u4e0d\u5141\u8bb8\u5237\u65b0\u4e3b\u9875\uff0c\u4e0d\u5141\u8bb8\u60c5\u51b5\u4e0b\uff0c\u5237\u65b0\u4e3b\u9875\u4f1a\u5bfc\u81f4\u91cd\u65b0\u767b\u5f55 +notAllowRefreshIndex=false + +#\u524d\u7aef\u57fa\u7840\u8def\u5f84 +frontPath=/f + +#\u662F\u5426\u8FD0\u884C\u591A\u8D26\u6237\u540C\u65F6\u767B\u5F55? +user.multiAccountLogin=true + +#\u7855\u6b63\u7ec4\u4ef6\u662f\u5426\u4f7f\u7528\u7f13\u5b58 +supcan.useCache=false + +#\u901a\u77e5\u95f4\u9694\u65f6\u95f4\u8bbe\u7f6e, \u5355\u4f4d\uff1a\u6beb\u79d2, 30s=30000ms, 60s=60000ms +work.notify.remind.interval=60000 + + +#============================# +#===== System settings ======# +#============================# + +#\u4ea7\u54c1\u4fe1\u606f\u8bbe\u7f6e +productName=National Firewall System +copyrightYear=2015 +version=V1.0.0 + + +#\u4e0a\u4f20\u6587\u4ef6\u7edd\u5bf9\u8def\u5f84, \u8def\u5f84\u4e2d\u4e0d\u5141\u8bb8\u5305\u542b\u201cuserfiles\u201d +userfiles.basedir=upload + + +#============================# +#===== webservice settings ======# +#============================# + +#ESB�������ṩ��ͳһ��ַ +webservice.esb.endpoint=http://10.55.0.197:7879/TongServiceProxy_doprocess/services/WebService1/ +#webservice RID +webservice.rid=XFBL + +#webservice user SID +webservice.yh.sid=s_2016_x2000 + +#webservice office SID +webservice.jg.sid=s_2015_x2000 + +#webservice data dict SID +webservice.data.dict.sid=s_2031_x2000 + +#webservice data dict bm SID +webservice.data.dict.bm.sid=s_2032_x2000 + +#webservice data dict code SID +webservice.data.dict.code.sid=s_2042_0660BD17-35E4-4482-AA3A-556F2C024902 + +#webservice request timeout for seconds +webservice.request.timeout=30 + +#�����URL +webservice.jg.service.url=http://10.55.0.155:8080/jgService + +#�û�����URL +webservice.yh.service.url=http://10.55.0.155:8080/ryService + +#����ֵ�URL +webservice.data.dict.service.url=http://10.55.0.155:8080/sjzdService + +#����ֵ����URL +webservice.data.dict.bm.url=http://10.55.0.155:8080/sjzdbmService + +#������URL +webservice.data.code.url=http://10.55.0.155:8080/sjmbService + +#webservice�ӿ����ÿҳ���� +webservice.data.pagesize = 2000 +#webservice��ǰĬ��ҳ +webservice.data.currentpage = 1 + +#webservice ������� +webservice.jgmb.name=CK_T_JC_RY +#webservice �û������ +webservice.yhmb.name=CK_T_YH_RY +#webservice������ ȫ�� +webservice.method.name.ql=getData +# webservice������ ���� +webservice.method.name.zl=getDataZL + +# redis配置文件 +#redis 各个分片的 IP端口 +redis.cluster.host_port=10.0.6.32:6379,10.0.6.32:6380,10.0.6.32:6381,10.0.6.33:6379,10.0.6.33:6380,10.0.6.33:6381 + + +#中心现场redis地址和端口 +#redis.cluster.host_port=10.174.196.33:6379,10.174.196.33:6380,10.174.196.33:6381,10.174.196.34:6379,10.174.196.34:6380,10.174.196.34:6381,10.174.196.35:6379,10.174.196.35:6380,10.174.196.35:6381,10.174.196.36:6379,10.174.196.36:6380,10.174.196.36:6381,10.174.196.37:6379,10.174.196.37:6380,10.174.196.37:6381,10.174.196.38:6379,10.174.196.38:6380,10.174.196.38:6381,10.174.196.39:6379,10.174.196.39:6380,10.174.196.39:6381 + +redis.cluster.connectiontimeout=5000 +redis.cluster.sotimeout=5000 +redis.cluster.maxattempts=3 +#redis连接池相关配置 + +redis.pool.maxtotal=500 + +redis.pool.maxidle=500 +redis.pool.maxwaitmillis=-1 +redis.pool.blockwhenexhausted=true +redis.pool.numtestsperevictionrun=60000 +redis.pool.testonborrow=true +redis.pool.testonreturn=false +redis.pool.testwhileidle=true +redis.pool.timebetweenevictionrunsmillis=60000 +redis.pool.minevictableidletimemillis=60000 +#oracle数据redis存储时间(秒为单位 默认3分钟即180s) +oracleExpire=180 +#hive数据中心数据redis存储时间(秒为单位 默认20分钟即1200s) +hiveExpire=300 +#redis开关 +isOpenRedis=false +#是否将数据中心的日志加入到redis中 +dataCenterOpenRedis=true +#跨域问题允许 的url Access-Control-Allow-Origin *允许所有,设置成其他url只允许该url.不能设置多个url +target_url=* +#跨域问题 3600:表明在3600秒内,不需要再发送预请求,可以缓存该结果 +ACCESS_CONTROL_MAX_AGE=3600 +##########HTTPCLIENT POOL START################### +#从连接池中获取到连接的最长时间 +http.request.connectionRequestTimeout=500 +#5000 +http.request.connectTimeout=5000 +#数据传输的最长时间 +http.request.socketTimeout=30000 +#提交请求前测试连接是否可用 +http.request.staleConnectionCheckEnabled=true + +#设置连接总数 +http.pool.maxTotal=200 +#设置每个地址的并发数 +http.pool.defaultMaxPerRoute=100 +##########HTTPCLIENT POOL END################### +search.dateformat=yyyy-MM-dd HH:mm:ss +search.eshostandport_A=10.0.6.115:9200 +search.eshostandport_B=10.0.6.115:9200 +search.eshostandport_C=10.0.6.115:9200 + +#search.eshostandport=10.174.196.135:9200 + + +#日志是否从hive中查询 +selFromHive=false + +#是否获取数据中心查询记录的总条数 +isGetHiveCount=false + +#每次获取数据中心多少条数据,咱们在对获取的数据进行分页处理 +everyGetHiveDataNum=10000 + +#oracle数据库有问题不从oracle查询数据,所有日志数据均从数据中心查询 +onlySelFromHive=false + +#\u662F\u5426\u67E5\u8BE2\u795E\u901A\u6570\u636E\u5E93 +isSelectCluster=true + +#用户查询日志超过多少小时去数据中心查询 +dataCenterTime=48 + +#是否开启基础验证 +baseValidate=true + +#是否开启业务验证 +serviceValidate=true + + + +#\u65E5\u5FD7\u5B58\u50A8\u672C\u5730\u65F6\u95F4(\u5355\u4F4D\u5C0F\u65F6) +logLocalTime=48 +#\u5B9E\u65F6\u7EDF\u8BA1\u9ED8\u8BA4\u67E5\u8BE2\u672C\u5730\u4E00\u4E2A\u5C0F\u65F6\u7684\u6570\u636E(\u5355\u4F4D\uFF1A\u5C0F\u65F6) +reportLocalTime=1 + +#\u795E\u901A\u6570\u636E\u5E93\u6700\u65E9\u65E5\u5FD7\u65F6\u95F4(A\u7248\u6BEB\u79D2) +#2017-08-13 10:07:25 +clusterAStartTime=1503504000725 +#\u795E\u901A\u6570\u636E\u5E93\u6700\u65E9\u7ED3\u675F\u65F6\u95F4(B\u7248\u6BEB\u79D2) +#2017-08-13 10:07:25 +clusterBStartTime=1503504000725 +############################################################################################################################################ +#设置配置是否入库 +############################################################################################################################################ +isCommit=true +############################################################################################################################################ +############################################################################################################################################ +httpUrl=http://127.0.0.1:8080/gk/service/cfg/v1/configSources +#use elasticsearch or not# +isUseES=false + + + + + + + +#数据中心A版数据库名称,程序中每次查询时使用的数据库名称 use dbA +jdbc.hive.AName=xa_dfbhit_hive +#数据中心B版数据库名称 +jdbc.hive.BName=xa_z2_mesalog_hive + +maxPageSize=100000 diff --git a/src/main/resources/rebel.xml b/src/main/resources/rebel.xml new file mode 100644 index 00000000..e4808e5f --- /dev/null +++ b/src/main/resources/rebel.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/shouhu/shouhu_nignx.sh b/src/main/resources/shouhu/shouhu_nignx.sh new file mode 100644 index 00000000..0bfaddbe --- /dev/null +++ b/src/main/resources/shouhu/shouhu_nignx.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +log_file=/usr/local/nignx/nignx_job.log +echo "/usr/local/nginx/sbin/shouhu_nignx.sh Start At:" >> $log_file +date >> $log_file +#count=1 +while [ 1 -eq 1 ] +do + sleep 30 + if [ `ps -ef | grep nignx | grep -v grep | wc -l` -lt 1 ] + then + echo -n "Down at:" >> $log_file + date >> $log_file + + # --------- start /usr/local/nginx/sbin/nginx + /usr/local/nginx/sbin/nginx + echo "/usr/local/nginx/sbin/nginx Start...." >>$log_file + fi + sleep 1 + + +done \ No newline at end of file diff --git a/src/main/resources/shouhu/shouhu脚本说明.txt b/src/main/resources/shouhu/shouhu脚本说明.txt new file mode 100644 index 00000000..138e54da --- /dev/null +++ b/src/main/resources/shouhu/shouhu脚本说明.txt @@ -0,0 +1,5 @@ +nignx_shouhu.shΪnignxػ̣Ӽһnignx̣ +tomcat_shouhu.shΪtomcatػ̣5Ӽһtomcaṭ +tomcat_resart.shΪtomcatػ̣24Сʱһtomcaṭɱ +tomcat_shouhu.shtomcat_restart.shʹãڵǰؾtomcatڵ¶Բtomcatֻtomcat_shouhu.sh +tomcattomcat_shouhu.shtomcat_restart.sh,Ա֤ؼȺȶԡ \ No newline at end of file diff --git a/src/main/resources/shouhu/tomcat_restart.sh b/src/main/resources/shouhu/tomcat_restart.sh new file mode 100644 index 00000000..50b90ba6 --- /dev/null +++ b/src/main/resources/shouhu/tomcat_restart.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +log_file=/home/dongxiaooyan/apache-tomcat-7.0.59/logs/tomcat_restart_job.log +tomcat_home=/home/dongxiaooyan/apache-tomcat-7.0.59 +echo "/home/dongxiaooyan/apache-tomcat-7.0.59/bin/shouhu.sh Start At:" >> $log_file +date >> $log_file +#count=1 +while [ 1 -eq 1 ] +do + sleep 86400 + #sleep 30 + if [ `ps -ef | grep apache-tomcat-7.0.59 | grep -v grep | wc -l` -lt 1 ] + then + echo -n "Down at:" >> $log_file + date >> $log_file + + # --------- start apache-tomcat-7.0.59 + $tomcat_home/bin/startup.sh + echo "$tomcat_home Start...." >>$log_file + fi + if [ `ps -ef | grep apache-tomcat-7.0.59 | grep -v grep | wc -l` -eq 1 ] + then + echo -n "apache-tomcat-7.0.59 is running at:" >> $log_file + date >> $log_file + echo "Now will restart apache-tomcat-7.0.59 ...." >> $log_file + # --------- Now will to shutdowd the apache-tomcat-7.0.59 + a=`ps axf|grep 'apache-tomcat-7.0.59'|grep -v grep|awk '{print \$1}'`; + echo "tomcat process id: $a " >> $log_file + kill -9 $a; + echo -n "kille tomcat at:" >> $log_file + date >> $log_file + echo "check apache-tomcat-7.0.59 stat " >> $log_file + if [ `ps -ef | grep apache-tomcat-7.0.59 | grep -v grep | wc -l` -lt 1 ] + then + echo "apache-tomcat-7.0.59 has been killed! " >> $log_file + # --------- Now will to start apache-tomcat-7.0.59 + echo "Now will to start apache-tomcat-7.0.59 ...." >> $log_file + $tomcat_home/bin/startup.sh & + echo "$tomcat_home Start...." >>$log_file + if [ `ps -ef | grep apache-tomcat-7.0.59 | grep -v grep | wc -l` -lt 1 ] + then + echo -n "Start apache-tomcat-7.0.59 faild!" >> $log_file + date >> $log_file + fi + fi + fi + sleep 1 + + +done \ No newline at end of file diff --git a/src/main/resources/shouhu/tomcat_shouhu.sh b/src/main/resources/shouhu/tomcat_shouhu.sh new file mode 100644 index 00000000..3637902d --- /dev/null +++ b/src/main/resources/shouhu/tomcat_shouhu.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +log_file=/home/dongxiaooyan/apache-tomcat-7.0.59/logs/tomcat_job.log +echo "/home/dongxiaooyan/apache-tomcat-7.0.59/bin/shouhu.sh Start At:" >> $log_file +date >> $log_file +#count=1 +while [ 1 -eq 1 ] +do + sleep 300 + if [ `ps -ef | grep apache-tomcat-7.0.59 | grep -v grep | wc -l` -lt 1 ] + then + echo -n "Down at:" >> $log_file + date >> $log_file + + # --------- start apache-tomcat-7.0.59 + /home/dongxiaooyan/apache-tomcat-7.0.59/bin/startup.sh + echo "/home/dongxiaooyan/apache-tomcat-7.0.59 Start...." >>$log_file + fi + sleep 1 + + +done \ No newline at end of file diff --git a/src/main/resources/spring-mvc.xml b/src/main/resources/spring-mvc.xml new file mode 100644 index 00000000..d21d78eb --- /dev/null +++ b/src/main/resources/spring-mvc.xml @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + application/json;charset=UTF-8 + + + + + + + + + + + + + + + + + com.nis.domain.BaseEntity + com.nis.supcan.TreeList + com.nis.supcan.Col + com.nis.supcan.Group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + error/403 + error/500 + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/table.properties b/src/main/resources/table.properties new file mode 100644 index 00000000..d565fc94 --- /dev/null +++ b/src/main/resources/table.properties @@ -0,0 +1,84 @@ +#由于数据中心日志表的表名会变动,所以本系统中将日志中心的表名提取到配置文件中方便后期修改 +#\u6570\u636E\u4E2D\u5FC3hive\u6570\u636E\u5E93\u8868\u540D +df_ip_port_log=t_df_ip_port_log +df_http_req_log=t_df_http_req_log_v3 +df_http_res_log=t_df_http_res_log_v3 +df_http_keyword_log=t_df_http_keyword_log + +df_mail_log=t_df_mail_log +df_dns_log=t_df_dns_log +df_ftp_log=t_df_ftp_log +df_pptp_log=t_df_pptp_log +df_l2tp_log=t_df_l2tp_log +df_ipsec_log=t_df_ipsec_log +df_openvpn_log=t_df_openvpn_log +df_ssh_log=t_df_ssh_log +df_ssl_log=t_df_ssl_log +df_tunnel_random_log=t_df_tunnel_random_log + +#\u6570\u636E\u4E2D\u5FC3\u795E\u901A\u6570\u636E\u5E93A\u7248\u8868\u540D +DfIpPortLogA=t_xa_df_ip_port_log_hit_mpp +DfHttpReqLogA=t_xa_df_http_req_log_hit_mpp +DfHttpResLogA=t_xa_df_http_res_log_hit_mpp +DfHttpKeywordLogA=t_xa_df_http_keyword_log_hit_mpp + +DfMailLogA=t_xa_df_mail_log_hit_mpp +DfDnsLogA=t_xa_df_dns_log_hit_mpp +DfFtpLogA=t_xa_df_ftp_log_hit_mpp +DfPptpLogA=t_xa_df_pptp_log_hit_mpp +DfL2tpLogA=t_xa_df_l2tp_log_hit_mpp +DfIpsecLogA=t_xa_df_ipsec_log_hit_mpp +DfOpenvpnLogA=t_xa_df_openvpn_log_hit_mpp +DfSshLogA=t_xa_df_ssh_log_hit_mpp +DfSslLogA=t_xa_df_ssl_log_hit_mpp +DfTunnelRandomLogA=t_xa_df_tunnel_random_log_hit_mpp + +#\u795E\u901A\u6570\u636E\u5E93B\u7248\u8868\u540D +DfIpPortLogB=t_xa_df_ip_port_log_mpp +DfHttpReqLogB=t_xa_df_http_req_log_mpp +DfHttpResLogB=t_xa_df_http_res_log_mpp +DfHttpKeywordLogB=t_xa_df_http_keyword_log_mpp + +DfMailLogB=t_xa_df_mail_log_mpp +DfDnsLogB=t_xa_df_dns_log_mpp +DfFtpLogB=t_xa_df_ftp_log_mpp +DfPptpLogB=t_xa_df_pptp_log_mpp +DfL2tpLogB=t_xa_df_l2tp_log_mpp +DfIpsecLogB=t_xa_df_ipsec_log_mpp +DfOpenvpnLogB=t_xa_df_openvpn_log_mpp +DfSshLogB=t_xa_df_ssh_log_mpp +DfSslLogB=t_xa_df_ssl_log_mpp +DfTunnelRandomLogB=t_xa_df_tunnel_random_log_mpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/ckfinder.xml b/src/main/webapp/WEB-INF/ckfinder.xml new file mode 100644 index 00000000..5fc575d6 --- /dev/null +++ b/src/main/webapp/WEB-INF/ckfinder.xml @@ -0,0 +1,90 @@ + + true + + /userfiles/ + + + 1024 + 768 + 80 + UTF-8 + false + false + CKFinder_UserRole + true + true + true + html,htm,xml,js + + .* + CVS + + + .* + + + + + %BASE_URL%files/ + %BASE_DIR%files + 5M + 7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip + + + + %BASE_URL%images/ + %BASE_DIR%images + 2M + bmp,gif,jpeg,jpg,png + + + + %BASE_URL%flash/ + %BASE_DIR%flash + 2M + swf,flv + + + + + + * + * + / + false + false + false + false + false + false + false + false + + + + true + %BASE_URL%_thumbs/ + %BASE_DIR%_thumbs + true + 320 + 240 + 80 + + + + imageresize + com.ckfinder.connector.plugins.ImageResize + + + + + + + + fileeditor + com.ckfinder.connector.plugins.FileEditor + + + + com.ckfinder.connector.configuration.ConfigurationPathBuilder + diff --git a/src/main/webapp/WEB-INF/include/header.jsp b/src/main/webapp/WEB-INF/include/header.jsp new file mode 100644 index 00000000..10fffebe --- /dev/null +++ b/src/main/webapp/WEB-INF/include/header.jsp @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/include/taglib.jsp b/src/main/webapp/WEB-INF/include/taglib.jsp new file mode 100644 index 00000000..453003d4 --- /dev/null +++ b/src/main/webapp/WEB-INF/include/taglib.jsp @@ -0,0 +1,9 @@ +<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> +<%@ taglib prefix="sys" tagdir="/WEB-INF/tags/sys" %> + + diff --git a/src/main/webapp/WEB-INF/sitemesh3.xml b/src/main/webapp/WEB-INF/sitemesh3.xml new file mode 100644 index 00000000..6d06c6d0 --- /dev/null +++ b/src/main/webapp/WEB-INF/sitemesh3.xml @@ -0,0 +1,36 @@ + + + + + text/html + application/vnd.wap.xhtml+xml + application/xhtml+xml + + + + + + + + + + + + + + + + + /articles/* + /decorators/article.html + /decorators/two-page-layout.html + /decorators/common.html + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/sys/ckeditor.tag b/src/main/webapp/WEB-INF/tags/sys/ckeditor.tag new file mode 100644 index 00000000..cb14c52b --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/sys/ckeditor.tag @@ -0,0 +1,13 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> +<%@ attribute name="replace" type="java.lang.String" required="true" description="需要替换的textarea编号"%> +<%@ attribute name="uploadPath" type="java.lang.String" required="false" description="文件上传路径,路径后自动添加年份。若不指定,则编辑器不可上传文件"%> +<%@ attribute name="height" type="java.lang.String" required="false" description="编辑器高度"%> + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/sys/ckfinder.tag b/src/main/webapp/WEB-INF/tags/sys/ckfinder.tag new file mode 100644 index 00000000..98e66f7e --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/sys/ckfinder.tag @@ -0,0 +1,70 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> +<%@ attribute name="input" type="java.lang.String" required="true" description="输入框"%> +<%@ attribute name="type" type="java.lang.String" required="true" description="files、images、flash、thumb"%> +<%@ attribute name="uploadPath" type="java.lang.String" required="true" description="打开文件管理的上传路径"%> +<%@ attribute name="selectMultiple" type="java.lang.Boolean" required="false" description="是否允许多选"%> +<%@ attribute name="readonly" type="java.lang.Boolean" required="false" description="是否查看模式"%> +<%@ attribute name="maxWidth" type="java.lang.String" required="false" description="最大宽度"%> +<%@ attribute name="maxHeight" type="java.lang.String" required="false" description="最大高度"%> +
      ${selectMultiple?'添加':'选择'} 清除 + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/sys/iconselect.tag b/src/main/webapp/WEB-INF/tags/sys/iconselect.tag new file mode 100644 index 00000000..76b74934 --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/sys/iconselect.tag @@ -0,0 +1,27 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> +<%@ attribute name="id" type="java.lang.String" required="true" description="编号"%> +<%@ attribute name="name" type="java.lang.String" required="true" description="输入框名称"%> +<%@ attribute name="value" type="java.lang.String" required="true" description="输入框值"%> +   +选择   + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/sys/message.tag b/src/main/webapp/WEB-INF/tags/sys/message.tag new file mode 100644 index 00000000..1c220fff --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/sys/message.tag @@ -0,0 +1,10 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> +<%@ attribute name="content" type="java.lang.String" required="true" description="消息内容"%> +<%@ attribute name="type" type="java.lang.String" description="消息类型:info、success、warning、error、loading"%> + + + +
      ${content}
      + +
      \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/sys/tableSort.tag b/src/main/webapp/WEB-INF/tags/sys/tableSort.tag new file mode 100644 index 00000000..06149217 --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/sys/tableSort.tag @@ -0,0 +1,33 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> +<%@ attribute name="id" type="java.lang.String" required="true"%> +<%@ attribute name="name" type="java.lang.String" required="true"%> +<%@ attribute name="value" type="java.lang.String" required="true"%> +<%@ attribute name="callback" type="java.lang.String" required="true"%> + +<%-- 使用方法: 1.将本tag写在查询的from里;2.在需要排序th列class上添加:sort-column + 排序字段名;3.后台sql添加排序引用page.orderBy;实例文件:userList.jsp、UserDao.xml --%> + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/sys/treeselect.tag b/src/main/webapp/WEB-INF/tags/sys/treeselect.tag new file mode 100644 index 00000000..6ba12b63 --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/sys/treeselect.tag @@ -0,0 +1,115 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> +<%@ attribute name="id" type="java.lang.String" required="true" description="编号"%> +<%@ attribute name="name" type="java.lang.String" required="true" description="隐藏域名称(ID)"%> +<%@ attribute name="value" type="java.lang.String" required="true" description="隐藏域值(ID)"%> +<%@ attribute name="labelName" type="java.lang.String" required="true" description="输入框名称(Name)"%> +<%@ attribute name="labelValue" type="java.lang.String" required="true" description="输入框值(Name)"%> +<%@ attribute name="title" type="java.lang.String" required="true" description="选择框标题"%> +<%@ attribute name="url" type="java.lang.String" required="true" description="树结构数据地址"%> +<%@ attribute name="checked" type="java.lang.Boolean" required="false" description="是否显示复选框,如果不需要返回父节点,请设置notAllowSelectParent为true"%> +<%@ attribute name="extId" type="java.lang.String" required="false" description="排除掉的编号(不能选择的编号)"%> +<%@ attribute name="isAll" type="java.lang.Boolean" required="false" description="是否列出全部数据,设置true则不进行数据权限过滤(目前仅对Office有效)"%> +<%@ attribute name="notAllowSelectRoot" type="java.lang.Boolean" required="false" description="不允许选择根节点"%> +<%@ attribute name="notAllowSelectParent" type="java.lang.Boolean" required="false" description="不允许选择父节点"%> +<%@ attribute name="module" type="java.lang.String" required="false" description="过滤栏目模型(只显示指定模型,仅针对CMS的Category树)"%> +<%@ attribute name="selectScopeModule" type="java.lang.Boolean" required="false" description="选择范围内的模型(控制不能选择公共模型,不能选择本栏目外的模型)(仅针对CMS的Category树)"%> +<%@ attribute name="allowClear" type="java.lang.Boolean" required="false" description="是否允许清除"%> +<%@ attribute name="allowInput" type="java.lang.Boolean" required="false" description="文本框可填写"%> +<%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式"%> +<%@ attribute name="cssStyle" type="java.lang.String" required="false" description="css样式"%> +<%@ attribute name="smallBtn" type="java.lang.Boolean" required="false" description="缩小按钮显示"%> +<%@ attribute name="hideBtn" type="java.lang.Boolean" required="false" description="是否显示按钮"%> +<%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%> +<%@ attribute name="dataMsgRequired" type="java.lang.String" required="false" description=""%> +<%@ attribute name="selectDepartment" type="java.lang.String" required="false" description="不允许选择部门,自办部门,转办部门"%> +<%@ attribute name="showParentName" type="java.lang.String" required="false" description="显示父类名称"%> +
      + +      +
      + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tags/sys/validateCode.tag b/src/main/webapp/WEB-INF/tags/sys/validateCode.tag new file mode 100644 index 00000000..a4580eb9 --- /dev/null +++ b/src/main/webapp/WEB-INF/tags/sys/validateCode.tag @@ -0,0 +1,9 @@ +<%@ tag language="java" pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> +<%@ attribute name="name" type="java.lang.String" required="true" description="验证码输入框名称"%> +<%@ attribute name="inputCssStyle" type="java.lang.String" required="false" description="验证框样式"%> +<%@ attribute name="imageCssStyle" type="java.lang.String" required="false" description="验证码图片样式"%> +<%@ attribute name="buttonCssStyle" type="java.lang.String" required="false" description="看不清按钮样式"%> + + +看不清 \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/tlds/c.tld b/src/main/webapp/WEB-INF/tlds/c.tld new file mode 100644 index 00000000..eeef5a76 --- /dev/null +++ b/src/main/webapp/WEB-INF/tlds/c.tld @@ -0,0 +1,563 @@ + + + + + JSTL 1.1 core library + JSTL core + 1.1 + c + http://java.sun.com/jsp/jstl/core + + + + Provides core validation features for JSTL tags. + + + org.apache.taglibs.standard.tlv.JstlCoreTLV + + + + + + Catches any Throwable that occurs in its body and optionally + exposes it. + + catch + org.apache.taglibs.standard.tag.common.core.CatchTag + JSP + + +Name of the exported scoped variable for the +exception thrown from a nested action. The type of the +scoped variable is the type of the exception thrown. + + var + false + false + + + + + + Simple conditional tag that establishes a context for + mutually exclusive conditional operations, marked by + <when> and <otherwise> + + choose + org.apache.taglibs.standard.tag.common.core.ChooseTag + JSP + + + + + Simple conditional tag, which evalutes its body if the + supplied condition is true and optionally exposes a Boolean + scripting variable representing the evaluation of this condition + + if + org.apache.taglibs.standard.tag.rt.core.IfTag + JSP + + +The test condition that determines whether or +not the body content should be processed. + + test + true + true + boolean + + + +Name of the exported scoped variable for the +resulting value of the test condition. The type +of the scoped variable is Boolean. + + var + false + false + + + +Scope for var. + + scope + false + false + + + + + + Retrieves an absolute or relative URL and exposes its contents + to either the page, a String in 'var', or a Reader in 'varReader'. + + import + org.apache.taglibs.standard.tag.rt.core.ImportTag + org.apache.taglibs.standard.tei.ImportTEI + JSP + + +The URL of the resource to import. + + url + true + true + + + +Name of the exported scoped variable for the +resource's content. The type of the scoped +variable is String. + + var + false + false + + + +Scope for var. + + scope + false + false + + + +Name of the exported scoped variable for the +resource's content. The type of the scoped +variable is Reader. + + varReader + false + false + + + +Name of the context when accessing a relative +URL resource that belongs to a foreign +context. + + context + false + true + + + +Character encoding of the content at the input +resource. + + charEncoding + false + true + + + + + + The basic iteration tag, accepting many different + collection types and supporting subsetting and other + functionality + + forEach + org.apache.taglibs.standard.tag.rt.core.ForEachTag + org.apache.taglibs.standard.tei.ForEachTEI + JSP + + +Collection of items to iterate over. + + items + false + true + java.lang.Object + + + +If items specified: +Iteration begins at the item located at the +specified index. First item of the collection has +index 0. +If items not specified: +Iteration begins with index set at the value +specified. + + begin + false + true + int + + + +If items specified: +Iteration ends at the item located at the +specified index (inclusive). +If items not specified: +Iteration ends when index reaches the value +specified. + + end + false + true + int + + + +Iteration will only process every step items of +the collection, starting with the first one. + + step + false + true + int + + + +Name of the exported scoped variable for the +current item of the iteration. This scoped +variable has nested visibility. Its type depends +on the object of the underlying collection. + + var + false + false + + + +Name of the exported scoped variable for the +status of the iteration. Object exported is of type +javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested +visibility. + + varStatus + false + false + + + + + + Iterates over tokens, separated by the supplied delimeters + + forTokens + org.apache.taglibs.standard.tag.rt.core.ForTokensTag + JSP + + +String of tokens to iterate over. + + items + true + true + java.lang.String + + + +The set of delimiters (the characters that +separate the tokens in the string). + + delims + true + true + java.lang.String + + + +Iteration begins at the token located at the +specified index. First token has index 0. + + begin + false + true + int + + + +Iteration ends at the token located at the +specified index (inclusive). + + end + false + true + int + + + +Iteration will only process every step tokens +of the string, starting with the first one. + + step + false + true + int + + + +Name of the exported scoped variable for the +current item of the iteration. This scoped +variable has nested visibility. + + var + false + false + + + +Name of the exported scoped variable for the +status of the iteration. Object exported is of +type +javax.servlet.jsp.jstl.core.LoopTag +Status. This scoped variable has nested +visibility. + + varStatus + false + false + + + + + + Like <%= ... >, but for expressions. + + out + org.apache.taglibs.standard.tag.rt.core.OutTag + JSP + + +Expression to be evaluated. + + value + true + true + + + +Default value if the resulting value is null. + + default + false + true + + + +Determines whether characters <,>,&,'," in the +resulting string should be converted to their +corresponding character entity codes. Default value is +true. + + escapeXml + false + true + + + + + + + Subtag of <choose> that follows <when> tags + and runs only if all of the prior conditions evaluated to + 'false' + + otherwise + org.apache.taglibs.standard.tag.common.core.OtherwiseTag + JSP + + + + + Adds a parameter to a containing 'import' tag's URL. + + param + org.apache.taglibs.standard.tag.rt.core.ParamTag + JSP + + +Name of the query string parameter. + + name + true + true + + + +Value of the parameter. + + value + false + true + + + + + + Redirects to a new URL. + + redirect + org.apache.taglibs.standard.tag.rt.core.RedirectTag + JSP + + +The URL of the resource to redirect to. + + url + false + true + + + +Name of the context when redirecting to a relative URL +resource that belongs to a foreign context. + + context + false + true + + + + + + Removes a scoped variable (from a particular scope, if specified). + + remove + org.apache.taglibs.standard.tag.common.core.RemoveTag + empty + + +Name of the scoped variable to be removed. + + var + true + false + + + +Scope for var. + + scope + false + false + + + + + + Sets the result of an expression evaluation in a 'scope' + + set + org.apache.taglibs.standard.tag.rt.core.SetTag + JSP + + +Name of the exported scoped variable to hold the value +specified in the action. The type of the scoped variable is +whatever type the value expression evaluates to. + + var + false + false + + + +Expression to be evaluated. + + value + false + true + + + +Target object whose property will be set. Must evaluate to +a JavaBeans object with setter property property, or to a +java.util.Map object. + + target + false + true + + + +Name of the property to be set in the target object. + + property + false + true + + + +Scope for var. + + scope + false + false + + + + + + Creates a URL with optional query parameters. + + url + org.apache.taglibs.standard.tag.rt.core.UrlTag + JSP + + +Name of the exported scoped variable for the +processed url. The type of the scoped variable is +String. + + var + false + false + + + +Scope for var. + + scope + false + false + + + +URL to be processed. + + value + false + true + + + +Name of the context when specifying a relative URL +resource that belongs to a foreign context. + + context + false + true + + + + + + Subtag of <choose> that includes its body if its + condition evalutes to 'true' + + when + org.apache.taglibs.standard.tag.rt.core.WhenTag + JSP + + +The test condition that determines whether or not the +body content should be processed. + + test + true + true + boolean + + + + diff --git a/src/main/webapp/WEB-INF/tlds/fmt.tld b/src/main/webapp/WEB-INF/tlds/fmt.tld new file mode 100644 index 00000000..70bdbc72 --- /dev/null +++ b/src/main/webapp/WEB-INF/tlds/fmt.tld @@ -0,0 +1,671 @@ + + + + + JSTL 1.1 i18n-capable formatting library + JSTL fmt + 1.1 + fmt + http://java.sun.com/jsp/jstl/fmt + + + + Provides core validation features for JSTL tags. + + + org.apache.taglibs.standard.tlv.JstlFmtTLV + + + + + + Sets the request character encoding + + requestEncoding + org.apache.taglibs.standard.tag.rt.fmt.RequestEncodingTag + empty + + +Name of character encoding to be applied when +decoding request parameters. + + value + false + true + + + + + + Stores the given locale in the locale configuration variable + + setLocale + org.apache.taglibs.standard.tag.rt.fmt.SetLocaleTag + empty + + +A String value is interpreted as the +printable representation of a locale, which +must contain a two-letter (lower-case) +language code (as defined by ISO-639), +and may contain a two-letter (upper-case) +country code (as defined by ISO-3166). +Language and country codes must be +separated by hyphen (-) or underscore +(_). + + value + true + true + + + +Vendor- or browser-specific variant. +See the java.util.Locale javadocs for +more information on variants. + + variant + false + true + + + +Scope of the locale configuration variable. + + scope + false + false + + + + + + Specifies the time zone for any time formatting or parsing actions + nested in its body + + timeZone + org.apache.taglibs.standard.tag.rt.fmt.TimeZoneTag + JSP + + +The time zone. A String value is interpreted as +a time zone ID. This may be one of the time zone +IDs supported by the Java platform (such as +"America/Los_Angeles") or a custom time zone +ID (such as "GMT-8"). See +java.util.TimeZone for more information on +supported time zone formats. + + value + true + true + + + + + + Stores the given time zone in the time zone configuration variable + + setTimeZone + org.apache.taglibs.standard.tag.rt.fmt.SetTimeZoneTag + empty + + +The time zone. A String value is interpreted as +a time zone ID. This may be one of the time zone +IDs supported by the Java platform (such as +"America/Los_Angeles") or a custom time zone +ID (such as "GMT-8"). See java.util.TimeZone for +more information on supported time zone +formats. + + value + true + true + + + +Name of the exported scoped variable which +stores the time zone of type +java.util.TimeZone. + + var + false + false + + + +Scope of var or the time zone configuration +variable. + + scope + false + false + + + + + + Loads a resource bundle to be used by its tag body + + bundle + org.apache.taglibs.standard.tag.rt.fmt.BundleTag + JSP + + +Resource bundle base name. This is the bundle's +fully-qualified resource name, which has the same +form as a fully-qualified class name, that is, it uses +"." as the package component separator and does not +have any file type (such as ".class" or ".properties") +suffix. + + basename + true + true + + + +Prefix to be prepended to the value of the message +key of any nested <fmt:message> action. + + prefix + false + true + + + + + + Loads a resource bundle and stores it in the named scoped variable or + the bundle configuration variable + + setBundle + org.apache.taglibs.standard.tag.rt.fmt.SetBundleTag + empty + + +Resource bundle base name. This is the bundle's +fully-qualified resource name, which has the same +form as a fully-qualified class name, that is, it uses +"." as the package component separator and does not +have any file type (such as ".class" or ".properties") +suffix. + + basename + true + true + + + +Name of the exported scoped variable which stores +the i18n localization context of type +javax.servlet.jsp.jstl.fmt.LocalizationC +ontext. + + var + false + false + + + +Scope of var or the localization context +configuration variable. + + scope + false + false + + + + + + Maps key to localized message and performs parametric replacement + + message + org.apache.taglibs.standard.tag.rt.fmt.MessageTag + JSP + + +Message key to be looked up. + + key + false + true + + + +Localization context in whose resource +bundle the message key is looked up. + + bundle + false + true + + + +Name of the exported scoped variable +which stores the localized message. + + var + false + false + + + +Scope of var. + + scope + false + false + + + + + + Supplies an argument for parametric replacement to a containing + <message> tag + + param + org.apache.taglibs.standard.tag.rt.fmt.ParamTag + JSP + + +Argument used for parametric replacement. + + value + false + true + + + + + + Formats a numeric value as a number, currency, or percentage + + formatNumber + org.apache.taglibs.standard.tag.rt.fmt.FormatNumberTag + JSP + + +Numeric value to be formatted. + + value + false + true + + + +Specifies whether the value is to be +formatted as number, currency, or +percentage. + + type + false + true + + + +Custom formatting pattern. + + pattern + false + true + + + +ISO 4217 currency code. Applied only +when formatting currencies (i.e. if type is +equal to "currency"); ignored otherwise. + + currencyCode + false + true + + + +Currency symbol. Applied only when +formatting currencies (i.e. if type is equal +to "currency"); ignored otherwise. + + currencySymbol + false + true + + + +Specifies whether the formatted output +will contain any grouping separators. + + groupingUsed + false + true + + + +Maximum number of digits in the integer +portion of the formatted output. + + maxIntegerDigits + false + true + + + +Minimum number of digits in the integer +portion of the formatted output. + + minIntegerDigits + false + true + + + +Maximum number of digits in the +fractional portion of the formatted output. + + maxFractionDigits + false + true + + + +Minimum number of digits in the +fractional portion of the formatted output. + + minFractionDigits + false + true + + + +Name of the exported scoped variable +which stores the formatted result as a +String. + + var + false + false + + + +Scope of var. + + scope + false + false + + + + + + Parses the string representation of a number, currency, or percentage + + parseNumber + org.apache.taglibs.standard.tag.rt.fmt.ParseNumberTag + JSP + + +String to be parsed. + + value + false + true + + + +Specifies whether the string in the value +attribute should be parsed as a number, +currency, or percentage. + + type + false + true + + + +Custom formatting pattern that determines +how the string in the value attribute is to be +parsed. + + pattern + false + true + + + +Locale whose default formatting pattern (for +numbers, currencies, or percentages, +respectively) is to be used during the parse +operation, or to which the pattern specified +via the pattern attribute (if present) is +applied. + + parseLocale + false + true + + + +Specifies whether just the integer portion of +the given value should be parsed. + + integerOnly + false + true + + + +Name of the exported scoped variable which +stores the parsed result (of type +java.lang.Number). + + var + false + false + + + +Scope of var. + + scope + false + false + + + + + + Formats a date and/or time using the supplied styles and pattern + + formatDate + org.apache.taglibs.standard.tag.rt.fmt.FormatDateTag + empty + + +Date and/or time to be formatted. + + value + true + true + + + +Specifies whether the time, the date, or both +the time and date components of the given +date are to be formatted. + + type + false + true + + + +Predefined formatting style for dates. Follows +the semantics defined in class +java.text.DateFormat. Applied only +when formatting a date or both a date and +time (i.e. if type is missing or is equal to +"date" or "both"); ignored otherwise. + + dateStyle + false + true + + + +Predefined formatting style for times. Follows +the semantics defined in class +java.text.DateFormat. Applied only +when formatting a time or both a date and +time (i.e. if type is equal to "time" or "both"); +ignored otherwise. + + timeStyle + false + true + + + +Custom formatting style for dates and times. + + pattern + false + true + + + +Time zone in which to represent the formatted +time. + + timeZone + false + true + + + +Name of the exported scoped variable which +stores the formatted result as a String. + + var + false + false + + + +Scope of var. + + scope + false + false + + + + + + Parses the string representation of a date and/or time + + parseDate + org.apache.taglibs.standard.tag.rt.fmt.ParseDateTag + JSP + + +Date string to be parsed. + + value + false + true + + + +Specifies whether the date string in the +value attribute is supposed to contain a +time, a date, or both. + + type + false + true + + + +Predefined formatting style for days +which determines how the date +component of the date string is to be +parsed. Applied only when formatting a +date or both a date and time (i.e. if type +is missing or is equal to "date" or "both"); +ignored otherwise. + + dateStyle + false + true + + + +Predefined formatting styles for times +which determines how the time +component in the date string is to be +parsed. Applied only when formatting a +time or both a date and time (i.e. if type +is equal to "time" or "both"); ignored +otherwise. + + timeStyle + false + true + + + +Custom formatting pattern which +determines how the date string is to be +parsed. + + pattern + false + true + + + +Time zone in which to interpret any time +information in the date string. + + timeZone + false + true + + + +Locale whose predefined formatting styles +for dates and times are to be used during +the parse operation, or to which the +pattern specified via the pattern +attribute (if present) is applied. + + parseLocale + false + true + + + +Name of the exported scoped variable in +which the parsing result (of type +java.util.Date) is stored. + + var + false + false + + + +Scope of var. + + scope + false + false + + + + diff --git a/src/main/webapp/WEB-INF/tlds/fn.tld b/src/main/webapp/WEB-INF/tlds/fn.tld new file mode 100644 index 00000000..b2a6b307 --- /dev/null +++ b/src/main/webapp/WEB-INF/tlds/fn.tld @@ -0,0 +1,207 @@ + + + + + JSTL 1.1 functions library + JSTL functions + 1.1 + fn + http://java.sun.com/jsp/jstl/functions + + + + Tests if an input string contains the specified substring. + + contains + org.apache.taglibs.standard.functions.Functions + boolean contains(java.lang.String, java.lang.String) + + <c:if test="${fn:contains(name, searchString)}"> + + + + + + Tests if an input string contains the specified substring in a case insensitive way. + + containsIgnoreCase + org.apache.taglibs.standard.functions.Functions + boolean containsIgnoreCase(java.lang.String, java.lang.String) + + <c:if test="${fn:containsIgnoreCase(name, searchString)}"> + + + + + + Tests if an input string ends with the specified suffix. + + endsWith + org.apache.taglibs.standard.functions.Functions + boolean endsWith(java.lang.String, java.lang.String) + + <c:if test="${fn:endsWith(filename, ".txt")}"> + + + + + + Escapes characters that could be interpreted as XML markup. + + escapeXml + org.apache.taglibs.standard.functions.Functions + java.lang.String escapeXml(java.lang.String) + + ${fn:escapeXml(param:info)} + + + + + + Returns the index withing a string of the first occurrence of a specified substring. + + indexOf + org.apache.taglibs.standard.functions.Functions + int indexOf(java.lang.String, java.lang.String) + + ${fn:indexOf(name, "-")} + + + + + + Joins all elements of an array into a string. + + join + org.apache.taglibs.standard.functions.Functions + java.lang.String join(java.lang.String[], java.lang.String) + + ${fn:join(array, ";")} + + + + + + Returns the number of items in a collection, or the number of characters in a string. + + length + org.apache.taglibs.standard.functions.Functions + int length(java.lang.Object) + + You have ${fn:length(shoppingCart.products)} in your shopping cart. + + + + + + Returns a string resulting from replacing in an input string all occurrences + of a "before" string into an "after" substring. + + replace + org.apache.taglibs.standard.functions.Functions + java.lang.String replace(java.lang.String, java.lang.String, java.lang.String) + + ${fn:replace(text, "-", "•")} + + + + + + Splits a string into an array of substrings. + + split + org.apache.taglibs.standard.functions.Functions + java.lang.String[] split(java.lang.String, java.lang.String) + + ${fn:split(customerNames, ";")} + + + + + + Tests if an input string starts with the specified prefix. + + startsWith + org.apache.taglibs.standard.functions.Functions + boolean startsWith(java.lang.String, java.lang.String) + + <c:if test="${fn:startsWith(product.id, "100-")}"> + + + + + + Returns a subset of a string. + + substring + org.apache.taglibs.standard.functions.Functions + java.lang.String substring(java.lang.String, int, int) + + P.O. Box: ${fn:substring(zip, 6, -1)} + + + + + + Returns a subset of a string following a specific substring. + + substringAfter + org.apache.taglibs.standard.functions.Functions + java.lang.String substringAfter(java.lang.String, java.lang.String) + + P.O. Box: ${fn:substringAfter(zip, "-")} + + + + + + Returns a subset of a string before a specific substring. + + substringBefore + org.apache.taglibs.standard.functions.Functions + java.lang.String substringBefore(java.lang.String, java.lang.String) + + Zip (without P.O. Box): ${fn:substringBefore(zip, "-")} + + + + + + Converts all of the characters of a string to lower case. + + toLowerCase + org.apache.taglibs.standard.functions.Functions + java.lang.String toLowerCase(java.lang.String) + + Product name: ${fn.toLowerCase(product.name)} + + + + + + Converts all of the characters of a string to upper case. + + toUpperCase + org.apache.taglibs.standard.functions.Functions + java.lang.String toUpperCase(java.lang.String) + + Product name: ${fn.UpperCase(product.name)} + + + + + + Removes white spaces from both ends of a string. + + trim + org.apache.taglibs.standard.functions.Functions + java.lang.String trim(java.lang.String) + + Name: ${fn.trim(name)} + + + + diff --git a/src/main/webapp/WEB-INF/tlds/fns.tld b/src/main/webapp/WEB-INF/tlds/fns.tld new file mode 100644 index 00000000..d2d0262a --- /dev/null +++ b/src/main/webapp/WEB-INF/tlds/fns.tld @@ -0,0 +1,282 @@ + + + + + JSTL 1.1 functions library + JSTL functions sys + 1.1 + fns + http://java.sun.com/jsp/jstl/functionss + + + + 获取配置 + getStringProperty + com.nis.util.Configurations + java.lang.String getStringProperty(java.lang.String,java.lang.String) + ${getStringProperty(key,defaultValue)} + + + + + + 获取当前用户对象 + getUser + com.nis.web.security.UserUtils + com.nis.domain.SysUser getUser() + ${fns:getUser()} + + + + 根据编码获取用户对象 + getUserById + com.nis.web.security.UserUtils + com.nis.domain.SysUser get(java.lang.String) + ${fns:getUserById(id)} + + + + 获取授权用户信息 + getPrincipal + com.nis.web.security.UserUtils + com.nis.web.security.SystemAuthorizingRealm.Principal getPrincipal() + ${fns:getPrincipal()} + + + + 获取当前用户的菜单对象列表 + getMenuList + com.nis.web.security.UserUtils + java.util.List getMenuList() + ${fns:getMenuList()} + + + + 获取用户的菜单名称 + getMenuNameById + com.nis.web.security.UserUtils + java.lang.String getMenuNameById(java.lang.String) + ${getMenuNameById(id)} + + + + 获取当前用户的菜单树对象列表 + getMenuTreeList + com.nis.web.security.UserUtils + java.util.List getMenuTreeList() + ${fns:getMenuTreeList()} + + + + 获取当前用户的区域对象列表 + getAreaList + com.nis.web.security.UserUtils + java.util.List getAreaList() + ${fns:getAreaList()} + + + + 获取当前用户的部门对象列表 + getOfficeList + com.nis.web.security.UserUtils + java.util.List getOfficeList() + ${fns:getOfficeList()} + + + + 获取当前用户缓存 + getCache + com.nis.web.security.UserUtils + java.lang.Object getCache(java.lang.String, java.lang.Object) + ${fns:getCache(cacheName, defaultValue)} + + + + 获取当前部门的级别信息 + getOfficeDesc + com.nis.web.security.UserUtils + java.lang.String getOfficeDesc(java.lang.Long) + ${fns:getOfficeDesc(deptId)} + + + + + + URL编码 + urlEncode + com.nis.util.Encodes + java.lang.String urlEncode(java.lang.String) + ${fns:urlEncode(part)} + + + URL解码 + urlDecode + com.nis.util.Encodes + java.lang.String urlDecode(java.lang.String) + ${fns:urlDecode(part)} + + + HTML编码 + escapeHtml + com.nis.util.Encodes + java.lang.String escapeHtml(java.lang.String) + ${fns:escapeHtml(html)} + + + HTML解码 + unescapeHtml + com.nis.util.Encodes + java.lang.String unescapeHtml(java.lang.String) + ${fns:unescapeHtml(html)} + + + + + 根据案件状态获取标签颜色样式 + getCaseStateColor + com.nis.util.ProcessUtil + java.lang.String getCaseStateColor(int) + ${fns:getCaseStateColor(caseState)} + + + 根据案件状态判断是否显示办结提醒 + isAlarmDesc + com.nis.util.ProcessUtil + java.lang.String isAlarmDesc(int) + ${fns:isAlarmDesc(caseState)} + + + + + 从后边开始截取字符串 + substringAfterLast + org.apache.commons.lang3.StringUtils + java.lang.String substringAfterLast(java.lang.String, java.lang.String) + ${fns:substringAfterLast(str,separator)} + + + 判断字符串是否以某某开头 + startsWith + org.apache.commons.lang3.StringUtils + boolean startsWith(java.lang.CharSequence, java.lang.CharSequence) + ${fns:startsWith(str,prefix)} + + + 判断字符串是否以某某结尾 + endsWith + org.apache.commons.lang3.StringUtils + boolean endsWith(java.lang.CharSequence, java.lang.CharSequence) + ${fns:endsWith(str,suffix)} + + + 缩写字符串,超过最大宽度用“...”表示 + abbr + com.nis.util.StringUtils + java.lang.String abbr(java.lang.String, int) + ${fns:abbr(str,length)} + + + 替换掉HTML标签 + replaceHtml + com.nis.util.StringUtils + java.lang.String replaceHtml(java.lang.String) + ${fns:replaceHtml(html)} + + + 转换为JS获取对象值,生成三目运算返回结果。 + jsGetVal + com.nis.util.StringUtils + java.lang.String jsGetVal(java.lang.String) + ${fns:jsGetVal('row.user.id')} 返回:!row?'':!row.user?'':!row.user.id?'':row.user.id + + + + + + + 获取字典对象列表 + getDictList + com.nis.util.DictUtils + java.util.List getDictList(java.lang.String) + ${fns:getDictList(key)} + + + + 获取字典标签 + getDictLabel + com.nis.util.DictUtils + java.lang.String getDictLabel(java.lang.String, java.lang.String, java.lang.String) + ${fns:getDictLabel(dictKey, itemCode, defaultValue)} + + + + 获取字典标签 + getDictLabelDefault + com.nis.util.DictUtils + java.lang.String getDictLabel(java.lang.String, java.lang.String) + ${fns:getDictLabel(dictKey, itemCode)} + + + + 获取字典标签(多个) + getDictLabels + com.nis.util.DictUtils + java.lang.String getDictLabels(java.lang.String, java.lang.String, java.lang.String) + ${fns:getDictLabels(dictKey, itemCodes, defaultValue)} + + + + 获取字典值 + getDictCode + com.nis.util.DictUtils + java.lang.String getDictCode(java.lang.String, java.lang.String, java.lang.String) + ${fns:getDictCode(dictKey, itemValue, defaultValue)} + + + + 获取字典值 + getDictCodeDefault + com.nis.util.DictUtils + java.lang.String getDictCode(java.lang.String, java.lang.String) + ${fns:getDictCode(dictKey, itemValue)} + + + + 获取字典对象列表 + getDictListJson + com.nis.util.DictUtils + java.lang.String getDictListJson(java.lang.String) + ${fns:getDictListJson(dictKey)} + + + + + + + 获取当前日期 + getDate + com.nis.util.DateUtils + java.lang.String getDate(java.lang.String) + ${fns:getDate(pattern)} + + + 获取过去的天数 + pastDays + com.nis.util.DateUtils + long pastDays(java.util.Date) + ${fns:pastDays(date)} + + + + + 对象转换JSON字符串 + toJson + com.nis.util.JsonMapper + java.lang.String toJsonString(java.lang.Object) + ${fns:toJson(object)} + + + diff --git a/src/main/webapp/WEB-INF/views/error/400.jsp b/src/main/webapp/WEB-INF/views/error/400.jsp new file mode 100644 index 00000000..a3329197 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/error/400.jsp @@ -0,0 +1,67 @@ +<% +response.setStatus(400); + +// 获取异常类 +Throwable ex = Exceptions.getThrowable(request); + +// 编译错误信息 +StringBuilder sb = new StringBuilder("(400)错误信息:\n"); +if (ex != null) { + if (ex instanceof BindException) { + for (ObjectError e : ((BindException)ex).getGlobalErrors()){ + sb.append("☆" + e.getDefaultMessage() + "(" + e.getObjectName() + ")\n"); + } + for (FieldError e : ((BindException)ex).getFieldErrors()){ + sb.append("☆" + e.getDefaultMessage() + "(" + e.getField() + ")\n"); + } + LoggerFactory.getLogger("400.jsp").warn(ex.getMessage(), ex); + }/* else if (ex instanceof ConstraintViolationException) { + for (ConstraintViolation v : ((ConstraintViolationException)ex).getConstraintViolations()) { + sb.append("☆" + v.getMessage() + "(" + v.getPropertyPath() + ")\n"); + } + } */ else { + //sb.append(Exceptions.getStackTraceAsString(ex)); + sb.append("☆" + ex.getMessage()); + } +} else { + sb.append("未知错误.\n\n"); +} + +// 如果是异步请求或是手机端,则直接返回信息 +if (Servlets.isAjaxRequest(request)) { + out.print(sb); +} + +// 输出异常信息页面 +else { +%> +<%@page import="org.springframework.validation.BindException"%> +<%@page import="org.springframework.validation.ObjectError"%> +<%@page import="org.springframework.validation.FieldError"%> +<%@page import="org.slf4j.Logger,org.slf4j.LoggerFactory"%> +<%@page import="com.nis.web.security.Servlets"%> +<%@page import="com.nis.util.Exceptions"%> +<%@page import="com.nis.util.StringUtils"%> +<%@page contentType="text/html;charset=UTF-8" isErrorPage="true"%> +<%@include file="/WEB-INF/include/taglib.jsp"%> + + + + 400 - 请求出错 + <%@include file="/WEB-INF/include/header.jsp" %> + + +
      + +
      + <%=StringUtils.toHtml(sb.toString())%>
      +
      + 返回上一页   +

      + +
      + + +<% +} out = pageContext.pushBody(); +%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/error/403.jsp b/src/main/webapp/WEB-INF/views/error/403.jsp new file mode 100644 index 00000000..0a2d3045 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/error/403.jsp @@ -0,0 +1,45 @@ +<% +response.setStatus(403); + +//获取异常类 +Throwable ex = Exceptions.getThrowable(request); + +// 如果是异步请求或是手机端,则直接返回信息 +if (Servlets.isAjaxRequest(request)) { + if (ex!=null && StringUtils.startsWith(ex.getMessage(), "msg:")){ + out.print(StringUtils.replace(ex.getMessage(), "msg:", "")); + }else{ + out.print("操作权限不足."); + } +} + +//输出异常信息页面 +else { +%> +<%@page import="com.nis.web.security.Servlets"%> +<%@page import="com.nis.util.Exceptions"%> +<%@page import="com.nis.util.StringUtils"%> +<%@page contentType="text/html;charset=UTF-8" isErrorPage="true"%> +<%@include file="/WEB-INF/include/taglib.jsp"%> + + + + 403 - 操作权限不足 + <%@include file="/WEB-INF/include/header.jsp" %> + + +
      + + <% + if (ex!=null && StringUtils.startsWith(ex.getMessage(), "msg:")){ + out.print("
      "+StringUtils.replace(ex.getMessage(), "msg:", "")+"

      "); + } + %> + + +
      + + +<% +} out = pageContext.pushBody(); +%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/error/404.jsp b/src/main/webapp/WEB-INF/views/error/404.jsp new file mode 100644 index 00000000..25327665 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/error/404.jsp @@ -0,0 +1,32 @@ +<% +response.setStatus(404); + +// 如果是异步请求或是手机端,则直接返回信息 +if (Servlets.isAjaxRequest(request)) { + out.print("页面不存在."); +} + +//输出异常信息页面 +else { +%> +<%@page import="com.nis.web.security.Servlets"%> +<%@page contentType="text/html;charset=UTF-8" isErrorPage="true"%> +<%@include file="/WEB-INF/include/taglib.jsp"%> + + + + 404 - 页面不存在 + <%@include file="/WEB-INF/include/header.jsp" %> + + +
      + + + +
      + + +<% +out.print(""); +} out = pageContext.pushBody(); +%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/error/500.jsp b/src/main/webapp/WEB-INF/views/error/500.jsp new file mode 100644 index 00000000..1835134c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/error/500.jsp @@ -0,0 +1,59 @@ +<% +response.setStatus(500); + +// 获取异常类 +Throwable ex = Exceptions.getThrowable(request); +if (ex != null){ + LoggerFactory.getLogger("500.jsp").error(ex.getMessage(), ex); +} + +// 编译错误信息 +StringBuilder sb = new StringBuilder("错误信息:\n"); +if (ex != null) { + sb.append(Exceptions.getStackTraceAsString(ex)); +} else { + sb.append("未知错误.\n\n"); +} + +// 如果是异步请求或是手机端,则直接返回信息 +if (Servlets.isAjaxRequest(request)) { + out.print(sb); +} + +// 输出异常信息页面 +else { +%> +<%@page import="org.slf4j.Logger,org.slf4j.LoggerFactory"%> +<%@page import="com.nis.web.security.Servlets"%> +<%@page import="com.nis.util.Exceptions"%> +<%@page import="com.nis.util.StringUtils"%> +<%@page contentType="text/html;charset=UTF-8" isErrorPage="true"%> +<%@include file="/WEB-INF/include/taglib.jsp"%> + + + + 500 - 系统内部错误 + <%@include file="/WEB-INF/include/header.jsp" %> + + +
      + +
      + 错误信息:<%=ex==null?"未知错误.":StringUtils.toHtml(ex.getMessage())%>

      + 请点击“查看详细信息”按钮,将详细错误信息发送给系统管理员,谢谢!

      + 返回上一页   + 查看详细信息 +
      +
      + <%=StringUtils.toHtml(sb.toString())%>
      + 返回上一页   + 隐藏详细信息 +

      +
      + +
      + + +<% +} out = pageContext.pushBody(); +%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/home.jsp b/src/main/webapp/WEB-INF/views/home.jsp new file mode 100644 index 00000000..feaa89b0 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/home.jsp @@ -0,0 +1,610 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + + + + + + + + +${fns:getStringProperty('productName','NIS')} + + + + + + + + + +
      + + + + + + + + + +
      +
      +
      + + + + + + + + + + +
      + +
       
      + + + +
      + + + +
      + +
      + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/home1.jsp b/src/main/webapp/WEB-INF/views/home1.jsp new file mode 100644 index 00000000..e1661fa9 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/home1.jsp @@ -0,0 +1,647 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + + + + + + + + +${fns:getStringProperty('productName','NIS')} + + + + + + + + +
      + + + + +
      +
      +
      + + + + + + +
      + +
       
      + + + +
      + + + +
      + +
      + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/home2.jsp b/src/main/webapp/WEB-INF/views/home2.jsp new file mode 100644 index 00000000..02365676 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/home2.jsp @@ -0,0 +1,472 @@ +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + +${fns:getStringProperty('productName','NIS')} + + + + + +
      +
      +

      Colors:

      + +
      +
      +

      Backgrounds:

      +
      + + + + + + +
      +
      +
      +

      Layout:

      +
      + + +
      +
      +
      +

      Sidebar position:

      +
      + + +
      +
      +
      +

      Show top menu on:

      +
      + + +
      +
      + +
      + Show CSS + Reset +
      +
      +
        + + +
      +
      +
      + + +
      + +
      + + + +
      + + +
      + + +
      + +
      + + + Sidebar switch + + + + +
      + + + + +
      + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/layouts/blank.jsp b/src/main/webapp/WEB-INF/views/layouts/blank.jsp new file mode 100644 index 00000000..a619a550 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/layouts/blank.jsp @@ -0,0 +1,22 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + <sitemesh:write property="title"/> + <%@include file="/WEB-INF/include/header.jsp" %> + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/layouts/decorator.jsp b/src/main/webapp/WEB-INF/views/layouts/decorator.jsp new file mode 100644 index 00000000..d10da047 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/layouts/decorator.jsp @@ -0,0 +1,15 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + + +<sitemesh:write property="title"/> +<%@include file="/WEB-INF/include/header.jsp" %> + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/login.jsp b/src/main/webapp/WEB-INF/views/login.jsp new file mode 100644 index 00000000..11367bff --- /dev/null +++ b/src/main/webapp/WEB-INF/views/login.jsp @@ -0,0 +1,108 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import="org.apache.shiro.web.filter.authc.FormAuthenticationFilter"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + + + + + + + + + + + + + + ${fns:getStringProperty('productName','NIS')}-登录平台 + + +
      +
      +
      +
      + +
      + + + +
      + + +
      + Copyright © 2015-${fns:getStringProperty('copyrightYear','2015')} ${fns:getStringProperty('productName','NIS')} - Powered By NIS ${fns:getStringProperty('version','1.0.0')} +
      + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/login1.jsp b/src/main/webapp/WEB-INF/views/login1.jsp new file mode 100644 index 00000000..62f262c7 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/login1.jsp @@ -0,0 +1,141 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ page import="org.apache.shiro.web.filter.authc.FormAuthenticationFilter"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + + + + + + + + + <%@include file="/WEB-INF/include/header.jsp" %> + 登录平台 + + + + + +
      +
      + +
      +
      +

      ${fns:getStringProperty('productName','NIS')}

      + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/success.jsp b/src/main/webapp/WEB-INF/views/success.jsp new file mode 100644 index 00000000..222420ae --- /dev/null +++ b/src/main/webapp/WEB-INF/views/success.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +Insert title here + + +

      success!

      +

      time:${requestScope.time }

      +

      names:${requestScope.names }

      + +

      session object:${sessionScope.userObject }

      +

      session name:${sessionScope.username }

      +

      权限树数据:${menuList }

      + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/areaForm.jsp b/src/main/webapp/WEB-INF/views/sys/areaForm.jsp new file mode 100644 index 00000000..1d954b76 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/areaForm.jsp @@ -0,0 +1,91 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 区域管理 + + + +
      + + + +
      + +
      + +
      +
      +
      + +
      + + * +
      +
      +
      + +
      + +
      +
      +
      + +
      + + + +
      +
      + +
      + +
      + +
      +
      + +
      + +
      + +
      +
      + + +
      + +
      + +
      +
      +
      +   + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/areaIndex.jsp b/src/main/webapp/WEB-INF/views/sys/areaIndex.jsp new file mode 100644 index 00000000..ba395619 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/areaIndex.jsp @@ -0,0 +1,73 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +区域管理 + + + + + + +
      +
      + +
      +
      +
       
      + +
      + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/areaList.jsp b/src/main/webapp/WEB-INF/views/sys/areaList.jsp new file mode 100644 index 00000000..40e20f2c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/areaList.jsp @@ -0,0 +1,73 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 区域管理 + + + + + + + + + + +
      区域名称区域编码区域类型经度纬度备注操作
      + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/dictForm.jsp b/src/main/webapp/WEB-INF/views/sys/dictForm.jsp new file mode 100644 index 00000000..b960fc2d --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/dictForm.jsp @@ -0,0 +1,232 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 用户管理 + + + + +
      + + + + + + + + + + +
      + + 提交配置出现问题,请看错误提示! +
      + +
      + + + 表单验证成功! +
      + +
      + +
      + + * +
      +
      + +
      + +
      + + * +
      +
      + +
      + + + +
      + + 添加词条 + + * +
      + +
      + + + +

      + 标识 readonly="readonly"/> + 值 readonly="readonly"/> + 描述 readonly="readonly"/> + 可用 + + 可维护 + + + + + +

      +
      + +
      + +
      + +
      + +
      + +
      +
      + +
      + +
      + +   + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/dictList.jsp b/src/main/webapp/WEB-INF/views/sys/dictList.jsp new file mode 100644 index 00000000..e3c4678e --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/dictList.jsp @@ -0,0 +1,284 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +字典管理 + + + + + + + + + + + + +
      + + + + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/> + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>   +       +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      模块名字典标识创建时间描述修改记录操作
      ${dict.moduleName}${dict.mark}${fns:abbr(dict.remark,15)} + + + +
      + 操作 + + +
      + +
      + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/ipLocation.jsp b/src/main/webapp/WEB-INF/views/sys/ipLocation.jsp new file mode 100644 index 00000000..b0b7484c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/ipLocation.jsp @@ -0,0 +1,49 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + ip定位 + + + + + + + +
      + +
      + + +
      +
      + + +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/iplocationResult.jsp b/src/main/webapp/WEB-INF/views/sys/iplocationResult.jsp new file mode 100644 index 00000000..148eeb91 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/iplocationResult.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +Insert title here + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/logList.jsp b/src/main/webapp/WEB-INF/views/sys/logList.jsp new file mode 100644 index 00000000..7c2672a7 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/logList.jsp @@ -0,0 +1,60 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 日志管理 + + + + +<%--
    1. 日志列表
    2. --%> + + + + +
      + + + +
      + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/> + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>   +   +       +
      +
      + + + + <%request.setAttribute("strEnter", "\n");request.setAttribute("strTab", "\t");%> + + + + + + + + + + + + + + +
      操作菜单操作用户URI提交方式操作者IP操作时间
      ${log.title}${log.createBy}${log.requestUri}${log.method}${log.remoteAddr}
      +<%-- 用户代理: ${log.userAgent}
      --%> +<%-- 提交参数: ${fns:escapeHtml(log.params)}
      --%> + 异常信息:
      + ${fn:replace(fn:replace(fns:escapeHtml(log.exception), strEnter, '
      '), strTab, '    ')}
      + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/menuForm.jsp b/src/main/webapp/WEB-INF/views/sys/menuForm.jsp new file mode 100644 index 00000000..e6cc102c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/menuForm.jsp @@ -0,0 +1,102 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 菜单管理 + + + +
      + + + +
      + +
      + +
      +
      +
      + +
      + + * +
      +
      +
      + +
      + + 点击菜单跳转的页面 +
      +
      +
      + +
      + + 链接地址打开的目标窗口,默认:mainFrame +
      +
      +
      + +
      + +
      +
      +
      + +
      + + 排列顺序,升序。 +
      +
      +
      + +
      + + 该菜单或操作是否显示到系统菜单中 +
      +
      +
      + +
      + + 控制器中定义的权限标识,如:@RequiresPermissions("权限标识") +
      +
      +
      + +
      + +
      +
      +
      +   + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/menuList.jsp b/src/main/webapp/WEB-INF/views/sys/menuList.jsp new file mode 100644 index 00000000..44bf9739 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/menuList.jsp @@ -0,0 +1,56 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 菜单管理 + + + + + + + + +
      + + + + + + + + + + + + +
      名称链接排序可见权限标识操作
      ${menu.name}${fns:abbr(menu.href,30)} + + + + + ${menu.sort} + + ${menu.isShow eq '1'?'显示':'隐藏'}${fns:abbr(menu.permission,30)} + 修改 + 删除 + 添加下级菜单 +
      +
      + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/officeForm.jsp b/src/main/webapp/WEB-INF/views/sys/officeForm.jsp new file mode 100644 index 00000000..a8744823 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/officeForm.jsp @@ -0,0 +1,170 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 机构管理 + + + +
      + + + +
      + +
      + +
      +
      +
      + +
      + + * +
      +
      +
      + +
      + + * +
      +
      +
      + +
      + +
      +
      +
      + +
      + + + +
      +
      +
      + +
      + + + +
      +
      +
      + +
      + + + +
      +
      +
      + +
      + + + + “是”代表此账号允许登陆,“否”则表示此账号不允许登陆 +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      +
      + +
      + +
      +
      + +
      + +
      + +
      +
      +
      +
      +   + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/officeIndex.jsp b/src/main/webapp/WEB-INF/views/sys/officeIndex.jsp new file mode 100644 index 00000000..ecb70e80 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/officeIndex.jsp @@ -0,0 +1,73 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +机构管理 + + + + + + +
      +
      + +
      +
      +
       
      + +
      + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/officeList.jsp b/src/main/webapp/WEB-INF/views/sys/officeList.jsp new file mode 100644 index 00000000..a3b12b4d --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/officeList.jsp @@ -0,0 +1,81 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + +机构管理 + + + + + + + + + + + +
      机构名称归属区域机构编码所属级别机构类型机构职责分类备注操作
      + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/purposeForm.jsp b/src/main/webapp/WEB-INF/views/sys/purposeForm.jsp new file mode 100644 index 00000000..2d90a581 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/purposeForm.jsp @@ -0,0 +1,114 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 信访目的管理 + + + +
      + + + + +
      + +
      + +
      + +
      +
      +
      + +
      + +
      + ${parentName} +
      +
      +
      +
      + +
      + + * +
      +
      + + + + +
      + +
      + + +
      +
      + +
      ${createTime}
      +
      +
      +
      +
      + +
      + +
      + + +
      +
      + +
      + +   + + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/purposeIndex.jsp b/src/main/webapp/WEB-INF/views/sys/purposeIndex.jsp new file mode 100644 index 00000000..24bb1ec0 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/purposeIndex.jsp @@ -0,0 +1,73 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +机构管理 + + + + + + +
      +
      + +
      +
      +
       
      + +
      + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/purposeList.jsp b/src/main/webapp/WEB-INF/views/sys/purposeList.jsp new file mode 100644 index 00000000..8894806b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/purposeList.jsp @@ -0,0 +1,80 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + +机构管理 + + + + + + + + + + + + + + + + + + + + +
      信访名称备注操作
      + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/roleAssign.jsp b/src/main/webapp/WEB-INF/views/sys/roleAssign.jsp new file mode 100644 index 00000000..94e2aeae --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/roleAssign.jsp @@ -0,0 +1,83 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 分配角色 + + + + + + + + + + + + + + + + + + +
      登录账户姓名归属部门操作
      ${user.loginId}${user.name}${user.office.name} + 移除 +
      + + diff --git a/src/main/webapp/WEB-INF/views/sys/roleForm.jsp b/src/main/webapp/WEB-INF/views/sys/roleForm.jsp new file mode 100644 index 00000000..85c1d78a --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/roleForm.jsp @@ -0,0 +1,130 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 角色管理 + + + + + + +
      + + + + +
      + +
      + + + * +
      +
      + +
      + +
      <%-- + + + 工作流组用户组类型(security-role:管理员、assignment:可进行任务分配、user:普通用户) --%> + + 任务分配 + 管理角色 + 普通角色 + + + 工作流组用户组类型(任务分配:assignment、管理角色:security-role、普通角色:user) +
      +
      + + +
      + +
      + + + + 特殊情况下,设置为“按明细设置”,可进行跨机构授权 +
      +
      +
      + +
      + + +
      +
      +
      + +
      + +
      +
      +
      +   + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/roleList.jsp b/src/main/webapp/WEB-INF/views/sys/roleList.jsp new file mode 100644 index 00000000..84ab1deb --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/roleList.jsp @@ -0,0 +1,29 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 角色管理 + + + + + + + + + + + + + + +
      角色名称数据范围描述操作
      ${role.name}${fns:getDictLabel('SYS_DATA_SCOPE',role.dataScope,'无')}${fns:abbr(role.remark,30)} + 分配 + 修改 + 删除 +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/selectUserToRole.jsp b/src/main/webapp/WEB-INF/views/sys/selectUserToRole.jsp new file mode 100644 index 00000000..fe6a2680 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/selectUserToRole.jsp @@ -0,0 +1,117 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 分配角色 + + + + + +
      +
      +

      所在部门:

      +
      +
      +
      +

      待选人员:

      +
      +
      +
      +

      已选人员:

      +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/views/sys/sysIndex.jsp b/src/main/webapp/WEB-INF/views/sys/sysIndex.jsp new file mode 100644 index 00000000..dbbb6fa4 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/sysIndex.jsp @@ -0,0 +1,64 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> + + + + +SpringMVC Test + + + + + + testJSON + +
      + testMVC + +
      + +
      + + testparams + + testANtpath1 + testANtpath1 +
      + testPathVariable + testRequestParam + + +
      + username:
      + passowrd:
      + email:
      + age:
      + + city:
      + province:
      + +
      +
      + +
      + + testModelAndView + + testMap + + testSessionAttribute + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/tagIconselect.jsp b/src/main/webapp/WEB-INF/views/sys/tagIconselect.jsp new file mode 100644 index 00000000..fe4f15a0 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/tagIconselect.jsp @@ -0,0 +1,360 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 图标选择 + + + + + +
      + + + +
        +
      • icon-adjust
      • +
      • icon-asterisk
      • +
      • icon-ban-circle
      • +
      • icon-bar-chart
      • +
      • icon-barcode
      • +
      • icon-beaker
      • +
      • icon-beer
      • +
      • icon-bell
      • +
      • icon-bell-alt
      • +
      • icon-bolt
      • +
      • icon-book
      • +
      • icon-bookmark
      • +
      • icon-bookmark-empty
      • +
      • icon-briefcase
      • +
      • icon-bullhorn
      • +
      • icon-calendar
      • +
      • icon-camera
      • +
      • icon-camera-retro
      • +
      • icon-certificate
      • +
      • icon-check
      • +
      • icon-check-empty
      • +
      • icon-circle
      • +
      • icon-circle-blank
      • +
      • icon-cloud
      • +
      • icon-cloud-download
      • +
      • icon-cloud-upload
      • +
      • icon-coffee
      • +
      • icon-cog
      • +
      • icon-cogs
      • +
      • icon-comment
      • +
      • icon-comment-alt
      • +
      • icon-comments
      • +
      • icon-comments-alt
      • +
      • icon-credit-card
      • +
      • icon-dashboard
      • +
      • icon-desktop
      • +
      • icon-download
      • +
      • icon-download-alt
      • + + +
      • icon-edit
      • +
      • icon-envelope
      • +
      • icon-envelope-alt
      • +
      • icon-exchange
      • +
      • icon-exclamation-sign
      • +
      • icon-external-link
      • +
      • icon-eye-close
      • +
      • icon-eye-open
      • +
      • icon-facetime-video
      • +
      • icon-fighter-jet
      • +
      • icon-film
      • +
      • icon-filter
      • +
      • icon-fire
      • +
      • icon-flag
      • +
      • icon-folder-close
      • +
      • icon-folder-open
      • +
      • icon-folder-close-alt
      • +
      • icon-folder-open-alt
      • +
      • icon-food
      • +
      • icon-gift
      • +
      • icon-glass
      • +
      • icon-globe
      • +
      • icon-group
      • +
      • icon-hdd
      • +
      • icon-headphones
      • +
      • icon-heart
      • +
      • icon-heart-empty
      • +
      • icon-home
      • +
      • icon-inbox
      • +
      • icon-info-sign
      • +
      • icon-key
      • +
      • icon-leaf
      • +
      • icon-laptop
      • +
      • icon-legal
      • +
      • icon-lemon
      • +
      • icon-lightbulb
      • +
      • icon-lock
      • +
      • icon-unlock
      • + + +
      • icon-magic
      • +
      • icon-magnet
      • +
      • icon-map-marker
      • +
      • icon-minus
      • +
      • icon-minus-sign
      • +
      • icon-mobile-phone
      • +
      • icon-money
      • +
      • icon-move
      • +
      • icon-music
      • +
      • icon-off
      • +
      • icon-ok
      • +
      • icon-ok-circle
      • +
      • icon-ok-sign
      • +
      • icon-pencil
      • +
      • icon-picture
      • +
      • icon-plane
      • +
      • icon-plus
      • +
      • icon-plus-sign
      • +
      • icon-print
      • +
      • icon-pushpin
      • +
      • icon-qrcode
      • +
      • icon-question-sign
      • +
      • icon-quote-left
      • +
      • icon-quote-right
      • +
      • icon-random
      • +
      • icon-refresh
      • +
      • icon-remove
      • +
      • icon-remove-circle
      • +
      • icon-remove-sign
      • +
      • icon-reorder
      • +
      • icon-reply
      • +
      • icon-resize-horizontal
      • +
      • icon-resize-vertical
      • +
      • icon-retweet
      • +
      • icon-road
      • +
      • icon-rss
      • +
      • icon-screenshot
      • +
      • icon-search
      • + + +
      • icon-share
      • +
      • icon-share-alt
      • +
      • icon-shopping-cart
      • +
      • icon-signal
      • +
      • icon-signin
      • +
      • icon-signout
      • +
      • icon-sitemap
      • +
      • icon-sort
      • +
      • icon-sort-down
      • +
      • icon-sort-up
      • +
      • icon-spinner
      • +
      • icon-star
      • +
      • icon-star-empty
      • +
      • icon-star-half
      • +
      • icon-tablet
      • +
      • icon-tag
      • +
      • icon-tags
      • +
      • icon-tasks
      • +
      • icon-thumbs-down
      • +
      • icon-thumbs-up
      • +
      • icon-time
      • +
      • icon-tint
      • +
      • icon-trash
      • +
      • icon-trophy
      • +
      • icon-truck
      • +
      • icon-umbrella
      • +
      • icon-upload
      • +
      • icon-upload-alt
      • +
      • icon-user
      • +
      • icon-user-md
      • +
      • icon-volume-off
      • +
      • icon-volume-down
      • +
      • icon-volume-up
      • +
      • icon-warning-sign
      • +
      • icon-wrench
      • +
      • icon-zoom-in
      • +
      • icon-zoom-out
      • +
      + + + + +
        +
      • icon-file
      • +
      • icon-file-alt
      • +
      • icon-cut
      • +
      • icon-copy
      • +
      • icon-paste
      • +
      • icon-save
      • +
      • icon-undo
      • +
      • icon-repeat
      • + + +
      • icon-text-height
      • +
      • icon-text-width
      • +
      • icon-align-left
      • +
      • icon-align-center
      • +
      • icon-align-right
      • +
      • icon-align-justify
      • +
      • icon-indent-left
      • +
      • icon-indent-right
      • + + +
      • icon-font
      • +
      • icon-bold
      • +
      • icon-italic
      • +
      • icon-strikethrough
      • +
      • icon-underline
      • +
      • icon-link
      • +
      • icon-paper-clip
      • +
      • icon-columns
      • + + +
      • icon-table
      • +
      • icon-th-large
      • +
      • icon-th
      • +
      • icon-th-list
      • +
      • icon-list
      • +
      • icon-list-ol
      • +
      • icon-list-ul
      • +
      • icon-list-alt
      • +
      + + + +
        +
      • icon-angle-left
      • +
      • icon-angle-right
      • +
      • icon-angle-up
      • +
      • icon-angle-down
      • +
      • icon-arrow-down
      • +
      • icon-arrow-left
      • +
      • icon-arrow-right
      • +
      • icon-arrow-up
      • + + +
      • icon-caret-down
      • +
      • icon-caret-left
      • +
      • icon-caret-right
      • +
      • icon-caret-up
      • +
      • icon-chevron-down
      • +
      • icon-chevron-left
      • +
      • icon-chevron-right
      • +
      • icon-chevron-up
      • + + +
      • icon-circle-arrow-down
      • +
      • icon-circle-arrow-left
      • +
      • icon-circle-arrow-right
      • +
      • icon-circle-arrow-up
      • +
      • icon-double-angle-left
      • +
      • icon-double-angle-right
      • +
      • icon-double-angle-up
      • +
      • icon-double-angle-down
      • + + +
      • icon-hand-down
      • +
      • icon-hand-left
      • +
      • icon-hand-right
      • +
      • icon-hand-up
      • +
      • icon-circle
      • +
      • icon-circle-blank
      • +
      + + + + +
        +
      • icon-play-circle
      • +
      • icon-play
      • +
      • icon-pause
      • +
      • icon-stop
      • + + +
      • icon-step-backward
      • +
      • icon-fast-backward
      • +
      • icon-backward
      • +
      • icon-forward
      • + + +
      • icon-fast-forward
      • +
      • icon-step-forward
      • +
      • icon-eject
      • + + +
      • icon-fullscreen
      • +
      • icon-resize-full
      • +
      • icon-resize-small
      • +
      + + + + +
        +
      • icon-phone
      • +
      • icon-phone-sign
      • +
      • icon-facebook
      • +
      • icon-facebook-sign
      • + + +
      • icon-twitter
      • +
      • icon-twitter-sign
      • +
      • icon-github
      • +
      • icon-github-alt
      • + + +
      • icon-github-sign
      • +
      • icon-linkedin
      • +
      • icon-linkedin-sign
      • +
      • icon-pinterest
      • + + +
      • icon-pinterest-sign
      • +
      • icon-google-plus
      • +
      • icon-google-plus-sign
      • +
      • icon-sign-blank
      • +
      + + + + +
        +
      • icon-ambulance
      • +
      • icon-beaker
      • + + +
      • icon-h-sign
      • +
      • icon-hospital
      • + + +
      • icon-medkit
      • +
      • icon-plus-sign-alt
      • + + +
      • icon-stethoscope
      • +
      • icon-user-md
      • +
      +

      +
      + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/tagTreeselect.jsp b/src/main/webapp/WEB-INF/views/sys/tagTreeselect.jsp new file mode 100644 index 00000000..cdf7550e --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/tagTreeselect.jsp @@ -0,0 +1,197 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + 数据选择 + + + + + + + +
      + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/toDoTask.jsp b/src/main/webapp/WEB-INF/views/sys/toDoTask.jsp new file mode 100644 index 00000000..2b4d8652 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/toDoTask.jsp @@ -0,0 +1,190 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 待办事项 + + + + + + + + + + + +
      + + + + + + + +
      + +
      +
      + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/userInfo.jsp b/src/main/webapp/WEB-INF/views/sys/userInfo.jsp new file mode 100644 index 00000000..11299b40 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/userInfo.jsp @@ -0,0 +1,75 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 个人信息 + + + +
      + + + +
      + +
      + + +
      +
      + +
      + +
      + +
      +
      +
      + +
      +
      +
      + +
      + +
      + +
      +
      + + +
      + +
      + +
      +
      + +
      + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/userList.jsp b/src/main/webapp/WEB-INF/views/sys/userList.jsp new file mode 100644 index 00000000..d947c511 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/userList.jsp @@ -0,0 +1,99 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +用户管理 + + + +
      + +
      + + + + + + + + + +
        +
      • +
      • +
      • +
      • +
      • + +
      • + + + +
      • + +
      • + +
      +
      + + + <%-- --%> + + + + + + + + + + + + + + + +
      所属公司所属部门姓名身份标识邮箱创建时间角色操作
      ${user.company.name}${fns:getOfficeDesc(user.office.id)}${user.loginId}${user.name}${user.identity eq 1 ?'信访办':'办理人员'}${user.email} + 修改 + 删除 +
      + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/sys/userModifyPwd.jsp b/src/main/webapp/WEB-INF/views/sys/userModifyPwd.jsp new file mode 100644 index 00000000..77070e9a --- /dev/null +++ b/src/main/webapp/WEB-INF/views/sys/userModifyPwd.jsp @@ -0,0 +1,66 @@ +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + 修改密码 + + + +
      + + + +
      + +
      + + * +
      +
      +
      + +
      + + * +
      +
      +
      + +
      + + * +
      +
      +
      + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..5b583022 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,225 @@ + + + + 30 + + + + contextConfigLocation + classpath:applicationContext*.xml + + + + + org.springframework.web.context.ContextLoaderListener + + + + + org.springframework.web.context.request.RequestContextListener + + + + characterEncodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + characterEncodingFilter + /* + + + + + shiroFilter + org.springframework.web.filter.DelegatingFilterProxy + + targetFilterLifecyle + true + + + + + shiroFilter + /* + + + + + sitemesh + org.sitemesh.config.ConfigurableSiteMeshFilter + + + + sitemesh + /nis/* + + + corsFilter + com.nis.filter.CORSFilter + + + corsFilter + /* + + + + + + DispatcherServlet + + org.springframework.web.servlet.DispatcherServlet + + + contextConfigLocation + classpath:spring-mvc*.xml + + 1 + + + + DispatcherServlet + / + + + + + + + org.springframework.web.util.Log4jConfigListener + + + + + + + webAppRootKey + nis.root + + + + + + + + + + CKFinderConnectorServlet + com.nis.web.controller.CKFinderConnectorServlet + + XMLConfig + /WEB-INF/ckfinder.xml + + + debug + false + + + configuration + com.nis.web.controller.CKFinderConfig + + 1 + + + CKFinderConnectorServlet + /static/ckfinder/core/connector/java/connector.java + + + FileUploadFilter + com.ckfinder.connector.FileUploadFilter + + sessionCookieName + JSESSIONID + + + sessionParameterName + jsessionid + + + + FileUploadFilter + /static/ckfinder/core/connector/java/connector.java + + + + + default + *.jpg + + + default + *.gif + + + default + *.png + + + default + *.js + + + default + *.css + + + + + 500 + /WEB-INF/views/error/500.jsp + + + 404 + /WEB-INF/views/error/404.jsp + + + + + + com.nis.listener.SystemConfigListener + + + + + + + + + + + /jstl/c + /WEB-INF/tlds/c.tld + + + /jstl/fn + /WEB-INF/tlds/fn.tld + + + /jstl/fmt + /WEB-INF/tlds/fmt.tld + + + \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/WdatePicker.js b/src/main/webapp/static/My97DatePicker/WdatePicker.js new file mode 100644 index 00000000..687bb408 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/WdatePicker.js @@ -0,0 +1,44 @@ +/* + * My97 DatePicker 4.8 Beta2 + * License: http://www.my97.net/dp/license.asp + */ +var $dp,WdatePicker;(function(){var $={ +$langList:[{name:"en",charset:"UTF-8"},{name:"zh-cn",charset:"UTF-8"},{name:"zh-tw",charset:"UTF-8"}], +$skinList:[ + {name:"default",charset:"gb2312"}, + {name:"whyGreen",charset:"gb2312"}, + {name:"twoer",charset:"gb2312"} +], +$wdate:true, +$crossFrame:true, +$preLoad:false, +doubleCalendar:false, +enableKeyboard:true, +enableInputMask:true, +autoUpdateOnChanged:null, +weekMethod:"ISO8601", +position:{}, +lang:"auto", +skin:"twoer", +dateFmt:"yyyy-MM-dd", +realDateFmt:"yyyy-MM-dd", +realTimeFmt:"HH:mm:ss", +realFullFmt:"%Date %Time", +minDate:"1900-01-01 00:00:00", +maxDate:"2099-12-31 23:59:59", +startDate:"", +alwaysUseStartDate:false, +yearOffset:1911, +firstDayOfWeek:0, +isShowWeek:false, +highLineWeekDay:true, +isShowClear:true, +isShowToday:true, +isShowOK:true, +isShowOthers:true, +readOnly:false, +errDealMode:0, +autoPickDate:null, +qsEnabled:true, +autoShowQS:false, +specialDates:null,specialDays:null,disabledDates:null,disabledDays:null,opposite:false,onpicking:null,onpicked:null,onclearing:null,oncleared:null,ychanging:null,ychanged:null,Mchanging:null,Mchanged:null,dchanging:null,dchanged:null,Hchanging:null,Hchanged:null,mchanging:null,mchanged:null,schanging:null,schanged:null,eCont:null,vel:null,elProp:"",errMsg:"",quickSel:[],has:{},getRealLang:function(){var _=$.$langList;for(var A=0;A<_.length;A++)if(_[A].name==this.lang)return _[A];return _[0]}};WdatePicker=T;var X=window,S={innerHTML:""},M="document",H="documentElement",C="getElementsByTagName",U,A,R,G,a,W=navigator.appName;if(W=="Microsoft Internet Explorer")R=true;else if(W=="Opera")a=true;else G=true;A=J();if($.$wdate)K(A+"skin/WdatePicker.css");U=X;if($.$crossFrame){try{while(U.parent&&U.parent[M]!=U[M]&&U.parent[M][C]("frameset").length==0)U=U.parent}catch(N){}}if(!U.$dp)U.$dp={ff:G,ie:R,opera:a,status:0,defMinDate:$.minDate,defMaxDate:$.maxDate};B();if($.$preLoad&&$dp.status==0)E(X,"onload",function(){T(null,true)});if(!X[M].docMD){E(X[M],"onmousedown",D);X[M].docMD=true}if(!U[M].docMD){E(U[M],"onmousedown",D);U[M].docMD=true}E(X,"onunload",function(){if($dp.dd)O($dp.dd,"none")});function B(){U.$dp=U.$dp||{};obj={$:function($){return(typeof $=="string")?X[M].getElementById($):$},$D:function($,_){return this.$DV(this.$($).value,_)},$DV:function(_,$){if(_!=""){this.dt=$dp.cal.splitDate(_,$dp.cal.dateFmt);if($)for(var B in $)if(this.dt[B]===undefined)this.errMsg="invalid property:"+B;else{this.dt[B]+=$[B];if(B=="M"){var C=$["M"]>0?1:0,A=new Date(this.dt["y"],this.dt["M"],0).getDate();this.dt["d"]=Math.min(A+C,this.dt["d"])}}if(this.dt.refresh())return this.dt}return""},show:function(){var A=U[M].getElementsByTagName("div"),$=100000;for(var B=0;B$)$=_}this.dd.style.zIndex=$+2;O(this.dd,"block")},hide:function(){O(this.dd,"none")},attachEvent:E};for(var $ in obj)U.$dp[$]=obj[$];$dp=U.$dp}function E(A,$,_){if(R)A.attachEvent($,_);else if(_){var B=$.replace(/on/,"");_._ieEmuEventHandler=function($){return _($)};A.addEventListener(B,_._ieEmuEventHandler,false)}}function J(){var _,A,$=X[M][C]("script");for(var B=0;B<$.length;B++){_=$[B].getAttribute("src")||"";_=_.substr(0,_.toLowerCase().indexOf("wdatepicker.js"));A=_.lastIndexOf("/");if(A>0)_=_.substring(0,A+1);if(_)break}return _}function K(A,$,B){var D=X[M][C]("HEAD").item(0),_=X[M].createElement("link");if(D){_.href=A;_.rel="stylesheet";_.type="text/css";if($)_.title=$;if(B)_.charset=B;D.appendChild(_)}}function F($){$=$||U;var A=0,_=0;while($!=U){var D=$.parent[M][C]("iframe");for(var F=0;F_.scrollTop||A.scrollLeft>_.scrollLeft))?A:_;return{"top":B.scrollTop,"left":B.scrollLeft}}function D($){var _=$?($.srcElement||$.target):null;try{if($dp.cal&&!$dp.eCont&&$dp.dd&&_!=$dp.el&&$dp.dd.style.display=="block")$dp.cal.close()}catch($){}}function Y(){$dp.status=2}var P,_;function T(N,F){$dp.win=X;B();N=N||{};for(var K in $)if(K.substring(0,1)!="$"&&N[K]===undefined)N[K]=$[K];if(F){if(!L()){_=_||setInterval(function(){if(U[M].readyState=="complete")clearInterval(_);T(null,true)},50);return}if($dp.status==0){$dp.status=1;N.el=S;I(N,true)}else return}else if(N.eCont){N.eCont=$dp.$(N.eCont);N.el=S;N.autoPickDate=true;N.qsEnabled=false;I(N)}else{if($.$preLoad&&$dp.status!=2)return;var J=H();if(J){N.srcEl=J.srcElement||J.target;J.cancelBubble=true}N.el=N.el=$dp.$(N.el||N.srcEl);if(!N.el||N.el["My97Mark"]===true||N.el.disabled||($dp.dd&&O($dp.dd)!="none"&&$dp.dd.style.left!="-970px")){try{N.el["My97Mark"]=false}catch(C){}return}I(N);if(J&&N.el.nodeType==1&&N.el["My97Mark"]===undefined){var A,D;if(J.type=="focus"){A="onclick";D="onfocus"}else{A="onfocus";D="onclick"}E(N.el,A,N.el[D])}}function L(){if(R&&U!=X&&U[M].readyState!="complete")return false;return true}function H(){if(G){func=H.caller;while(func!=null){var $=func.arguments[0];if($&&($+"").indexOf("Event")>=0)return $;func=func.caller}return null}return event}}function Q(_,$){return _.currentStyle?_.currentStyle[$]:document.defaultView.getComputedStyle(_,false)[$]}function O(_,$){if(_)if($!=null)_.style.display=$;else return Q(_,"display")}function I(G,_){var D=G.el?G.el.nodeName:"INPUT";if(_||G.eCont||new RegExp(/input|textarea|div|span|p|a/ig).test(D))G.elProp=D=="INPUT"?"value":"innerHTML";else return;if(G.lang=="auto")G.lang=R?navigator.browserLanguage.toLowerCase():navigator.language.toLowerCase();if(!G.eCont)for(var C in G)$dp[C]=G[C];if(!$dp.dd||G.eCont||($dp.dd&&(G.getRealLang().name!=$dp.dd.lang||G.skin!=$dp.dd.skin))){if(G.eCont)E(G.eCont,G);else{$dp.dd=U[M].createElement("DIV");$dp.dd.style.cssText="position:absolute";U[M].body.appendChild($dp.dd);E($dp.dd,G);if(_)$dp.dd.style.left=$dp.dd.style.top="-970px";else{$dp.show();B($dp)}}}else if($dp.cal){$dp.show();$dp.cal.init();if(!$dp.eCont)B($dp)}function E(F,E){F.innerHTML="";var D=F.lastChild.contentWindow[M],_=$.$langList,C=$.$skinList,H=E.getRealLang();F.lang=H.name;F.skin=E.skin;var G=[""];for(var I=0;I");G.push("");G.push("");G.push("");E.setPos=B;E.onload=Y;D.write("");D.cfg=E;D.write(G.join(""))}function B(I){var G=I.position.left,B=I.position.top,C=I.el;if(C==S)return;if(C!=I.srcEl&&(O(C)=="none"||C.type=="hidden"))C=I.srcEl;var H=V(C),$=F(X),D=L(U),A=Z(U),E=$dp.dd.offsetHeight,_=$dp.dd.offsetWidth;if(isNaN(B))B=0;if(($.topM+H.bottom+E>D.height)&&($.topM+H.top-E>0))B+=A.top+$.topM+H.top-E-2;else B+=A.top+$.topM+Math.min(H.bottom,D.height-E)+2;if(isNaN(G))G=0;G+=A.left+Math.min($.leftM+H.left,D.width-_-5)-(R?2:0);I.dd.style.top=B+"px";I.dd.style.left=G+"px"}}})() \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/calendar.js b/src/main/webapp/static/My97DatePicker/calendar.js new file mode 100644 index 00000000..34654583 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/calendar.js @@ -0,0 +1,5 @@ +/* + * My97 DatePicker 4.8 Beta2 + * License: http://www.my97.net/dp/license.asp + */ +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('k($4j.3X){$f={};19(o p 4i $2l)k(5Z $2l[p]=="6d"){$f[p]={};19(o 4B 4i $2l[p])$f[p][4B]=$2l[p][4B]}q $f[p]=$2l[p]}q $f=$2l;19(p 4i $4j)$f[p]=$4j[p];o $c;k($62){6o.2N.7c("6W",l($){k(!$)h.2h();t $});6o.2N.7b("6N",l(){o $=h.6K;3l($.5f!=1)$=$.7e;t $});7a.2N.2T=l($,b){o A=$.1l(/6C/,"");b.6B=l($){6M.1Q=$;t b()};h.7g(A,b.6B,1n)}}l 5n(){$c=h;h.2F=[];$d=1P.75("x");$d.1d="4r";$d.1I="<1t Y=3Y><1t Y=3Y><1x 2t=0 2r=0 2u=0><1j><18 7V=2><4k 1E=7W>&4A;<1t Y=7u 4g=2><1t 1f=\\":\\" Y=6i 6p><1t Y=6q 4g=2><1t 1f=\\":\\" Y=6i 6p><1t Y=6q 4g=2><18><1N 1E=7s><1j><18><1N 1E=7r><1t Y=4h 1E=7y 3a=1N><1t Y=4h 1E=7C 3a=1N><1t Y=4h 1E=73 3a=1N>";6S($d,l(){3x()});A();h.5o();$f.22=[1P,$d.1K,$d.1v,$d.2B,$d.2Q,$d.2S,$d.2W,$d.2d,$d.1X];19(o B=0;B<$f.22.u;B++){o b=$f.22[B];b.34=B==$f.22.u-1?$f.22[1]:$f.22[B+1];$f.2T(b,"56",4P)}$();4K("y,M,H,m,s");$d.5s.1r=l(){58(1)};$d.5t.1r=l(){58(-1)};$d.4s.1r=l(){k($d.1F.1c.2g!="6t"){$c.4I();3v($d.1F)}q 1m($d.1F)};1P.6G.4x($d);l A(){o b=$("a");1q=$("x"),1M=$("1t"),4n=$("1N"),5q=$("4k");$d.3R=b[0];$d.3H=b[1];$d.3E=b[3];$d.3G=b[2];$d.41=1q[9];$d.1K=1M[0];$d.1v=1M[1];$d.4z=1q[0];$d.3C=1q[4];$d.3g=1q[6];$d.1F=1q[10];$d.2Y=1q[11];$d.2V=1q[12];$d.6F=1q[13];$d.6I=1q[14];$d.6T=1q[15];$d.4s=1q[16];$d.3Z=1q[17];$d.2B=1M[2];$d.2Q=1M[4];$d.2S=1M[6];$d.2W=1M[7];$d.2d=1M[8];$d.1X=1M[9];$d.5s=4n[0];$d.5t=4n[1];$d.5w=5q[0];l $($){t $d.6P($)}}l $(){$d.3R.1r=l(){$1L=$1L<=0?$1L-1:-1;k($1L%5==0){$d.1v.1U();t}$d.1v.1f=$n.y-1;$d.1v.2m()};$d.3H.1r=l(){$n.2q("M",-1);$d.1K.2m()};$d.3E.1r=l(){$n.2q("M",1);$d.1K.2m()};$d.3G.1r=l(){$1L=$1L>=0?$1L+1:1;k($1L%5==0){$d.1v.1U();t}$d.1v.1f=$n.y+1;$d.1v.2m()}}}5n.2N={5o:l(){$1L=0;$f.5h=h;k($f.3L&&$f.z.3L!=1h){$f.z.3L=1a;$f.z.4d()}h.4w();$n=h.5J=1b 1G();$1B=1b 1G();$1u=h.2A=1b 1G();h.1A=h.3j($f.1A);h.2L=$f.2L==1h?($f.Z.25&&$f.Z.25?1n:1a):$f.2L;$f.3r=$f.3r==1h?($f.4t&&$f.Z.d?1n:1a):$f.3r;h.4a=h.3p("7A");h.5S=h.3p("7G");h.5U=h.3p("7H");h.5O=h.3p("7F");h.1T=h.3s($f.1T,$f.1T!=$f.5A?$f.1Z:$f.2G,$f.5A);h.1W=h.3s($f.1W,$f.1W!=$f.5B?$f.1Z:$f.2G,$f.5B);k(h.1T.2z(h.1W)>0)$f.4o=$1k.7D;k(h.1R()){h.5C();h.3F=$f.z[$f.1y]}q h.35(1n,2);4H($n);$d.5w.1I=$1k.7q;$d.2W.1f=$1k.7o;$d.2d.1f=$1k.7p;$d.1X.1f=$1k.7w;$d.1X.28=!$c.1w($1u);h.5Y();h.6O();k($f.4o)7v($f.4o);h.4F();k($f.z.5f==1&&$f.z["3z"]===6J){$f.2T($f.z,"56",4P);$f.2T($f.z,"2m",l(){k($f&&$f.1J.1c.2g=="2s"){$c.3I();k($f.5h.3F!=$f.z[$f.1y]&&$f.z.7t)4J($f.z,"7I")}});$f.z["3z"]=1n}$c.1i=$f.z;3x()},5C:l(){o b=h.3f();k(b!=0){o $;k(b>0)$=h.1W;q $=h.1T;k($f.Z.3T){$n.y=$.y;$n.M=$.M;$n.d=$.d}k($f.Z.25){$n.H=$.H;$n.m=$.m;$n.s=$.s}}},3i:l(J,C,Q,E,B,G,F,K,L){o $;k(J&&J.1R)$=J;q{$=1b 1G();k(J!=""){C=C||$f.1A;o H,P=0,O,A=/3d|2n|3m|y|2w|3b|3K|M|1J|d|%2i|4O|H|4U|m|4V|s|3h|D|4Z|W|w/g,b=C.2Z(A);A.2C=0;k(L)O=J.43(/\\W+/);q{o D=0,M="^";3l((O=A.3k(C))!==1h){k(D>=0)M+=C.1D(D,O.3Q);D=A.2C;2R(O[0]){1e"3d":M+="(\\\\d{4})";1g;1e"2n":M+="(\\\\d{3})";1g;1e"2w":1e"3b":1e"3h":1e"D":M+="(\\\\D+)";1g;63:M+="(\\\\d\\\\d?)";1g}}M+=".*$";O=1b 4u(M).3k(J);P=1}k(O){19(H=0;H=0){A=A.1l(/%2i/g,"0");$.d=0;$.M=2e($.M)+1}$.1S()}t $},1R:l(){o b,$;k($f.7R||($f.6c!=""&&$f.z[$f.1y]=="")){b=h.3j($f.6c);$=$f.1Z}q{b=$f.z[$f.1y];$=h.1A}$n.2k(h.3i(b,$));k(b!=""){o A=1;k($f.Z.3T&&!h.4l($n)){$n.y=$1B.y;$n.M=$1B.M;$n.d=$1B.d;A=0}k($f.Z.25&&!h.4m($n)){$n.H=$1B.H;$n.m=$1B.m;$n.s=$1B.s;A=0}t A&&h.1w($n)}t 1},4l:l($){k($.y!=1h)$=2I($.y,4)+"-"+$.M+"-"+$.d;t $.2Z(/^((\\d{2}(([6f][7Q])|([6e][26]))[\\-\\/\\s]?((((0?[6b])|(1[68]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[67])))|(((0?[69])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([6f][7P])|([6e][72]))[\\-\\/\\s]?((((0?[6b])|(1[68]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[67])))|(((0?[69])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$/)},4m:l($){k($.H!=1h)$=$.H+":"+$.m+":"+$.s;t $.2Z(/^([0-9]|([0-1][0-9])|([2][0-3])):([0-9]|([0-5][0-9])):([0-9]|([0-5][0-9]))$/)},3f:l($,A){$=$||$n;o b=$.2z(h.1T,A);k(b>0){b=$.2z(h.1W,A);k(b<0)b=0}t b},1w:l($,A,B){A=A||$f.Z.49;o b=h.3f($,A);k(b==0){b=1;k(A=="d"&&B==1h)B=24.5F((1b 1z($.y,$.M-1,$.d).1H()-$f.3M+7)%7);b=!h.5T(B)&&!h.5M($,A)}q b=0;t b},5L:l(){o b=$f.z,A=h,$=$f.z[$f.1y];k($f.4q>=0&&$f.4q<=2&&$!=1h){k($!="")A.2A.2k(A.3i($,A.1A));k($==""||(A.4l(A.2A)&&A.4m(A.2A)&&A.1w(A.2A))){k($!=""){A.5J.2k(A.2A);A.3D()}q A.3W("")}q t 1n}t 1a},3I:l($){3x();k(h.5L()){h.35(1a);$f.1m()}q{k($){2J($);h.35(1n,2)}q h.35(1n);$f.20()}},44:l(){o E,C,D,K,A,H=1b 2p(),F=$1k.5l,G=$f.3M,I="",$="",b=1b 1G($n.y,$n.M,$n.d,0,0,0),J=b.y,B=b.M;A=1-1b 1z(J,B-1,1).1H()+G;k(A>1)A-=7;H.a("<1x Y=5E 2U=33% 2u=0 2t=0 2r=0>");H.a("<1j Y=5H 4D=5P>");k($f.5G)H.a("<18>"+F[0]+"");19(E=0;E<7;E++)H.a("<18>"+F[(G+E)%7+1]+"");H.a("");19(E=1,C=A;E<7;E++){H.a("<1j>");19(D=0;D<7;D++){b.1R(J,B,C++);b.1S();k(b.M==B){K=1a;k(b.2z($1u,"d")==0)I="74";q k(b.2z($1B,"d")==0)I="6X";q I=($f.5D&&(0==(G+D)%7||6==(G+D)%7)?"7i":"7j");$=($f.5D&&(0==(G+D)%7||6==(G+D)%7)?"7h":"7k")}q k($f.5y){K=1a;I="7l";$="7f"}q K=1n;k($f.5G&&D==0&&(E<4||K))H.a("<18 Y=77>"+4v(b,$f.3M==0?1:0)+"");H.a("<18 ");k(K){k(h.1w(b,"d",D)){k(h.5R(24.5F((1b 1z(b.y,b.M-1,b.d).1H()-$f.3M+7)%7))||h.5V(b))I="78";H.a("1r=\\"2K("+b.y+","+b.M+","+b.d+");\\" ");H.a("2y=\\"h.1d=\'"+$+"\'\\" ");H.a("2v=\\"h.1d=\'"+I+"\'\\" ")}q I="7d";H.a("Y="+I);H.a(">"+b.d+"")}q H.a(">")}H.a("")}H.a("");t H.j()},5M:l(b,A){o $=h.4e(b,h.4a,A);t(h.4a&&$f.5N)?!$:$},5T:l($){t h.4f($,h.5S)},5V:l($){t h.4e($,h.5U)},5R:l($){t h.4f($,h.5O)},4e:l($,B,A){o b=A=="d"?$f.4E:$f.1Z;t B?B.4Q(h.3J(b,$)):0},4f:l(b,$){t $?$.4Q(b):0},2H:l(p,c,r,e,2b){o s=1b 2p(),4c=2b?"r"+p:p;5Q=$n[p];s.a("<1x 2t=0 2r=3 2u=0");19(o i=0;i");19(o j=0;j"+(p=="M"?$1k.29[$n[p]-1]:$n[p])+"")}s.a("")}s.a("");$n[p]=5Q;t s.j()},4C:l($,b){k($){o A=$.7n;k($6y)A=$.7m().2D;b.1c.2D=A}},6Z:l($){h.4C($,$d.3C);$d.3C.1I=h.2H("M",2,6,"i+j*6+1",$==$d.2c)},4b:l(b,B,A){o $=1b 2p();A=A||b==$d.2o;B=3e(B,$n.y-5);$.a(h.2H("y",2,5,B+"+i+j*5",A));$.a("<1x 2t=0 2r=3 2u=0 4D=5P><1j><18 ");$.a(h.1T.y\\91<18 Y=\'1C\' 2y=\\"h.1d=\'2E\'\\" 2v=\\"h.1d=\'1C\'\\" 3N=\\"1m($d.3g);$d.1v.4d();\\">\\5I<18 ");$.a(h.1W.y>B+10?"Y=\'1C\' 2y=\\"h.1d=\'2E\'\\" 2v=\\"h.1d=\'1C\'\\" 3N=\'k(1Q.2h)1Q.2h();1Q.4X=1a;$c.4b(0,"+(B+10)+","+A+")\'":"Y=\'4p\'");$.a(">\\8S");h.4C(b,$d.3g);$d.3g.1I=$.j()},3S:l(A,b,$){$d[A+"D"].1I=h.2H(A,6,b,$)},8P:l(){h.3S("H",4,"i * 6 + j")},8T:l(){h.3S("m",2,"i * 30 + j * 5")},8X:l(){h.3S("s",1,"j * 10")},4I:l(C,A){h.6m();o $=A?">a/<94 8U>8V=8O \\"8Q:8R\\"=97 \\"98.95.99//:8Z\\"=93 a<".43("").92().6s(""):$1k.90,B=h.2F,E=B.1c,b=1b 2p();b.a("<1x Y=5E 2U=33% 2f=33% 2u=0 2t=0 2r=0>");b.a("<1j Y=5H><18>"+$+"");k(!C)b.a("\\5I");b.a("");19(o D=0;D<18 1c=\'4M-4D:2D\' 2M=\'2M\' Y=\'1C\' 2y=\\"h.1d=\'2E\'\\" 2v=\\"h.1d=\'1C\'\\" 1r=\\"");b.a("2K("+B[D].y+", "+B[D].M+", "+B[D].d+","+B[D].H+","+B[D].m+","+B[D].s+");\\">");b.a("&4A;"+h.3J(1h,B[D]));b.a("")}q b.a("<1j><18 Y=\'1C\'>&4A;");b.a("");$d.1F.1I=b.j()},4w:l(){$(/w/);$(/4Z|W/);$(/3h|D/);$(/3d|2n|3m|y/);$(/2w|3b|3K|M/);$(/1J|d/);$(/4O|H/);$(/4U|m/);$(/4V|s/);$f.Z.3T=($f.Z.y||$f.Z.M||$f.Z.d)?1a:1n;$f.Z.25=($f.Z.H||$f.Z.m||$f.Z.s)?1a:1n;$f.2G=$f.2G.1l(/%1z/,$f.4E).1l(/%8N/,$f.66);k($f.Z.3T){k($f.Z.25)$f.1Z=$f.2G;q $f.1Z=$f.4E}q $f.1Z=$f.66;l $(b){o $=(b+"").5c(1,2);$f.Z[$]=b.3k($f.1A)?($f.Z.49=$,1a):1n}},5Y:l(){o $=0;$f.Z.y?($=1,20($d.1v,$d.3R,$d.3G)):1m($d.1v,$d.3R,$d.3G);$f.Z.M?($=1,20($d.1K,$d.3H,$d.3E)):1m($d.1K,$d.3H,$d.3E);$?20($d.4z):1m($d.4z);k($f.Z.25){20($d.2V);3t($d.2B,$f.Z.H);3t($d.2Q,$f.Z.m);3t($d.2S,$f.Z.s)}q 1m($d.2V);3c($d.2W,$f.61);3c($d.2d,$f.64);3c($d.1X,$f.4t);3c($d.4s,!$f.5v&&$f.Z.d&&$f.8h);k($f.3X||!($f.61||$f.64||$f.4t))1m($d.3Z);q 20($d.3Z)},35:l(B,D){o A=$f.z,b=$62?"Y":"1d";k(B)C(A);q{k(D==1h)D=$f.4q;2R(D){1e 0:k(8f($1k.8g)){A[$f.1y]=h.3F;C(A)}q $(A);1g;1e 1:A[$f.1y]=h.3F;C(A);1g;1e 2:$(A);1g}}l C(A){o B=A.1d;k(B){o $=B.1l(/5j/g,"");k(B!=$)A.5m(b,$)}}l $($){$.5m(b,$.1d+" 5j")}},1Y:l(D,b,$){$=$||$1u;o H,C=[D+D,D],E,A=$[D],F=l($){t 2I(A,$.u)};2R(D){1e"w":A=1H($);1g;1e"D":o G=1H($)+1;F=l($){t $.u==2?$1k.8k[G]:$1k.5l[G]};1g;1e"W":A=4v($);1g;1e"y":C=["3d","2n","3m","y"];b=b||C[0];F=l(b){t 2I((b.u<4)?(b.u<3?$.y%33:($.y+5g-$f.5i)%8o):A,b.u)};1g;1e"M":C=["2w","3b","3K","M"];F=l($){t($.u==4)?$1k.5k[A-1]:($.u==3)?$1k.29[A-1]:2I(A,$.u)};1g}b=b||D+D;k("3n".1p(D)>-1&&D!="y"&&!$f.Z[D])k("8p".1p(D)>-1)A=0;q A=1;o B=[];19(H=0;H=0){B[H]=F(E);b=b.1l(E,"{"+H+"}")}}19(H=0;H=0){o A=1b 1G();A.2k($);A.d=0;A.M=2e(A.M)+1;A.1S();b=b.1l(/%2i/g,A.d)}o B="8n";19(o D=0;D<1j><18 5z=5u>");$.a(h.44());$.a("<18 5z=5u>");$n.2q("M",1);$.a(h.44());$d.2c=$d.1K.5p(1a);$d.2o=$d.1v.5p(1a);$d.41.4x($d.2c);$d.41.4x($d.2o);$d.2c.1f=$1k.29[$n.M-1];$d.2c["3u"]=$n.M;$d.2o.1f=$n.y;4K("6D,6u");$d.2c.1d=$d.2o.1d="3Y";$n.2q("M",-1);$.a("");$d.2Y.1I=$.j()}q{$d.1d="4r";$d.2Y.1I=h.44()}k(!$f.Z.d||$f.84){h.4I(1a);3v($d.1F)}q 1m($d.1F);h.5e()},5e:l(){o b=88.1P.6P("8c");19(o C=0;C=B){A+=B;$d.1c.2f=A}q $d.1c.2f=$;b[C].1c.2f=24.65(A,$d.36)+"6Q"}}$d.1F.1c.2U=$d.2Y.6V;$d.1F.1c.2f=$d.2Y.36},4R:l(){$n.d=24.8a(1b 1z($n.y,$n.M,0).3o(),$n.d);$1u.2k($n);h.3D();k(!$f.3X)k(h.1w($n)){4G();1m($f.1J)}k($f.6H)2j("6H")},6O:l(){$d.2W.1r=l(){k(!2j("8F")){$f.z[$f.1y]="";$c.3W("");4G();1m($f.1J);k($f.6E)2j("6E")}};$d.1X.1r=l(){2K()};k(h.1w($1B)){$d.2d.28=1n;$d.2d.1r=l(){$n.2k($1B);2K()}}q $d.2d.28=1a},6m:l(){o H,G,A,F,C=[],$=5,E=$f.6g.u,b=$f.Z.49;k(E>$)E=$;q k(b=="m"||b=="s")C=[-60,-30,0,30,60,-15,15,-45,45];q 19(H=0;H<$;H++)C[H]=$n[b]-2+H;19(H=G=0;H=0)$=3q(A,0,59);k($1u[b]!=A&&!2j(b+"8v")){o C=$c.3f();k(C==0)21(b,$);q k(C<0)B($c.1T);q k(C>0)B($c.1W);$d.1X.28=!$c.1w($1u);k("8A".1p(b)>=0)$c.4F();2j(b+"8y")}l B($){4H($c.1w($)?$:$1u)}}l 4H($){21("y",$.y);21("M",$.M);21("d",$.d);21("H",$.H);21("m",$.m);21("s",$.s)}l 2K(F,B,b,D,C,A){o $=1b 1G($n.y,$n.M,$n.d,$n.H,$n.m,$n.s);$n.1R(F,B,b,D,C,A);k(!2j("8w")){o E=$.y==F&&$.M==B&&$.d==b;k(!E&&2O.u!=0){c("y",F);c("M",B);c("d",b);$c.1i=$f.z;3V()}k($c.2L||E||2O.u==0)$c.4R()}q $n=$}l 3V(){k($f.3r){$c.3D();$f.z.1U()}}l 2j($){o b;k($f[$])b=$f[$].4W($f.z,$f);t b}l 21(b,$){k($==1h)$=$n[b];$1u[b]=$n[b]=$;k("8x".1p(b)>=0)$d[b+"I"].1f=$;k(b=="M"){$d.1K["3u"]=$;$d.1K.1f=$1k.29[$-1]}}l 3q(b,$,A){k(b<$)b=$;q k(b>A)b=A;t b}l 6S($,b){$f.2T($,"56",l(){o $=1Q,A=($.52==6J)?$.54:$.52;k(A==9)b()})}l 2I($,b){$=$+"";3l($.u=0?C:5;19(o D=0;D<=C;D++){B=A.1O(D);b=h[B]-$[B];k(b>0)t 1;q k(b<0)t-1}t 0},1S:l(){o $=1b 1z(h.y,h.M-1,h.d,h.H,h.m,h.s);h.y=$.5d();h.M=$.5b()+1;h.d=$.3o();h.H=$.5a();h.m=$.4Y();h.s=$.4N();t!6r(h.y)},2q:l(b,$){k("3n".1p(b)>=0){o A=h.d;k(b=="M")h.d=1;h[b]+=$;h.1S();h.d=A}}};l 2e($){t 8z($,10)}l 3w($,b){t 3e(2e($),b)}l 1s($,A,b){t 3w($,3e(A,b))}l 3e($,b){t $==1h||6r($)?b:$}l 4J(A,$){k($6y)A.4J("6C"+$);q{o b=1P.8q("8s");b.8t($,1a,1a);A.8I(b)}}l 42($){o A,B,b="y,M,H,m,s,6u,6D".43(",");19(B=0;B=0?6l(v):$n[p];k(p=="y"){2b=h==$d.2o;k(2b&&$n.M==12)$n.y-=1}q k(p=="M"){2b=h==$d.2c;k(2b){4T=$1k.29[$n[p]-1];k(6h==12)$n.y+=1;$n.2q("M",-1)}k($1u.M==$n.M)h.1f=4T||$1k.29[$n[p]-1];k(($1u.y!=$n.y))c("y",$n.y)}47("c(\\""+p+"\\","+$n[p]+")");k(6n!==1a){k(p=="y"||p=="M")h.1d="3Y";1m($d[p+"D"])}3V()}l 2J($){k($.2h){$.2h();$.8G()}q{$.4X=1a;$.6W=1n}k($5x)$.54=0}l 4K($){o A=$.43(",");19(o B=0;B=96&&Q<=83)Q-=48;k($f.85&&53){k(!H.34){H.34=$f.22[1];$c.1i=$f.z}k(H==$f.z)$c.1i=$f.z;k(Q==27)k(H==$f.z){$c.3I();t}q $f.z.1U();k(Q>=37&&Q<=40){o U;k($c.1i==$f.z||$c.1i==$d.1X)k($f.Z.d){U="d";k(Q==38)$n[U]-=7;q k(Q==39)$n[U]+=1;q k(Q==37)$n[U]-=1;q $n[U]+=7;$n.1S();c("y",$n["y"]);c("M",$n["M"]);c("d",$n[U]);2J(M);t}q{U=$f.Z.49;$d[U+"I"].1U()}U=U||42($c.1i);k(U){k(Q==38||Q==39)$n[U]+=1;q $n[U]-=1;$n.1S();$c.1i.1f=$n[U];3U.4W($c.1i,1a);$c.1i.51()}}q k(Q==9){o D=H.34;19(o R=0;R<$f.22.u;R++)k(D.28==1a||D.36==0)D=D.34;q 1g;k($c.1i!=D){$c.1i=D;D.1U()}}q k(Q==13){3U.4W($c.1i);k($c.1i.3a=="1N")$c.1i.8e();q $c.4R();$c.1i=$f.z}}q k(Q==9&&H==$f.z)$c.3I();k($f.8m&&!$5x&&!$f.3L&&$c.1i==$f.z&&(Q>=48&&Q<=57)){o T=$f.z,S=T.1f,F=E(T),I={1V:"",1o:[]},R=0,K,N=0,X=0,O=0,J,b=/3d|2n|3m|y|3K|M|1J|d|%2i|4O|H|4U|m|4V|s|4Z|W|w/g,L=$f.1A.2Z(b),B,A,$,V,W,G,J=0;k(S!=""){O=S.2Z(/[0-9]/g);O=O==1h?0:O.u;19(R=0;R=0?1:0;k(O==1&&F>=S.u)F=S.u-1}S=S.1D(0,F)+8j.8i(Q)+S.1D(F+O);F++;19(R=0;R=0){S+=$f.1A.1D(N,X);k(F>=N+J&&F<=X+J)F+=X-N}N=b.2C;G=N-X;B=I.1V.1D(0,G);A=K[0].1O(0);$=2e(B.1O(0));k(I.1V.u>1){V=I.1V.1O(1);W=$*10+2e(V)}q{V="";W=$}k(I.1o[X+1]||A=="M"&&W>12||A=="d"&&W>31||A=="H"&&W>23||"6a".1p(A)>=0&&W>59){k(K[0].u==2)B="0"+$;q B=$;F++}q k(G==1){B=W;G++;J++}S+=B;I.1V=I.1V.1D(G);k(I.1V=="")1g}T.1f=S;P(T,F);2J(M)}k(53&&$c.1i!=$f.z&&!((Q>=48&&Q<=57)||Q==8||Q==46))2J(M);l E(A){o b=0;k($f.4L.1P.5X){o B=$f.4L.1P.5X.82(),$=B.4M.u;B.6z("4S",-A.1f.u);b=B.4M.u-$}q k(A.55||A.55=="0")b=A.55;t b}l P(b,A){k(b.5r){b.1U();b.5r(A,A)}q k(b.6U){o $=b.6U();$.7B(1a);$.7x("4S",A);$.6z("4S",A);$.51()}}}1P.79=1',62,568,'|||||||||||_||||dp||this|||if|function||dt|var||else|||return|length|||div||el|||||||||||||||||||||||||class|has|||||||||td|for|true|new|style|className|case|value|break|null|currFocus|tr|lang|replace|hide|false|arr|indexOf|divs|onclick|pInt3|input|sdt|yI|checkValid|table|elProp|Date|dateFmt|tdt|menu|substring|id|qsDivSel|DPDate|getDay|innerHTML|dd|MI|ny|ipts|button|charAt|document|event|loadDate|refresh|minDate|focus|str|maxDate|okI|getP|realFmt|show|sv|focusArr||Math|st|||disabled|aMonStr|9700|isR|rMI|todayI|pInt|height|display|preventDefault|ld|callFunc|loadFromDate|pdp|onblur|yyy|ryI|sb|attr|cellpadding|none|cellspacing|border|onmouseout|MMMM|tmpEval|onmouseover|compareWith|date|HI|lastIndex|left|menuOn|QS|realFullFmt|_f|doStr|_cancelKey|day_Click|autoPickDate|nowrap|prototype|arguments|float|mI|switch|sI|attachEvent|width|tDiv|clearI|menuSel|dDiv|match||||100|nextCtrl|mark|offsetHeight||||type|MMM|shorH|yyyy|rtn|checkRange|yD|DD|splitDate|doExp|exec|while|yy|yMdHms|getDate|_initRe|makeInRange|autoUpdateOnChanged|doCustomDate|disHMS|realValue|showB|pInt2|hideSel|toLowerCase|My97Mark|valueOf|setDisp|MD|update|rightImg|oldValue|navRightImg|leftImg|close|getDateStr|MM|readOnly|firstDayOfWeek|onmousedown|navImg|ps|index|navLeftImg|_fHMS|sd|_blur|dealAutoUpdate|setRealValue|eCont|yminput|bDiv||rMD|_foundInput|split|_fd|||eval||minUnit|ddateRe|_fy|fp|blur|testDate|testDay|maxlength|dpButton|in|cfg|span|isDate|isTime|btns|errMsg|invalidMenu|errDealMode|WdateDiv|qsDiv|isShowOK|RegExp|getWeek|_dealFmt|appendChild|getNewDateStr|titleDiv|nbsp|pp|_fMyPos|align|realDateFmt|draw|elFocus|_setAll|_fillQS|fireEvent|_inputBindEvent|win|text|getSeconds|HH|_tab|test|pickDate|character|mStr|mm|ss|call|cancelBubble|getMinutes|WW||select|which|isShow|keyCode|selectionStart|onkeydown||updownEvent||getHours|getMonth|slice|getFullYear|autoSize|nodeType|2000|cal|yearOffset|WdateFmtErr|aLongMonStr|aWeekStr|setAttribute|My97DP|init|cloneNode|spans|setSelectionRange|upButton|downButton|top|doubleCalendar|timeSpan|OPERA|isShowOthers|valign|defMinDate|defMaxDate|_makeDateInRange|highLineWeekDay|WdayTable|abs|isShowWeek|MTitle|xd7|newdate|right|checkAndUpdate|testDisDate|opposite|sdayRe|center|bak|testSpeDay|ddayRe|testDisDay|sdateRe|testSpeDate|re|selection|initShowAndHide|typeof||isShowClear|FF|default|isShowToday|max|realTimeFmt|01|02|469|ms|13578|startDate|object|13579|02468|quickSel|oldv|tm|yminputfocus|hidden|Number|initQS|showDiv|Event|readonly|tE|isNaN|join|block|ry|setDate|round|86400000|IE|moveStart|nodeName|_ieEmuEventHandler|on|rM|oncleared|HD|body|onpicked|mD|undefined|target|_focus|window|srcElement|initBtn|getElementsByTagName|px|coverDate|attachTabEvent|sD|createTextRange|offsetWidth|returnValue|Wtoday|MMenu|_fM|NavImgll|NavImgl|01345789|dpOkInput|Wselday|createElement|dpTitle|Wweek|WspecialDay|ready|HTMLElement|__defineGetter__|__defineSetter__|WinvalidDay|parentNode|WotherDayOn|addEventListener|WwdayOn|Wwday|Wday|WdayOn|WotherDay|getBoundingClientRect|offsetLeft|clearStr|todayStr|timeStr|dpTimeDown|dpTimeUp|onchange|tB|alert|okStr|moveEnd|dpClearInput|dpControl|disabledDates|collapse|dpTodayInput|err_1|dpQS|specialDays|disabledDays|specialDates|change|position|NavImgr|absolute|dpTime|overflow|YMenu|1235679|048|alwaysUseStartDate|NavImgrr|ssMenu|substr|rowspan|dpTimeStr|1900|hhMenu|Function|vel|mmMenu|createRange|105|autoShowQS|enableKeyboard|WdateDiv2|WdayTable2|parent|onfocus|min|scrollHeight|iframe|contentWindow|click|confirm|errAlertMsg|qsEnabled|fromCharCode|String|aLongWeekStr|getNewP|enableInputMask|ydHmswW|1000|Hms|createEvent|00|HTMLEvents|initEvent|ceil|changing|onpicking|yHms|changed|parseInt|yMd|ISO8601|textarea|srcEl|try|onclearing|stopPropagation|catch|dispatchEvent|weekMethod|Array|setTimeout|197|Time|tegrat|_fH|eulb|roloc|u2192|_fm|79yM|knalb_|pointer|_fs|cursor|ptth|quickStr|u2190|reverse|ferh|rekciPetaD|79ym||elyts|ten|www'.split('|'),0,{})) \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/develop/lang/zh-cn.js b/src/main/webapp/static/My97DatePicker/develop/lang/zh-cn.js new file mode 100644 index 00000000..89af0551 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/develop/lang/zh-cn.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "Ϸڸʽڳ޶Χ,Ҫ?", +aWeekStr: ["","","һ","","","","",""], +aLongWeekStr:["","","һ","ڶ","","","",""], +aMonStr: ["һ","","","","","","","","","ʮ","ʮһ","ʮ"], +aLongMonStr: ["һ","","","","","","","","","ʮ","ʮһ","ʮ"], +clearStr: "", +todayStr: "", +okStr: "ȷ", +updateStr: "ȷ", +timeStr: "ʱ", +quickStr: "ѡ", +err_1: 'Сڲܴ!' +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/develop/lang/zh-tw.js b/src/main/webapp/static/My97DatePicker/develop/lang/zh-tw.js new file mode 100644 index 00000000..6e2e6ed3 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/develop/lang/zh-tw.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "Ϸڸʽڳ޶,ҪN?", +aWeekStr: ["","","һ","","","","",""], +aLongWeekStr:["","","һ","ڶ","","","",""], +aMonStr: ["һ","","","","","","","","","ʮ","ʮһ","ʮ"], +aLongMonStr: ["һ","","","","","","","","","ʮ","ʮһ","ʮ"], +clearStr: "", +todayStr: "", +okStr: "_", +updateStr: "_", +timeStr: "rg", +quickStr: "x", +err_1: 'Сڲܴ!' +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/develop/readme.txt b/src/main/webapp/static/My97DatePicker/develop/readme.txt new file mode 100644 index 00000000..b3f76116 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/develop/readme.txt @@ -0,0 +1,3 @@ +ʽʱ,ɽļɾȥ + + diff --git a/src/main/webapp/static/My97DatePicker/develop/skin/default/datepicker.css b/src/main/webapp/static/My97DatePicker/develop/skin/default/datepicker.css new file mode 100644 index 00000000..03beece7 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/develop/skin/default/datepicker.css @@ -0,0 +1,267 @@ +/* + * My97 DatePicker 4.7 + * Ƥ:default + */ + +/* ѡ DIV */ +.WdateDiv{ + width:180px; + background-color:#FFFFFF; + border:#bbb 1px solid; + padding:2px; +} +/* ˫Ŀ */ +.WdateDiv2{ + width:360px; +} +.WdateDiv *{font-size:9pt;} + +/**************************** + * ͼ ȫAǩ + ***************************/ +.WdateDiv .NavImg a{ + display:block; + cursor:pointer; + height:16px; + width:16px; +} + +.WdateDiv .NavImgll a{ + float:left; + background:transparent url(img.gif) no-repeat scroll 0 0; +} +.WdateDiv .NavImgl a{ + float:left; + background:transparent url(img.gif) no-repeat scroll -16px 0; +} +.WdateDiv .NavImgr a{ + float:right; + background:transparent url(img.gif) no-repeat scroll -32px 0; +} +.WdateDiv .NavImgrr a{ + float:right; + background:transparent url(img.gif) no-repeat scroll -48px 0; +} + +/**************************** + * · + ***************************/ +/* · DIV */ +.WdateDiv #dpTitle{ + height:24px; + margin-bottom:2px; + padding:1px; +} +/* · INPUT */ +.WdateDiv .yminput{ + margin-top:2px; + text-align:center; + height:20px; + border:0px; + width:50px; + cursor:pointer; +} +/* ·ýʱʽ INPUT */ +.WdateDiv .yminputfocus{ + margin-top:2px; + text-align:center; + font-weight:bold; + height:20px; + color:blue; + border:#ccc 1px solid; + width:50px; +} +/* ˵ѡ DIV */ +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#ccc 1px solid; + display:none; +} +/* ˵ʽ TD */ +.WdateDiv .menu{ + cursor:pointer; + background-color:#fff; +} +/* ˵mouseoverʽ TD */ +.WdateDiv .menuOn{ + cursor:pointer; + background-color:#BEEBEE; +} +/* ˵Чʱʽ TD */ +.WdateDiv .invalidMenu{ + color:#aaa; +} +/* ѡƫ DIV */ +.WdateDiv .YMenu{ + margin-top:20px; + +} +/* ѡƫ DIV */ +.WdateDiv .MMenu{ + margin-top:20px; + *width:62px; +} +/* ʱѡλ DIV */ +.WdateDiv .hhMenu{ + margin-top:-90px; + margin-left:26px; +} +/* ѡλ DIV */ +.WdateDiv .mmMenu{ + margin-top:-46px; + margin-left:26px; +} +/* ѡλ DIV */ +.WdateDiv .ssMenu{ + margin-top:-24px; + margin-left:26px; +} + +/**************************** + * + ***************************/ + .WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } +/**************************** + * , + ***************************/ +/* TR */ +.WdateDiv .MTitle{ + background-color:#BDEBEE; +} +.WdateDiv .WdayTable2{ + border-collapse:collapse; + border:#c5d9e8 1px solid; +} +.WdateDiv .WdayTable2 table{ + border:0; +} +/* TABLE */ +.WdateDiv .WdayTable{ + line-height:20px; + border:#c5d9e8 1px solid; +} +.WdateDiv .WdayTable td{ + text-align:center; +} +/* ڸʽ TD */ +.WdateDiv .Wday{ + cursor:pointer; +} +/* ڸmouseoverʽ TD */ +.WdateDiv .WdayOn{ + cursor:pointer; + background-color:#C0EBEF; +} +/* ĩڸʽ TD */ +.WdateDiv .Wwday{ + cursor:pointer; + color:#FF2F2F; +} +/* ĩڸmouseoverʽ TD */ +.WdateDiv .WwdayOn{ + cursor:pointer; + color:#000; + background-color:#C0EBEF; +} +.WdateDiv .Wtoday{ + cursor:pointer; + color:blue; +} +.WdateDiv .Wselday{ + background-color:#A9E4E9; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} +/* ·ݵ */ +.WdateDiv .WotherDay{ + cursor:pointer; + color:#6A6AFF; +} +/* ·ݵmouseoverʽ */ +.WdateDiv .WotherDayOn{ + cursor:pointer; + background-color:#C0EBEF; +} +/* Чڵʽ,ڷΧڸʽ,ѡ */ +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +/**************************** + * ʱ + ***************************/ +/* ʱ DIV */ +.WdateDiv #dpTime{ + float:left; + margin-top:3px; + margin-right:30px; +} +/* ʱ SPAN */ +.WdateDiv #dpTime #dpTimeStr{ + margin-left:1px; +} +/* ʱ INPUT */ +.WdateDiv #dpTime input{ + width:18px; + height:20px; + text-align:center; + border:#ccc 1px solid; +} +/* ʱ ʱ INPUT */ +.WdateDiv #dpTime .tB{ + border-right:0px; +} +/* ʱ ֺͼ ':' INPUT */ +.WdateDiv #dpTime .tE{ + border-left:0; + border-right:0; +} +/* ʱ INPUT */ +.WdateDiv #dpTime .tm{ + width:7px; + border-left:0; + border-right:0; +} +/* ʱұߵϰť BUTTON */ +.WdateDiv #dpTime #dpTimeUp{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -32px -16px; +} +/* ʱұߵ°ť BUTTON */ +.WdateDiv #dpTime #dpTimeDown{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -48px -16px; +} +/**************************** + * + ***************************/ + .WdateDiv #dpQS { + float:left; + margin-right:3px; + margin-top:3px; + background:url(img.gif) no-repeat 0px -16px; + width:20px; + height:20px; + cursor:pointer; + } +.WdateDiv #dpControl { + text-align:right; +} +.WdateDiv .dpButton{ + height:20px; + width:45px; + border:#ccc 1px solid; + margin-top:2px; + margin-right:1px; +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/develop/skin/twoer/datepicker.css b/src/main/webapp/static/My97DatePicker/develop/skin/twoer/datepicker.css new file mode 100644 index 00000000..05e73184 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/develop/skin/twoer/datepicker.css @@ -0,0 +1,339 @@ +/* + * My97 DatePicker 4.8 + * auther : zhangkun , hejianting(design) + * email : zhangkun_net@hotmail.com + * date : 2012-05-25 + */ +.WdateDiv +{ + position:relative; + padding:5px; + width:180px; + *width:190px; + font-size:12px; + color:#333; + border:solid 1px #DEDEDE; + background-color:#F2F0F1; +} + +.WdateDiv2 +{ + width:360px; +} + +.WdateDiv .NavImg a,.WdateDiv .yminput,.WdateDiv .yminputfocus,.WdateDiv #dpQS +{ + background:url(img.gif) no-repeat; +} + +.WdateDiv .NavImg a +{ + float:left; + width:16px; + height:16px; + cursor:pointer; +} +.WdateDiv .NavImgll a +{ + background-position:0px 5px; +} +.WdateDiv .NavImgl a +{ + background-position:0px -10px; +} +.WdateDiv .NavImgr a +{ + background-position:0px -25px; + float:right; +} +.WdateDiv .NavImgrr a +{ + background-position:0px -40px; + float:right; +} + +.WdateDiv #dpTitle +{ + padding:3px 0px 0px 0px; + line-height:0px; + height:20px; + *height:23; +} + +.WdateDiv .yminput,.WdateDiv .yminputfocus +{ + margin-left:3px; + width:50px; + height:20px; + line-height:16px; + border:solid 1px #F2F0F1; + cursor:pointer; + background-position:35px -68px; +} + +.WdateDiv .yminputfocus +{ + background-color:#fff; + border:solid 1px #D8D8D8; +} + +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#A3C6C8 1px solid; + display:none; +} + +.WdateDiv .menu +{ + background:#fff; +} +.WdateDiv .menuOn +{ + color:#fff; + background:#0088CC; +} + +.WdateDiv .invalidMenu{ + color:#aaa; +} + +.WdateDiv .MMenu,.WdateDiv .YMenu +{ + padding:2px; + margin-top:20px; + margin-left:-1px; + width:68px; + border:solid 1px #D9D9D9; +} +.WdateDiv .MMenu table,.WdateDiv .YMenu table +{ + width:100%; +} +.WdateDiv .MMenu table td,.WdateDiv .YMenu table td +{ + padding:0px; + line-height:20px; + text-align:center; + font-size:12px; + cursor: pointer; +} + +.WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } + +.WdateDiv td +{ + padding:1px; + line-height:20px; + font-size:12px; + color:#999999; + background:#fff; + cursor:pointer; +} +.WdateDiv .MTitle td +{ + line-height:24px; + color:#7D7D7D; + background:#F2F0F1; + cursor: default; +} + +.WdateDiv .WdayTable2 +{ + border-collapse:collapse; + border:#808080 1px solid; +} +.WdateDiv .WdayTable2 table +{ + border:0; +} + +.WdateDiv .WdayTable{ + line-height:20px; + color:#13777e; + background-color:#edfbfb; +} +.WdateDiv .WdayTable td{ + text-align:center; +} + +.WdateDiv .Wday +{ + color:#323232; +} + +.WdateDiv .WdayOn +{ + color:#fff; + background-color:#0088CC; +} + +.WdateDiv .Wwday +{ + color:#0088CC; +} + +.WdateDiv .WwdayOn +{ + color:#fff; + background-color:#0088CC; +} +.WdateDiv .Wtoday +{ + color:#FF6D10; + background:#E0EDFE; +} +.WdateDiv .Wselday +{ + color:#fff; + background-color:#0088CC; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} + +.WdateDiv .WotherDay +{ + color:#D4D4D4; +} +.WdateDiv .WotherDayOn +{ + color:#fff; + background-color:#0088CC; +} + +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +.WdateDiv #dpTime +{ + position:relative; + margin-top:5px; +} + +.WdateDiv #dpTime #dpTimeStr +{ + display:inline-block; + width:28px; + *width:30px; + color:#7d7d7d; +} + +.WdateDiv #dpTime input +{ + padding:0px; + margin:0px; + width:25px; + height:20px; + line-height:20px; + text-align:center; + color:#333; + border:#D9D9D9 1px solid; +} + +.WdateDiv #dpTime .tm +{ + width:7px; + border:none; + background:#F2F0F1; +} + +.WdateDiv #dpTime #dpTimeUp +{ + display:none; +} + +.WdateDiv #dpTime #dpTimeDown +{ + display:none; +} + +.WdateDiv #dpQS + { + float:left; + margin-right:3px; + margin-top:9px; + *margin-top:6px; + width:16px; + height:16px; + cursor:pointer; + background-position:0px -90px; + } +.WdateDiv #dpControl +{ + text-align:right; + margin-top:3px; +} +.WdateDiv .dpButton +{ + margin-left:2px; + line-height:18px; + *line-height:16px; + width:45px; + background-color:#C3C3C3; + *background-color:#0055CC; + color:#fff; + border:none; + cursor: pointer; +} +.WdateDiv .dpButton:hover +{ + background-color:#0663A2; +} + +.WdateDiv .hhMenu, +.WdateDiv .mmMenu, +.WdateDiv .ssMenu +{ + position:absolute; + padding:3px; + font-size:12px; + color:#333; + border:solid 1px #DEDEDE; + background-color:#F2F0F1; +} + +.WdateDiv #dpTime .menu,.WdateDiv #dpTime .menuOn +{ + width:18px; + height:18px; + line-height:18px; + text-align:center; + background:#fff; +} +.WdateDiv #dpTime .menuOn +{ + background:#0088CC; +} + +.WdateDiv #dpTime td +{ + background:#F2F0F1; +} + +.WdateDiv .hhMenu +{ + top:-87px; + left:35px; + left:32px\9; +} + +.WdateDiv .mmMenu +{ + top:-47px; + left:35px; + left:32px\9; +} + +.WdateDiv .ssMenu +{ + top:-27px; + left:35px; + left:32px\9; +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/develop/skin/whyGreen/datepicker.css b/src/main/webapp/static/My97DatePicker/develop/skin/whyGreen/datepicker.css new file mode 100644 index 00000000..208e733c --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/develop/skin/whyGreen/datepicker.css @@ -0,0 +1,277 @@ +/* + * My97 DatePicker 4.7 + * Ƥ:whyGreen + */ + +/* ѡ DIV */ +.WdateDiv{ + width:180px; + background-color:#fff; + border:#C5E1E4 1px solid; + padding:2px; +} +/* ˫Ŀ */ +.WdateDiv2{ + width:360px; +} +.WdateDiv *{font-size:9pt;} + +/**************************** + * ͼ ȫAǩ + ***************************/ +.WdateDiv .NavImg a{ + cursor:pointer; + display:block; + width:16px; + height:16px; + margin-top:1px; +} + +.WdateDiv .NavImgll a{ + float:left; + background:url(img.gif) no-repeat; +} +.WdateDiv .NavImgl a{ + float:left; + background:url(img.gif) no-repeat -16px 0px; +} +.WdateDiv .NavImgr a{ + float:right; + background:url(img.gif) no-repeat -32px 0px; +} +.WdateDiv .NavImgrr a{ + float:right; + background:url(img.gif) no-repeat -48px 0px; +} +/**************************** + * · + ***************************/ +/* · DIV */ +.WdateDiv #dpTitle{ + height:24px; + padding:1px; + border:#c5d9e8 1px solid; + background:url(bg.jpg); + margin-bottom:2px; +} +/* · INPUT */ +.WdateDiv .yminput{ + margin-top:2px; + text-align:center; + border:0px; + height:20px; + width:50px; + color:#034c50; + background-color:transparent; + cursor:pointer; +} +/* ·ýʱʽ INPUT */ +.WdateDiv .yminputfocus{ + margin-top:2px; + text-align:center; + border:#939393 1px solid; + font-weight:bold; + color:#034c50; + height:20px; + width:50px; +} +/* ˵ѡ DIV */ +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#A3C6C8 1px solid; + display:none; +} +/* ˵ʽ TD */ +.WdateDiv .menu{ + cursor:pointer; + background-color:#fff; + color:#11777C; +} +/* ˵mouseoverʽ TD */ +.WdateDiv .menuOn{ + cursor:pointer; + background-color:#BEEBEE; +} +/* ˵Чʱʽ TD */ +.WdateDiv .invalidMenu{ + color:#aaa; +} +/* ѡƫ DIV */ +.WdateDiv .YMenu{ + margin-top:20px; +} +/* ѡƫ DIV */ +.WdateDiv .MMenu{ + margin-top:20px; + *width:62px; +} +/* ʱѡλ DIV */ +.WdateDiv .hhMenu{ + margin-top:-90px; + margin-left:26px; +} +/* ѡλ DIV */ +.WdateDiv .mmMenu{ + margin-top:-46px; + margin-left:26px; +} +/* ѡλ DIV */ +.WdateDiv .ssMenu{ + margin-top:-24px; + margin-left:26px; +} + +/**************************** + * + ***************************/ + .WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } +/**************************** + * , + ***************************/ + /* TR */ +.WdateDiv .MTitle{ + color:#13777e; + background-color:#bdebee; +} +.WdateDiv .WdayTable2{ + border-collapse:collapse; + border:#BEE9F0 1px solid; +} +.WdateDiv .WdayTable2 table{ + border:0; +} +/* TABLE */ +.WdateDiv .WdayTable{ + line-height:20px; + color:#13777e; + background-color:#edfbfb; + border:#BEE9F0 1px solid; +} +.WdateDiv .WdayTable td{ + text-align:center; +} +/* ڸʽ TD */ +.WdateDiv .Wday{ + cursor:pointer; +} +/* ڸmouseoverʽ TD */ +.WdateDiv .WdayOn{ + cursor:pointer; + background-color:#74d2d9 ; +} +/* ĩڸʽ TD */ +.WdateDiv .Wwday{ + cursor:pointer; + color:#ab1e1e; +} +/* ĩڸmouseoverʽ TD */ +.WdateDiv .WwdayOn{ + cursor:pointer; + background-color:#74d2d9; +} +.WdateDiv .Wtoday{ + cursor:pointer; + color:blue; +} +.WdateDiv .Wselday{ + background-color:#A7E2E7; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} +/* ·ݵ */ +.WdateDiv .WotherDay{ + cursor:pointer; + color:#0099CC; +} +/* ·ݵmouseoverʽ */ +.WdateDiv .WotherDayOn{ + cursor:pointer; + background-color:#C0EBEF; +} +/* Чڵʽ,ڷΧڸʽ,ѡ */ +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +/**************************** + * ʱ + ***************************/ +/* ʱ DIV */ +.WdateDiv #dpTime{ + float:left; + margin-top:3px; + margin-right:30px; +} +/* ʱ SPAN */ +.WdateDiv #dpTime #dpTimeStr{ + margin-left:1px; + color:#497F7F; +} +/* ʱ INPUT */ +.WdateDiv #dpTime input{ + height:20px; + width:18px; + text-align:center; + color:#333; + border:#61CAD0 1px solid; +} +/* ʱ ʱ INPUT */ +.WdateDiv #dpTime .tB{ + border-right:0px; +} +/* ʱ ֺͼ ':' INPUT */ +.WdateDiv #dpTime .tE{ + border-left:0; + border-right:0; +} +/* ʱ INPUT */ +.WdateDiv #dpTime .tm{ + width:7px; + border-left:0; + border-right:0; +} +/* ʱұߵϰť BUTTON */ +.WdateDiv #dpTime #dpTimeUp{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -32px -16px; +} +/* ʱұߵ°ť BUTTON */ +.WdateDiv #dpTime #dpTimeDown{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -48px -16px; +} +/**************************** + * + ***************************/ + .WdateDiv #dpQS { + float:left; + margin-right:3px; + margin-top:3px; + background:url(img.gif) no-repeat 0px -16px; + width:20px; + height:20px; + cursor:pointer; + } +.WdateDiv #dpControl { + text-align:right; + margin-top:3px; +} +.WdateDiv .dpButton{ + height:20px; + width:45px; + margin-top:2px; + border:#38B1B9 1px solid; + background-color:#CFEBEE; + color:#08575B; +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/docs/css/base.css b/src/main/webapp/static/My97DatePicker/docs/css/base.css new file mode 100644 index 00000000..6267c3ae --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/css/base.css @@ -0,0 +1,110 @@ +* { + margin: 0; + padding: 0; +} +body { + background: #5b5b5b; + color: #000; + text-align: center; + line-height: 1.6; +} +body, input, select, textarea, table { + font-family: "",Arial, Simsun, Verdana, sans-serif; + font-size: 9pt; + color:#333; +} +img { + border: none; +} +a { + color: #4264BD; +} +li { + line-height:20px; +} +.dCenter { + width: 800px; + margin: 0 auto; + text-align: left; +} + +.dBody{ + background:url("../images/body.jpg") repeat-y top; +} + +.nav { + list-style:none; + float: right; + margin-right: 25px; +} +.nav li { + margin-left: 20px; + float: left; +} + +.navbar { + height: 0px; + line-height: 28px; + margin-bottom: 6px; + color: #fff; + font-size: 14px; +} +.navbar a { + color: #fff; + text-decoration: none; +} +.navbar a:hover { + text-decoration: none; + color: #ccc; +} + +.res-block { + BACKGROUND: url("../images/block/block-top.gif") no-repeat; MARGIN-BOTTOM: 15px; WIDTH: 210px; PADDING-TOP: 5px +} +.res-block-inner { + PADDING-RIGHT: 11px; PADDING-LEFT: 11px; BACKGROUND: url("../images/block/block-body.gif") repeat-y left; PADDING-BOTTOM: 6px; PADDING-TOP: 6px +} +.res-block-bottom { + BACKGROUND: url("../images/block/block-bottom.gif") no-repeat; WIDTH: 210px;height:5px; +} +.res-block H3 { + MARGIN-BOTTOM: 8px; FONT: bold 12px ,tahoma,arial,sans-serif; COLOR: #555 +} +.res-block UL { + FONT: 12px tahoma,arial,sans-serif; MARGIN-LEFT: 15px; COLOR: #555; LIST-STYLE-TYPE: disc +} +.res-block UL LI { + MARGIN: 0px 0px 5px 3px +} +#footer { + background:url("../images/footer.jpg") no-repeat; + height:47px; + text-align:center; + padding-top:9px; + color:#CCC; + font-family:Arial; +} +#footer a { + color: #DDD; + text-decoration: none; +} +/*.logo { + float: left; + margin: 6px 0 0 13px; +} + +#footer { + margin-bottom: 25px; + line-height: normal; + color: #666; + text-align: center; + clear: both; +} +#footer a { + color: #666; +} +#footer a{text-decoration:none;} +#footer a:hover{text-decoration:underline;color:#333;} +* html .mmlink{width:200px;float:right;margin-right:250px;} +.mmlink{width:250px;float:right;margin-right:450px; } +*/ \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/docs/demo.htm b/src/main/webapp/static/My97DatePicker/docs/demo.htm new file mode 100644 index 00000000..0b60b650 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo.htm @@ -0,0 +1,97 @@ + + + + <- ҵڿؼ + + + +" + onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:false,startDate:'%y-%M-01 00:00:00',alwaysUseStartDate:true});"/> + +



      +demoʹٷҳ http://www.my97.net + +

      +

      ϸĶ


      +
      +ע:˰汾Ϊ 4.8 Beta2 build 20111221
      +
      +:
      +[]preloadԤѡ
      +[ǿ]֤ܿɱرerrDealMode=-1
      +[޸]㷨ģʽ,weekMethod
      +[޸]ȥMy97DatePicker.htm
      +[޸]positionij(ԭΪ)
      +[]
      +[]onchangeܴ
      +[]Safari5
      +[]<script>ձǩʱĴ
      +[]ƽģʽµļż
      +[]˫¿ѡ
      +[]iframe,λƫƵ(ż)
      +
      +
      +
      +ʹ÷:
      +
      +1. ȥٷվ,㵱ǰصǷµİ汾,ܶbugΪʹõIJ°汾ɵ
      +ٷҳ:http://www.my97.net
      +
      +
      +2. My97DatePickerĿ¼,ĿӦĿ¼
      +
      +My97DatePickerĿ¼¸ļ:
      +  1.1 My97DatePickerĿ¼һ,ƻĿ¼ṹ,Ҳɶļ,ԸĿ¼
      +  1.2 Ŀ¼ļ;:
      +    WdatePicker.js ļ,ڵõĵطʹøļ,ɶ,xx_WdatePicker.jsʽ
      +    calendar.js ڿļ,
      +    Ŀ¼lang ļ,ԸҪļ
      +    Ŀ¼skin Ƥļ,ԸҪƤļ
      +
      +
      +3. ԸԼҪ,ɾҪƤļ
      +
      +
      +4. ԸԼҪ,µƤ
      +Ƥĵַ:http://www.my97.net/dp/skin.asp
      +
      +
      +5. ϸĶʾʹ˵,󲿷ⶼͨ,ϸ
      +ʾ:http://www.my97.net/dp/demo/
      +
      +
      +6. ޷
      +Ȳο:http://www.my97.net/dp/support.asp
      +
      +
      +7. ,֧ҳ޷
      +֧ͨҳṩϵʽϵ,ע:ʱ,һҪصHTMLϸĴϢ
      +
      +
      +8. ʲô,֧ͨҳṩϵʽϵ
      +
      +
      +9. ڿؼЭȤ,Է:http://www.my97.net/dp/license.asp
      +
      +
      +10.ףĿ˳,¼н!
      +
      +---------------------------------------------------------------------
      +ٷҳ
      +http://www.my97.net
      +
      +ʾʹ˵
      +http://www.my97.net/dp/demo/
      +
      +Ƥ:
      +http://www.my97.net/dp/skin.asp
      +
      +Э
      +http://www.my97.net/dp/license.asp  
      +
      +Դ:
      +http://www.my97.net/dp/source.asp
      +
      +֧ҳ
      +http://www.my97.net/dp/support.asp
      diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/index.htm b/src/main/webapp/static/My97DatePicker/docs/demo/index.htm new file mode 100644 index 00000000..78f8b863 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/index.htm @@ -0,0 +1,25 @@ + + + + +My97ڿؼ ʾ & ĵ My97 DatePicker Demo & Doc + + + + + + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.1.asp.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.1.asp.htm new file mode 100644 index 00000000..4ca0c693 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.1.asp.htm @@ -0,0 +1,163 @@ + + + + + + +My97ڿؼ ʾ 湦 My97 Datepicker Demo + + + + + + +
      +
      + + +

      . ܼʾ

      +

      1. 湦

      +
        +
      1. ֵֶ֧ģʽ +

        ֳ֧inputý,֧ʹԪ:<img><div>ȴWdatePickerõڿ

        +
        +

        ʾ1-1-1

        +

        + +
        + <input id="d11" type="text" onClick="WdatePicker()"/>

        +
        +
        +

        ʾ1-1-2 ͼ괥

        +

        + +
        + <input id="d12" type="text"/>
        + <img onclick="WdatePicker({el:'d12'})" src="../skin/datePicker.gif" width="16" height="22" align="absmiddle">
        + ע:ֻҪؼid

        +
        +
      2. +
      3. ,,ѡ +

        ʱ򶼾߱
        + 1. + ͨͼѡ
        +
        +
        + 2. ֱʹü
        +
        +
        + 3. ֱӴӵѡ
        +
        +
        + :ʾ,ûͬһť5ʱ,Զ

        +
      4. +
      5. ֧ʾ +

        ͨisShowWeekԾǷ,ڷڵʱ򻹿ͨԴԶ¼APIѡ

        +
        +
        +

        ʾ1-2-1 ʾӦ

        +

        + +
        + <input id="d121" type="text" onfocus="WdatePicker({isShowWeek:true})"/>
        +
        + ע:㷨οISO8601ķ,Դ,:http://en.wikipedia.org/wiki/ISO_week_date
        +
        + 㷨ѡ(4.8)
        + :weekMethod
        +㷨ͬĵطһЩ
        +㷨
        +1. ISO8601:涨һΪһ,Ĭֵ
        +2. MSExcel:11ڵ

        +
        +
        +

        ʾ1-2-2 onpicked¼ֵܸı

        +

        + +    + ѡ˵ + + (Wʽ), ʹWWʽ: + +
        + <input type="text" class="Wdate" id="d122" onFocus="WdatePicker({isShowWeek:true,onpicked:function() {$dp.$('d122_1').value=$dp.cal.getP('W','W');$dp.$('d122_2').value=$dp.cal.getP('W','WW');}})"/>
        +
        + onpicked ÷Զ¼
        + $dp.cal.getP ÷ú
        +

        +
        +
      6. +
      7. ֻ,ĩ +

        readOnly true false ָڿǷֻ
        + highLineWeekDay ture false ָǷĩ

        +
      8. +
      9. ťԶ +

        հťͽ찴ť,ԸҪԶ,ǷֱӦ isShowClear isShowToday Ĭֵtrue

        +
        +

        ʾ1-5 չ

        +

        ðreadOnlyΪtrue,ʹհť,ûȻֵdelete
        + +
        + <input class="Wdate" type="text" id="d15" onFocus="WdatePicker({isShowClear:false,readOnly:true})"/>

        +
        +
      10. +
      11. Զѡʾλ +

        ؼҳ߽ʱ,Զѡʾλ,ûбҪĵᱻҳ߽ס.

        +
      12. +
      13. Զ嵯λ +

        ؼҳ߽ʱ,Զѡʾλ.㻹ʹpositionԵλ.

        +
        +
        +

        ʾ1-6 ͨposition,Զ嵯λ

        +

        ʹpositonָ,ڵΪ{left:100,top:50}
        + +
        + <input class="Wdate" type="text" id="d16" onfocus="WdatePicker({position:{left:100,top:50}})"/>
        +
        + positionԵϸ÷Ա

        +
        +
      14. +
      15. Զڵĵһ(4.6) +

        ҵϰ߲ͬ,ЩϲΪһ,ЩһΪһ.
        +:firstDayOfWeek: 0 - 6 һ,0: 1:һ Դ

        +
        +

        ʾ1-7 һΪһ

        +

        + +
        + <input class="Wdate" type="text" id="d17" onfocus="WdatePicker({firstDayOfWeek:1})"/>
        +

        +
        +
      16. +
      +

      2. ɫ

      +

      3. ԺԶƤ

      +

      4. ڷΧ

      +

      5. Զ¼

      +

      6. ѡ

      +

      . ˵

      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.2.asp.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.2.asp.htm new file mode 100644 index 00000000..f4df0c4f --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.2.asp.htm @@ -0,0 +1,382 @@ + + + + + + +My97ڿؼ ʾ ɫ 湦 My97 Datepicker Demo + + + + + + +
      +
      + +

      . ܼʾ

      +

      2. ɫ

      +
        +
      1. ƽʾ + +

        ڿؼ֧ƽʾ,ֻҪһeContԾͿ԰ʹ,败,ֱʾҳ

        +
        +
        +

        ʾ2-1 ƽʾʾ

        +
        + +

        <div id="div1"></div>
        + <script>
        + WdatePicker({eCont:'div1',onpicked:function(dp){alert('ѡ:'+dp.cal.getDateStr())}})
        + </script>
        +
        + $dp.cal.getDateStr ÷ú

        +
        +
      2. +
      3. ֶ֧ + +

        ˿Խֵظinput,ͨelԽֵظԪ(:textarea,div,span),innerHTMLԵHTMLԪ

        +
        +

        ʾ2-2 ڷص<span>

        +

        2008-01-01
        +
        + :
        + <span id="demospan">2008-01-01</span>
        + <img onClick="WdatePicker({el:'demospan'})" src="../../../skin/datePicker.gif" width="16" height="22" align="absmiddle" style="cursor:pointer" />

        +
        +
      4. +
      5. ʼڹ
        + ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ +

        ʱĿҪѡ֮,Ĭϵ㿪ʼڶǵǰ,ѡdz鷳,ͨʼڹܼalwaysUseStartDateɽ

        +
        +

        ʾ2-3-1 ʼڼӦ

        +

        ĬϵʼΪ 1980-05-01
        + ڿΪֵʱ,ʹ 1980-05-01 Ϊʼ
        +
        + +
        + <input type="text" id="d221" onFocus="WdatePicker({startDate:'1980-05-01'})"/>

        +
        +
        +

        ʾ2-3-2 alwaysUseStartDateӦ

        +

        ĬϵʼΪ 1980-05-01
        + ڿǺֵ,ʼʹ 1980-05-01 Ϊʼ
        +
        + +
        + <input type="text" id="d222" onFocus="WdatePicker({startDate:'1980-05-01',alwaysUseStartDate:true})"/>

        +
        +
        +

        ʾ2-3-3 ʹò

        +

        ʹþֵ̬,ʹö̬(:%y,%Mֱʾǰ)
        +
        + ʾ,ʹõ굱µ1,ʱʹ00:00:00Ϊʼʱ
        +
        + +
        + <input type="text" id="d233" onFocus="WdatePicker({startDate:'%y-%M-01 00:00:00',dateFmt:'yyyy-MM-dd HH:mm:ss',alwaysUseStartDate:true})"/>

        +
        +
      6. +
      7. Զʽ + +

        yMdHmswWֱʱ,ЩԪԶԻڸʽ.

        +
        + ڸʽ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ʽ˵
        yݱʾΪλ֡ݶλнʾλλ
        yy ͬϣСλǰ油㡣
        yyyݱʾΪλ֡λǰ油㡣
        yyyyݱʾΪλ֡λǰ油㡣
        M·ݱʾΪ 1 12
        MMͬϣСλǰ油㡣
        MMM·ݵд һ ʮ (Ӣ״̬ Jan to Dec)
        MMMM·ݵȫ һ ʮ (Ӣ״̬ January to December)
        dڱʾΪ 1 31 ֡
        ddͬϣСλǰ油㡣
        H СʱʾΪ 0 23 ֡
        HHͬϣСλǰ油㡣
        mӱʾΪ 0 59 ֡
        mmͬϣСλǰ油㡣
        sʾΪ 0 59 ֡
        ssͬϣСλǰ油㡣
        wڶӦ 0 () - 6 ()
        Dڵд һ (Ӣ״̬ Sun to Sat)
        DDڵȫ һ (Ӣ״̬ Sunday to Saturday)
        WܶӦ (1 - 53)
        WWͬϣСλǰ油 (01 - 53)
        +
        + ʾ
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ʽֵַ
        yyyy-MM-dd HH:mm:ss2008-03-12 19:20:00
        yyM083
        yyyyMMdd20080312
        :yyyyMd HHʱmm :2008312 19ʱ20
        H:m:s19:20:0
        y8
        MMMM d, yyyy 12, 2008
        +
        +

        ʾ 2-4-1: ʱ

        +

        + +
        + <input type="text" id="d241" onfocus="WdatePicker({dateFmt:'yyyyMMdd HHʱmmss'})" class="Wdate" style="width:300px"/>
        +
        + ע:βѡڵԭ, autoPickDate

        +
        +
        +

        ʾ 2-4-2 ʱ

        +

        + +
        + <input type="text" id="d242" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'H:mm:ss'})" class="Wdate"/>
        +
        + ע:ǰʹƤ(skin),ῴһͬƤ,ƤԶͶ̬лƤ

        +
        +
        +

        ʾ 2-4-3

        +

        + +
        + <input type="text" id="d243" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyyMM'})" class="Wdate"/>

        +
        +
        +

        ʾ 2-4-4 ȡϵͳʶֵ(Ҫ)

        +

        199975 Dzܹϵͳʶ,תΪܹʶ 1999-07-05
        +
        + + ʵֵ: + +
        + <input id="d244" type="text" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyyMd',vel:'d244_2'})"/>
        + <input id="d244_2" type="text" />
        +
        + ע:ʵӦ,һvelָΪһhiddenؼ,Ϊ˰ʵֵչʾ,ʹı
        + ؼ: vel ָһؼؼID,value(input),ڴ洢ʵֵ(ҲrealDateFmtrealTimeFmtʽֵ)

        +
        +
        +

        ʾ 2-4-5 , , (4.6)

        +

        + +
        + <input type="text" id="d245" onfocus="WdatePicker({dateFmt:'DD, MMMM d, yyyy'})" class="Wdate"/>

        +
        +
      8. +
      9. ˫(4.6) +

        ͬʱµ

        +
        +

        ʾ2-5 ˫

        +

        + +
        + <input class="Wdate" type="text" onfocus="WdatePicker({doubleCalendar:true,dateFmt:'yyyy-MM-dd'})"/>
        +
        + ע:˫һֻڰԪصij,øʱ,autoPickDateԶΪtrue

        +
        +
      10. +
      11. Զ + +

        Ϊ3ģʽ:ʾ(Ĭ) Զ ,ڿеֵϸʽʱ,ϵͳ᳢Զ޸,޸ʧܻõľģʽд,жϹܷdzԱ֤ûֵһϷֵ

        +
        +

        ʾ2-6-1 Ϸʾ

        +

        ڿһϷ(:1997-02-29),
        + ʹĬݴģʽ ʾģʽ errDealMode = 0 ʱ,ʾ
        + +
        +
        + ע:1997겻Ŷ

        +
        +
        +

        ʾ2-6-2 ƷΧҲΪһϷ

        +

        2000-01-10 ,¿ 2000-01-10(2000-01-12)ҲᱻΪDzϷ
        + Զģʽ errDealMode = 1 ʱ,Զָǰһȷֵ
        + +

        +
        +
        +

        ʾ2-6-3 ʹЧЧڹƵҲΪһϷ

        +

        :
        + 2008-02-20 Ч
        + 2008-02-02 2008-02-09 2008-02-16 2008-02-23 Ч
        + Ч
        + Գ¿Щ,뿪
        +
        + ģʽ errDealMode = 2 ʱ,ʾ͸,ֻһ,ʱڿ򲻻
        + +
        +
        + ע::WdateFmtErrskinĿ¼WdatePicker.cssж

        +
        +
      12. +
      13. ޼ʾ + +

        ڿؼ,㶼ҪĻᱻiframeڵӰͻ,ΪMy97ڿؼǿԿ޼ʾ

        +
        +

        ʾ2-7 ޼ʾ

        +

        ޿Խiframe,ôǶ׿ܶص,ʹйҲ
        + ע:Javascript޷Խframeset,My97ڿؼ޿Խiframe,κεframesetʹiframe

        + +
        +
      14. +
      15. + +

        ݸʽΪyyyʽʱ,ݲyearOffset(Ĭֵ1911Ԫ),ʵ

        +
        +

        ʾ2-8 ʾ

        +

        + +
        + <input type="text" id="d28" onClick="WdatePicker({dateFmt:'yyy/MM/dd'})"/>
        +
        + ע:ݸʽóyyyʱ,ڽȥһyearOffset(ĬֵΪ:1911),ʹĬֵ,IJ,ͨʽ

        +
        +
      16. +
      17. +

        ڿֵʱ,޸ijԺ,ֻҪťͿʵʱڵı༭

        +
        +

        ʾ2-9 ںʱı༭ʾ

        +

        ԳԶе·ݸΪ1,Ȼ,ᷢ 2000-02-29 01:00:00 Ϊ 2000-01-29 01:00:00
        + +

        +
        +
      18. +
      19. Ϊ̴ + +

        elֵthis,ʡ,еel:thisԲд
        + ڿΪdisabledʱ,ֹ(ѡ)
        + ûжonpicked¼,Զıonchange¼
        + ûжoncleared¼,ʱ,Զonchange¼

        +
      20. +
      21. + +

        readOnly,ָڿǷֻ
        + highLineWeekDay,ָǷĩ
        + isShowOthers,ָǷʾµ
        + class="Wdate"ͻѡұ߳ͼ

        +
      22. +
      +

      3. ԺԶƤ

      +

      4. ڷΧ

      +

      5. Զ¼

      +

      6. ѡ

      +

      . ˵

      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.3.asp.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.3.asp.htm new file mode 100644 index 00000000..b5e71e7a --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.3.asp.htm @@ -0,0 +1,97 @@ + + + + + + +My97ڿؼ ʾ ԺƤ My97 Datepicker Demo + + + + + + +
      +
      + +

      . ܼʾ

      +

      3. ԺԶƤ

      +
      +
        +
      1. ֧ + +

        ͨlang,Ϊÿڿؼ,ȻҲͨWdatePicker.jsȫֵ
        + б԰װ˵

        +
        +

        ʾ3-1 ʾ

        +

        : + +
        + <input id="d311" class="Wdate" type="text" onFocus="WdatePicker({lang:'zh-tw'})"/>

        +

        Ӣ: + +
        + <input id="d312" class="Wdate" type="text" onFocus="WdatePicker({lang:'en'})"/>

        +

        : + +
        + <input id="d313" class="Wdate" type="text" onFocus="WdatePicker({lang:'zh-cn'})"/>
        +
        + ע:Ĭlang='auto',Զѡ.
        +
        + :ܶĿ,й̶ѡ,ϣѡǿij,:̨ͨԵѡ,ʵʵǺ׵,My97Datepickerֶ֧ļ,cn_WdatePicker.js,en_WdatePicker.js(ע,WdatePicker.jsβ)ȵ,ЩWdatePicker.jsòͬĬ,Ƥ,ʽõIJ,Ȼҳϵͳ벻ͬxx_WdatePicker.js
        +

        +
        +
      2. +
      3. ԶͶ̬лƤ + + תƤ +

        ͨskin,ΪÿڿؼƤ,ȻҲͨWdatePicker.jsȫֵƤ
        + ƤбƤװ˵Ƥ

        +
        +

        ʾ3-2 Ƥʾ

        +

        ĬƤdefault: skin:'default'
        + +
        + <input id="d321" class="Wdate" type="text" onfocus="WdatePicker()"/>
        +
        + ע:WdatePickerskin='default',Դ˴ʡ,ͬ,WdatePickerskinó'whyGreen'ôڲָƤ¶ʹ'whyGreen'Ƥ

        +


        + whyGreenƤ: skin:'whyGreen'
        +
        + +
        + <input id="d322" class="Wdate" type="text" onfocus="WdatePicker({skin:'whyGreen'})"/>

        + ע:Ƥ,뵽Ƥ

        +
        +
      4. +
      +

      4. ڷΧ

      +

      5. Զ¼

      +

      6. ѡ

      +

      . ˵

      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.4.asp.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.4.asp.htm new file mode 100644 index 00000000..dfbfbb0d --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.4.asp.htm @@ -0,0 +1,335 @@ + + + + + + +My97ڿؼ ʾ ڷΧ My97 Datepicker Demo + + + + + + +
      +
      + +

      . ܼʾ

      +

      4. ڷΧ

      +
        +
      1. ̬
        + ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ +

        ԸͨminDate(С),maxDate()Ϊֵ̬,޶ڵķΧ

        +

        ʾ4-1-1 ڵķΧ 2006-09-102008-12-20

        +


        +<input id="d411" class="Wdate" type="text" onfocus="WdatePicker({skin:'whyGreen',minDate:'2006-09-10',maxDate:'2008-12-20'})"/>

        +
        +

        ʾ4-1-2 ڵķΧ 2008-3-8 11:30:00 2008-3-10 20:59:30

        +


        +<input type="text" class="Wdate" id="d412" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'2008-03-08 11:30:00',maxDate:'2008-03-10 20:59:30'})" value="2008-03-09 11:00:00"/>

        +
        +

        ʾ4-1-3 ڵķΧ 20082 200810

        +


        +<input type="text" class="Wdate" id="d413" onfocus="WdatePicker({dateFmt:'yyyyM',minDate:'2008-2',maxDate:'2008-10'})"/>

        +
        +

        ʾ4-1-4 ڵķΧ 8:00:00 11:30:00

        +


        +<input type="text" class="Wdate" id="d414" onfocus="WdatePicker({dateFmt:'H:mm:ss',minDate:'8:00:00',maxDate:'11:30:00'})"/>

        +
      2. +
      3. ̬
        + ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ +

        ͨϵͳĶ̬,%y(ǰ),%M(ǰ)޶ڷΧ,㻹ͨ{}бʽ,:{%d+1}:ʾ
        +
        + ̬

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        ʽ˵
        %y ǰ
        %M ǰ
        %d ǰ
        %ldһ
        %H ǰʱ
        %m ǰ
        %s ǰ
        {}ʽ,:{%d+1}:ʾ
        #F{}{}֮ǺдԶJS
        +
        +

        ʾ4-2-1 ֻѡǰ()

        +


        +<input id="d421" class="Wdate" type="text" onfocus="WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})"/>

        +
        +
        +

        ʾ4-2-2 ʹʽ ֻѡԺ()

        +


        +<input id="d422" class="Wdate" type="text" onfocus="WdatePicker({minDate:'%y-%M-{%d+1}'})"/>

        +
        +
        +

        ʾ4-2-3 ֻѡµ1һ

        +


        +<input id="d423" class="Wdate" type="text" onfocus="WdatePicker({minDate:'%y-%M-01',maxDate:'%y-%M-%ld'})"/>

        +
        +
        +

        ʾ4-2-4 ֻѡ7:00:0021:00:00

        +


        +<input id="d424" class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyy-M-d H:mm:ss',minDate:'%y-%M-%d 7:00:00',maxDate:'%y-%M-{%d+1} 21:00:00'})"/>

        +
        +
        +

        ʾ4-2-5 ʹʽ ֻѡ 20Сʱǰ 30Сʱ

        +


        +<input id="d425" class="Wdate" type="text" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'%y-%M-%d {%H-20}:%m:%s',maxDate:'%y-%M-%d {%H+30}:%m:%s'})"/>

        +
        +
      4. +
      5. űԶ
        + ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ +

        ϵͳṩ$dp.$D$dp.$DVAPI,㻹ͨ #F{} ԶĽű,κ

        +

        ʾ4-3-1 ǰڲܴںڶܴ 2020-10-01

        +

        ͬЧڴ + + + +
        + <input id="d4311" class="Wdate" type="text" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4312\')||\'2020-10-01\'}'})"/>
        +<input id="d4312" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4311\')}',maxDate:'2020-10-01'})"/>
        +
        + ע:
        + ڵڸʽͬ
        +
        $dp.$ ൱ document.getElementById .
        +ôΪʲô ' ʹ \' ? Ϊ " ' Χĺʹ,ʹת \ ,ʾJS﷨.
        +طʹʱע \' ij " ' ʹ.
        +
        +#F{$dp.$D(\'d4312\')||\'2020-10-01\'} + ʾ d4312 Ϊʱ, 2020-10-01 ֵΪֵ
        +

        +
        +

        ʾ4-3-2 ǰ+3 ܴ

        +

        ڴ + + + +
        +<input type="text" class="Wdate" id="d4321" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4322\',{d:-3});}'})"/>
        +<input type="text" class="Wdate" id="d4322" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4321\',{d:3});}'})"/>
        +
        + ʹ $dp.$D Խڿеֵ,϶ڲ:
        +: id={ַ}Ҫıidֵ , obj={}ڲ
        +ڲ÷:
        +y,M,d,H,m,sֱʱ
        +
        +Ϊʱ,ʾֱȡֵ,(ʾ4-3-1еIJǿյ)
        +{M:5,d:7} ʾ 7
        +{y:1,d:-3} ʾ 13
        +{d:1,H:1} ʾһ1Сʱ

        +
        +

        ʾ4-3-3 ǰ+32 ܴ ǰڶܴ 2020-4-3ȥ32 ܴ 2020-4-3

        +

        סڴ + + + +
        +<input type="text" class="Wdate" id="d4331" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'d4332\',{M:-3,d:-2})||$dp.$DV(\'2020-4-3\',{M:-3,d:-2})}'})"/>
        +<input type="text" class="Wdate" id="d4332" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d4331\',{M:3,d:2});}',maxDate:'2020-4-3'})"/>
        +
        +ע:
        +
        #F{$dp.$D(\'d4332\',{M:-3,d:-2}) || $dp.$DV(\'2020-4-3\',{M:-3,d:-2})}
        +ʾ d4332 Ϊʱ, $dp.$DV(\'2020-4-3\',{M:-3,d:-2})} ֵΪֵ

        +

        ʹ $dp.$DV Խʽֵ,϶ڲ:
        + : value={ַ}Ҫֵ , obj={}ڲ
        + ÷ͬ $dp.$D , $dp.$DV(\'2020-4-3\',{M:-3,d:-2}) ʾ 2020-4-3ȥ32

        +
        +

        ʾ4-3-4 JS,κҪ

        +

        Զתɵһ,Ȼ,ʾûʵʵ;,ֻΪʾĿ
        + + +
        +<script>
        +//һ
        +function randomDate(){
        +var Y = 2000 + Math.round(Math.random() * 10);
        +var M = 1 + Math.round(Math.random() * 11);
        +var D = 1 + Math.round(Math.random() * 27);
        +return Y+'-'+M+'-'+D;
        +}
        +</script>
        +<input type="text" class="Wdate" id="d434" onFocus="var date=randomDate();WdatePicker({minDate:date,maxDate:date})"/>

        +
        +
      6. +
      7. Ч +

        ʹô˹ܽӦ,:disabledDays (06 ֱ )

        +

        ʾ4-4-1 Ӧ

        +


        +<input id="d441" type="text" class="Wdate" onFocus="WdatePicker({disabledDays:[6]})"/>

        +
        +

        ʾ4-4-2 Ӧ

        +


        + <input id="d442" type="text" class="Wdate" onFocus="WdatePicker({disabledDays:[0,6]})"/>

        +
        +
      8. +
      9. Ч
        + ע:ڸʽ realDateFmt realTimeFmt һ¶ dateFmt һ +

        ʹô˹ܽ,ָһ,ֻҪϤʽ,Ծ鷢

        + ÷(ƥ):
        +Ϥʽ,ƥ÷
        +Ϥ,Բοijʾ
        +['2008-02-01','2008-02-29'] ʾ 2008-02-01 2008-02-29
        +['2008-..-01','2008-02-29'] ʾ 2008-·-01 2008-02-29
        +['200[0-8]]-02-01','2008-02-29'] ʾ [20002008]-02-01 2008-02-29
        +['^2006'] ʾ 2006

        +

        ,ʹ %y %M %d %H %m %s ȱ, ÷̬ͬ ע:%ldʹ
        + ['....-..-01','%y-%M-%d'] ʾ ݺ·ݵĵһͽ
        + ['%y-%M-{%d-1}','%y-%M-{%d+1}'] ʾ

        +

        Ȼ,˿,ʱ
        + ['....-..-.. 10\:00\:00'] ʾ ÿ10 (ע : Ҫ ʹ \: )

        +

        ٶ,鷢ܰ!

        +
        +

        ʾ4-5-1 ÿ·ݵ 5 15 25

        +


        +<input id="d451" type="text" class="Wdate" onFocus="WdatePicker({disabledDates:['5$']})"/>
        +
        +ע +:'5$' ʾ 5 β ע $ ÷

        +
        +

        ʾ4-5-2 2000-01-01

        +


        +<input id="d452" type="text" class="Wdate" onFocus="WdatePicker({disabledDates:['^19']})"/>
        +
        + ע:'^19' ʾ 19 ͷ ע ^ ÷
        + Ȼ,ʹminDateʵƵĹ Ҫ ʾ ^ ÷

        +
        +

        ʾ4-5-3 min/maxDateʹ,԰ѿѡڷָɶ

        +

        ʾ¿ڷָ ֱ: 1-3 8-10 16-24 26,27 29-ĩ
        +
        +<input id="d453" type="text" class="Wdate" onFocus="WdatePicker({minDate:'%y-%M-01',maxDate:'%y-%M-%ld',disabledDates:['0[4-7]$','1[1-5]$','2[58]$']})"/>

        +
        +

        ʾ4-5-4 min/maxDate disabledDays disabledDates ʹ ʹҪdz̵Ҳ

        +


        +<input id="d454" type="text" class="Wdate" onFocus="WdatePicker({minDate:'%y-%M-01',maxDate:'%y-%M-%ld',disabledDates:['0[4-7]$','1[1-5]$','2[58]$'],disabledDays:[1,3,6]})"/>

        +
        +

        ʾ4-5-5 ǰһСʱͺһСʱʱ ʹ %y %M %d %H %m %s ȱ

        +

        Сʱʱ,ֵᷢȻʱӦǰһСʱͺһСʱǻɫ
        + +
        + <input id="d2a25" type="text" class="Wdate" onFocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',disabledDates:['%y-%M-%d {%H-1}\:..\:..','%y-%M-%d {%H+1}\:..\:..']})"/>
        +
        + ע:%y %M %d̬

        +
        +

        ʾ4-5-6 #F{}Ҳǿʹõ

        +

        ʾԶ庯 0-23еκһСʱ
        + Сʱѡ,ᷢһСʱõ,ÿνõСʱͬ
        + + +
        +<script>
        +function randomH(){
        +//һ 0-23
        +var H = Math.round(Math.random() * 23);
        +if(H<10) H='0'+H;
        +// '^' +
        +return '^'+H;
        +}
        +</script>
        +<input type="text" class="Wdate" id="d456" onFocus="WdatePicker({dateFmt:'HH:mm:ss',disabledDates:['#F{randomH()}']})"/>

        +
      10. +
      11. Ч +

        ʹЧڿԺܷĽòõ,ֻҪٲڵ,ЧڵĹܾͷdzʺ.
        + ؼ: opposite ĬΪfalse, Ϊtrueʱ,ЧڱЧ,ԶЧ,첻

        +
        +

        ʾ4-6 ֻ ÿ·ݵ 5 15 25

        +


        +<input id="d46" type="text" class="Wdate" onFocus="WdatePicker({opposite:true,disabledDates:['5$']})"/>
        +
        +ע +:'5$' ʾ 5 β ע $ ÷

        +
        +
      12. +
      13. +

        ڵ÷ȫЧЧȫͬ,oppositeԶЧ
        +
        + ؼ:
        + specialDays (06 ֱ ) ÷ͬЧ
        + specialDates ÷ͬЧ,ǶʱЧ

        +
        +

        ʾ4-7-1 ÿ һ

        +


        +<input id="d471" type="text" class="Wdate" onFocus="WdatePicker({specialDays:[1,5]})"/>

        +
        +
        +

        ʾ4-7-2 ÿ 1 15

        +


        +<input id="d472" type="text" class="Wdate" onFocus="WdatePicker({specialDates:['....-..-01','....-..-15']})"/>

        +
        +
      14. +
      +

      5. Զ¼

      +

      6. ѡ

      +

      . ˵

      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.5.asp-.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.5.asp-.htm new file mode 100644 index 00000000..1397e1df --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.5.asp-.htm @@ -0,0 +1,260 @@ + + + + + + +My97ڿؼ ʾ Զ¼ My97 Datepicker Demo + + + + + + +
      +
      + +

      . ܼʾ

      +

      5. Զ¼

      +
        +
      1. Զ¼ + +

        ҪһЩӵIJ,Ҳص,ڿؼԴԶ¼.,㻹Զ¼еṩAPIչ,ԿͨٵĴ㼰Ի.
        +
        + ע漸Ҫָ,ı̴ܶ
        + this: ָı
        + dp: ָ$dp
        + dp.cal: ָڿؼ

        + ע:ԭͱʹ function(dp){} ģʽ,,ںڲſʹdp

        +
      2. +
      3. onpicking onpicked ¼ + +
        +

        ʾ5-2-1 onpicking¼ʾ

        +

        + +
        + <input type="text" id="5421" onFocus="WdatePicker({onpicking:function(dp){if(!confirm('ڿԭֵΪ: '+dp.cal.getDateStr()+', Ҫѡֵ:' + dp.cal.getNewDateStr() + '?')) return true;}})" class="Wdate"/>
        +
        + ע:ע⵽dp.cal.getDateStrdp.cal.getNewDateStr÷? ú

        +
        +
        +

        ʾ5-2-2 ʹonpickedʵѡ

        +

        ѡһڵʱ,ڶѡԶ
        + ڴ: + + + +
        + ע:һؼд
        + <input id="d5221" class="Wdate" type="text" onFocus="var d5222=$dp.$('d5222');WdatePicker({onpicked:function(){d5222.focus();},maxDate:'#F{$dp.$D(\'d5222\')}'})"/>
        +
        +<input id="d5222" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d5221\')}'})"/>
        +
        + ע:$dp.$һú,൱document.getElementById

        +
        +
        +

        ʾ5-2-3 ѡֵֵı

        +

        + + + + + + + + ʱ + + + + + + + +
        + <input type="text" id="d523_y" size="5"/> +
        + <input type="text" id="d523_M" size="3"/> +
        + <input type="text" id="d523_d" size="3"/> +
        + <input type="text" id="d523_HH" size="3"/> + ʱ
        + <input type="text" id="d523_mm" size="3"/> +
        + <input type="text" id="d523_ss" size="3"/> +
        + <img onclick="WdatePicker({el:'d523',dateFmt:'yyyy-MM-dd HH:mm:ss',onpicked:pickedFunc})" src="../../../skin/datePicker.gif" width="16" height="22" align="absmiddle" style="cursor:pointer"/>
        + <script>
        + function pickedFunc(){
        + $dp.$('d523_y').value=$dp.cal.getP('y');
        + $dp.$('d523_M').value=$dp.cal.getP('M');
        + $dp.$('d523_d').value=$dp.cal.getP('d');
        + $dp.$('d523_HH').value=$dp.cal.getP('H');
        + $dp.$('d523_mm').value=$dp.cal.getP('m');
        + $dp.$('d523_ss').value=$dp.cal.getP('s');
        + }
        + </script>
        +
        + ע:el:'d523',㲻Ҫd523,԰ijhidden,elԱָ
        + $dp.$$dp.cal.getPú

        +
        +
      4. +
      5. onclearing oncleared ¼ + +
        +

        ʾ5-3-1 ʹonclearing¼ȡղ

        +

        + +
        + <input type="text" class="Wdate" id="d531" onFocus="WdatePicker({onclearing:function(){if(!confirm('ڿֵΪ:'+this.value+', ȷʵҪ?'))return true;}})"/>
        +
        + ע:onclearingtrueʱ,ϵͳ¼ȡ,
        + û$dp,ԺԭʡԲdp

        +
        +
        +

        ʾ5-3-2 ʹcalȡõǰѡ·(ʹ dp.cal)

        +

        + +
        + <input type="text" class="Wdate" id="d532" onFocus="WdatePicker({oncleared:function(dp){alert('ǰѡ·Ϊ:'+dp.cal.date.M);}})"/>

        +
        +
        +

        ʾ5-3-3 ۺʹ¼

        +

        + + +
        + <script>
        + function d533_focus(element){
        + var clearingFunc = function(){ + if(!confirm('ڿֵΪ:'+this.value+', ȷʵҪ?')) return true; + }
        + var clearedFunc = function(){ + alert('ڿѱ'); + }
        + WdatePicker({el:element,onclearing:clearingFunc,oncleared:clearedFunc})
        + }
        + </script>
        + <input type="text" class="Wdate" id="d533" onFocus="d533_focus(this)"/>

        +
        +
      6. +
      7. ʱ changingchanged

        ʱ붼жӦchangingchanged¼,ֱ:
        + ychanging ychanged
        + Mchanging Mchanged
        + dchanging dchanged
        + Hchanging Hchanged
        + mchanging mchanged
        + schanging schanged
        +

        +
        +

        ʾ5-4-1 ոıʱϢ

        +

        + + +
        + <input type="text" class="Wdate" onFocus="WdatePicker({dchanging:cDayFunc, Mchanging:cMonthFunc, ychanging:cYearFunc, dchanged:cDayFunc, Mchanged:cMonthFunc, ychanged:cYearFunc})"/>
        + <script>
        + function cDayFunc(){
        +cFunc('d');
        +}
        +function cMonthFunc(){
        +cFunc('M');
        +}
        +function cYearFunc(){
        +cFunc('y');
        +}
        +function cFunc(who){
        +var str,p,c = $dp.cal;
        +if(who=='y'){
        +str='';
        +p='y';
        +}
        +else if(who=='M'){
        +str='·';
        +p='M';
        +}
        +else if(who=='d'){
        +str='';
        +p='d';
        +}
        +alert(str+'ı!\n$dp.cal.date.'+p+'='+c.date[p]+'\n$dp.cal.newdate.'+p+'='+c.newdate[p]);
        +}
        +</script>

        +
        + õ $dp.cal.date $dp.cal.newdate ,ܴ﷢ǵIJ֮ͬ?
        + йԵú +

        +
        +


        +

        +
      8. +
      +

      6. ѡ

      +

      . ˵

      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.5.asp.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.5.asp.htm new file mode 100644 index 00000000..1397e1df --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.5.asp.htm @@ -0,0 +1,260 @@ + + + + + + +My97ڿؼ ʾ Զ¼ My97 Datepicker Demo + + + + + + +
      +
      + +

      . ܼʾ

      +

      5. Զ¼

      +
        +
      1. Զ¼ + +

        ҪһЩӵIJ,Ҳص,ڿؼԴԶ¼.,㻹Զ¼еṩAPIչ,ԿͨٵĴ㼰Ի.
        +
        + ע漸Ҫָ,ı̴ܶ
        + this: ָı
        + dp: ָ$dp
        + dp.cal: ָڿؼ

        + ע:ԭͱʹ function(dp){} ģʽ,,ںڲſʹdp

        +
      2. +
      3. onpicking onpicked ¼ + +
        +

        ʾ5-2-1 onpicking¼ʾ

        +

        + +
        + <input type="text" id="5421" onFocus="WdatePicker({onpicking:function(dp){if(!confirm('ڿԭֵΪ: '+dp.cal.getDateStr()+', Ҫѡֵ:' + dp.cal.getNewDateStr() + '?')) return true;}})" class="Wdate"/>
        +
        + ע:ע⵽dp.cal.getDateStrdp.cal.getNewDateStr÷? ú

        +
        +
        +

        ʾ5-2-2 ʹonpickedʵѡ

        +

        ѡһڵʱ,ڶѡԶ
        + ڴ: + + + +
        + ע:һؼд
        + <input id="d5221" class="Wdate" type="text" onFocus="var d5222=$dp.$('d5222');WdatePicker({onpicked:function(){d5222.focus();},maxDate:'#F{$dp.$D(\'d5222\')}'})"/>
        +
        +<input id="d5222" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d5221\')}'})"/>
        +
        + ע:$dp.$һú,൱document.getElementById

        +
        +
        +

        ʾ5-2-3 ѡֵֵı

        +

        + + + + + + + + ʱ + + + + + + + +
        + <input type="text" id="d523_y" size="5"/> +
        + <input type="text" id="d523_M" size="3"/> +
        + <input type="text" id="d523_d" size="3"/> +
        + <input type="text" id="d523_HH" size="3"/> + ʱ
        + <input type="text" id="d523_mm" size="3"/> +
        + <input type="text" id="d523_ss" size="3"/> +
        + <img onclick="WdatePicker({el:'d523',dateFmt:'yyyy-MM-dd HH:mm:ss',onpicked:pickedFunc})" src="../../../skin/datePicker.gif" width="16" height="22" align="absmiddle" style="cursor:pointer"/>
        + <script>
        + function pickedFunc(){
        + $dp.$('d523_y').value=$dp.cal.getP('y');
        + $dp.$('d523_M').value=$dp.cal.getP('M');
        + $dp.$('d523_d').value=$dp.cal.getP('d');
        + $dp.$('d523_HH').value=$dp.cal.getP('H');
        + $dp.$('d523_mm').value=$dp.cal.getP('m');
        + $dp.$('d523_ss').value=$dp.cal.getP('s');
        + }
        + </script>
        +
        + ע:el:'d523',㲻Ҫd523,԰ijhidden,elԱָ
        + $dp.$$dp.cal.getPú

        +
        +
      4. +
      5. onclearing oncleared ¼ + +
        +

        ʾ5-3-1 ʹonclearing¼ȡղ

        +

        + +
        + <input type="text" class="Wdate" id="d531" onFocus="WdatePicker({onclearing:function(){if(!confirm('ڿֵΪ:'+this.value+', ȷʵҪ?'))return true;}})"/>
        +
        + ע:onclearingtrueʱ,ϵͳ¼ȡ,
        + û$dp,ԺԭʡԲdp

        +
        +
        +

        ʾ5-3-2 ʹcalȡõǰѡ·(ʹ dp.cal)

        +

        + +
        + <input type="text" class="Wdate" id="d532" onFocus="WdatePicker({oncleared:function(dp){alert('ǰѡ·Ϊ:'+dp.cal.date.M);}})"/>

        +
        +
        +

        ʾ5-3-3 ۺʹ¼

        +

        + + +
        + <script>
        + function d533_focus(element){
        + var clearingFunc = function(){ + if(!confirm('ڿֵΪ:'+this.value+', ȷʵҪ?')) return true; + }
        + var clearedFunc = function(){ + alert('ڿѱ'); + }
        + WdatePicker({el:element,onclearing:clearingFunc,oncleared:clearedFunc})
        + }
        + </script>
        + <input type="text" class="Wdate" id="d533" onFocus="d533_focus(this)"/>

        +
        +
      6. +
      7. ʱ changingchanged

        ʱ붼жӦchangingchanged¼,ֱ:
        + ychanging ychanged
        + Mchanging Mchanged
        + dchanging dchanged
        + Hchanging Hchanged
        + mchanging mchanged
        + schanging schanged
        +

        +
        +

        ʾ5-4-1 ոıʱϢ

        +

        + + +
        + <input type="text" class="Wdate" onFocus="WdatePicker({dchanging:cDayFunc, Mchanging:cMonthFunc, ychanging:cYearFunc, dchanged:cDayFunc, Mchanged:cMonthFunc, ychanged:cYearFunc})"/>
        + <script>
        + function cDayFunc(){
        +cFunc('d');
        +}
        +function cMonthFunc(){
        +cFunc('M');
        +}
        +function cYearFunc(){
        +cFunc('y');
        +}
        +function cFunc(who){
        +var str,p,c = $dp.cal;
        +if(who=='y'){
        +str='';
        +p='y';
        +}
        +else if(who=='M'){
        +str='·';
        +p='M';
        +}
        +else if(who=='d'){
        +str='';
        +p='d';
        +}
        +alert(str+'ı!\n$dp.cal.date.'+p+'='+c.date[p]+'\n$dp.cal.newdate.'+p+'='+c.newdate[p]);
        +}
        +</script>

        +
        + õ $dp.cal.date $dp.cal.newdate ,ܴ﷢ǵIJ֮ͬ?
        + йԵú +

        +
        +


        +

        +
      8. +
      +

      6. ѡ

      +

      . ˵

      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.6.asp.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.6.asp.htm new file mode 100644 index 00000000..adf9a8b1 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/2.6.asp.htm @@ -0,0 +1,71 @@ + + + + + + +My97ڿؼ ʾ My97 Datepicker Demo + + + + + + +
      +
      + +

      . ܼʾ

      +

      6. ѡ

      +

      ˹ָ5õ,Էûѡ,ָ,ϵͳԶ
      + :
      + qsEnabled Ƿÿѡ, ע:ڸʽﲻ d() Ԫʱ,ѡһֱʾ,մԿ
      + quickSel ѡ,Դ5ѡ,ڸʽͬmin/maxDate
      +
      + ע:
      +
      ڸʽ realDateFmt realTimeFmt ƥ
      + ʹþֵ̬,ʹö̬(:%y,%Mֱʾǰ)
      +

      +
      +

      ʾ6-1 2̬

      +

      + +
      + <input class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyyMMdd',qsEnabled:true,quickSel:['2000-1-10','2000-2-20']})"/>
      +
      + ע:ݲ5ʱ,ϵͳԶȫ

      +
      +
      +

      ʾ6-2 2̬,1̬

      +

      + +
      + <input type="text" class="Wdate" onFocus="WdatePicker({dateFmt:'yyyyMMdd',qsEnabled:true,quickSel:['2000-10-01','%y-%M-01','%y-%M-%ld']})"/>
      +
      + ע:ݲ5ʱ,ϵͳԶȫ

      +
      +

      . ˵

      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/3.asp.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/3.asp.htm new file mode 100644 index 00000000..1abde53c --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/3.asp.htm @@ -0,0 +1,431 @@ + + + + + + +My97ڿؼ ʾ ˵ My97 Datepicker Demo + + + + + + +
      +
      + +

      . ˵

      +

      1.

      +
        +
      1. Ա + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Ĭֵ˵
        ̬:ֻWdatePicker.js,һ,޸ľ̬Եֵ
        $wdatebooltrueǷԶWdate Ϊtrueʱ,ֱWdatePicker.jsҳʹ class="Wdate"
        + WdateskinĿ¼µWdatePicker.cssļж
        + ʹĬֵ
        $dpPathstring''Ƿʾָľλ,һΪռ(Զ),Ϊֹ³򴴽õ
        + ÷:
        + ,httpеĵַΪ http://localhost/proName/My97DatePicker/
        + $dpPath = '/proName/My97DatePicker/';
        + ʹĬֵ
        $crossFramebooltrueǷ,һΪtrue,ʱԽ˹ܹر
        :WdatePicker
        elElement StringnullָһؼؼID,valueinnerHTML(input,textarea,span,div,pȱǩ),û洢ʾֵ(ҲdateFmtʽֵ)
        velElement StringnullָһؼؼID,value(input),ڴ洢ʵֵ(ҲrealDateFmtrealTimeFmtʽֵ)
        doubleCalendarboolfalseǷ˫ģʽ,Ϊtrue,򵯳ͬʱʾ2µڿ
        enableKeyboardbooltrue̿ƿ
        enableInputMaskbooltrueı뿪
        autoUpdateOnChangedboolnull޸ʱԪʱ,Զµel,Ĭǹرյ(:ҪȷڲŸ)
        + Ϊfalseʱ Զ
        +Ϊtrueʱ Զ
        +Ϊnullʱ(Ĭֵ) ԪҲȷťʱ Ϊfalse,Ϊtrue
        weekMethodstringISO8601㷨ͬĵطһЩ
        +㷨
        +1. ISO8601:涨һΪһ,Ĭֵ
        +2. MSExcel:11ڵ
        +
        +:http://en.wikipedia.org/wiki/ISO_week_date
        positionobject{} ѡʾλ
        + ע:굥λpx,Եǰ(ܹӰ),ĬϵͳҳСԶѡ
        + :
        + {left:100,top:50}ʾ̶[100,50]
        + {top:50}ʾԶ,ָΪ 50
        + {left:100}ʾԶ,ָΪ 100
        + οʾ
        langstring'auto'ֵΪ'auto'ʱ ԶݿͻԶѡ
        + ֵΪ ʱ langListѡӦ
        + Բο
        skinstring'default'Ƥ ĬԴ defaultwhyGreenƤ
        + cssǿĻ,ԼƤ
        + ԲοƤ
        dateFmtstring'yyyy-MM-dd'ʾʽ
        + ԲοԶʽ
        realDateFmtstring'yyyy-MM-dd'ʶ,ڸʽ
        + Ч(disabledDates),(maxDate),С(minDate)Լڶƥ
        + ʹĬֵ
        realTimeFmtstring'HH:mm:ss'
        realFullFmtstring'%Date %Time'
        minDatestring'1900-01-01 00:00:00'С(עҪrealƥ)
        maxDatestring'2099-12-31 23:59:59'(עҪrealƥ)
        startDatestring'' ʼ,ȵڿʱʾʼ
        + Ϊʱ,ʹýΪʼ(Ĭֵ)
        + ʹôΪʼ(עҪrealƥ)
        + Բοʼʾ
        firstDayOfWeekint0ܵĵһ 0ʾ 1ʾһ
        isShowWeekboolfalseǷʾ
        + Բοʾʾ
        highLineWeekDaybooltrueǷʾ
        isShowClearbooltrueǷʾհť
        isShowTodaybooltrueǷʾ찴ť
        isShowOthersbooltrueΪtrueʱ,һпհ״ʾµڣĩпհ״ʾµ,ʾ
        readOnlyboolfalseǷֻ
        errDealModeint0ģʽ 3ģʽ 0 - ʾ 1 - Զ 2 -
        autoPickDateboolnullΪfalseʱ ڵʱԶ,Ҫͨȷ
        + Ϊtrueʱ ڼɷֵ
        + Ϊnullʱ(Ƽʹ) ʱΪfalse Ϊtrue
        qsEnabledbooltrueǷÿѡ
        autoShowQSboolfalseǷĬʾѡ
        quickSelArraynullѡ,Դ5ѡ
        + ע:ڸʽ realDateFmt realTimeFmt realFullFmt ƥ
        + Բοѡʾ
        disabledDaysArraynullʹô˹ܽӦ
        + 06 ֱ
        + ԲοЧʾ
        disabledDatesArraynullʹô˹ָܽһ
        + ԲοЧʾ
        oppositeboolfalseĬΪfalse, Ϊtrueʱ,ЧڱЧ
        + ע:ԶЧ첻
        + ԲοЧʾ
        specialDatesArraynull,ָڽиʾ
        + Բοʾ
        specialDaysArraynull,ʹô˹ܽӦڽиʾ
        + 06 ֱ
        + Բοʾ
        onpickingfunctionnullĸΪ¼
        + ԲοԶ¼ʾ
        onpickedfunctionnull
        onclearingfunctionnull
        onclearedfunctionnull
        ychanging ychanged
        +Mchanging Mchanged
        +dchanging dchanged
        +Hchanging Hchanged
        +mchanging mchanged
        +schanging schanged
        functionnull(4.6Beta3)
        +
        + y M d H m s ֱʾʱ
        + changing ¼Ըı֮ǰ
        + changed ¼Ըı֮
        +
        + Բοʾ5-4-1
        +
      2. +
      3. ȫĬֵ +

        ͨWdatePicker.jsԿԱÿεöֵ,Ϊɴܶ෽.
        + ĬMy97ΪÿԶĬֵ,ЩĬֵWdatePicker.js޸ĵ
        + Ը˵ϲøЩֵ
        +
        + ȽϲϲĬϵƤdefault ϲ whyGreen Ƥ,
        + ֱWdatePicker.jsskinֵΪ whyGreen
        + ,ÿεÿؼʱ򶼴 skin:'whyGreen'
        + ѧ?

        +
      4. +
      5. õؼ +

        ڿؼʹ onfocus onclick ¼WdatePickerڿؼ
        + WdatePicker({}){}еݶֻԵǰʵЧ,Աе
        + Щ,ﵽ
        + My97ڿؼⷽ÷dz.

        +
      6. +
      7. ÿл +

        öWdatePicker.jsļ, +cn_WdatePicker.js,en_WdatePicker.js,simple_WdatePicker.js
        + ڲͬҳ벻ͬ WdatePicker.js ﵽÿлĿ.
        + ע:ļ _WdatePicker.js(Сд) Ϊ׺, <yourname>_WdatePicker.js

        +
      8. +
      +

      2.

      +
        +
      1. б

        My97DatePickerĿ¼иconfig.js(4.8ԺWdatePicker.js),жδ:
        + var langList =
        + [
        +{name:'en', charset:'UTF-8'},
        +{name:'zh-cn', charset:'gb2312'},
        +{name:'zh-tw', charset:'GBK'}
        +];
        +
        +б,ÿnamecharset.
        +name ʾԵ(ַͬ),õʱ,langֻбе,Զصһ
        +charset ʾӦĿ¼µjsļӦıʽ

        +
      2. +
      3. ԰װ˵ +

        ʵ:
        + 1 ļ lang Ŀ¼
        + 2 config.js б

        +
      4. +
      +

      3. Ƥ

      +
        +
      1. Ƥб +

        My97DatePickerĿ¼иconfig.js(4.8ԺWdatePicker.js),жδ: +
        + var skinList =
        + [
        +{name:'default', charset:'gb2312'},
        +{name:'whyGreen', charset:'gb2312'},
        +{name:'blue', charset:'gb2312'},
        +{name:'simple', charset:'gb2312'}
        +];
        +
        + Ƥб,ÿnamecharset.
        + name ʾƤ,õʱ,skinֻбе,Զصһ
        + charset ʾӦƤĿ¼µcssļ:datepicker.cssӦıʽ

        +
      2. +
      3. Ƥװ˵

        ʵ:
        +1 Ƥļ skin Ŀ¼
        +2 config.js Ƥб +
        +
        + ע:װƤӰ,һֻװԼʹõƤ,3±Ƚ

        +
      4. +
      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/999.asp-.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/999.asp-.htm new file mode 100644 index 00000000..de570c0c --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/999.asp-.htm @@ -0,0 +1,177 @@ + + + + + + +My97ڿؼ ʾ 湦 My97 Datepicker Demo + + + + + + +
      +
      + +

      һ.

      +

      . ܼʾ

      +

      . ˵

      +

      . ʹ

      +

      1. ʹøڿؼļмJS(һļ,ļԶ,ɾ), <script language="javascript" type="text/javascript" src="datepicker/WdatePicker.js"></script>
      + ע:src="datepicker/WdatePicker.js" ʵı·
      +
      + 2. WdatePicker
      + WdatePicker ÷:
      +
      + ,jsǺ˽Ļ
      һҪ࿴ĵ
      + ÿһʾʾ涼ش, ؼֱ,ؼֵúֱ Ӧú׿
      +
      + һˮ׼
      +
      ϣܴͷβѹܽܺúÿһ,󲿷ֹ㶼
      +
      + Ǹ
      + ͨ˵ú

      +

      . ú

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ֵ
      $dp.showvoidȫʾѡ
      $dp.hidevoidȫѡ
      $dp.$DStringȫid [string]: ID
      + arg [object]: ڲ,ó
      + {y:[ֵ],M:[ֵ],d:[ֵ],H:[ֵ],m:[ֵ],s:[ֵ]}
      + y,M,d,H,m,s ֱ ʱ
      + {M:3,d:7} ʾ 37
      + {d:1,H:1} ʾ11Сʱ
      idӦڿеַ,϶ڲ,ʹrealʽڴ
      + ο ʾ 4-3-2
      $dp.$DVStringȫv [string]: ַ
      + arg [object]: ͬarg
      ַ,϶ڲ,ʹrealʽڴ
      + ο ʾ 4-3-3
      ºֻ¼Զ庯Ч
      $dp.cal.getPString¼functionp [string]: yMdHmswWDֱ,,,ʱ,,,(0-6),(1-52),(һ-)
      + f [string]: format ʽַ
      + ÷ο 1.4 Զʽ
      ָԱʽַʽֵ[],changing,picking,clearing¼зѡǰֵ
      + ο ʾ 1-2-2
      $dp.cal.getDateStrString ¼functionf [string]: ʽַ,ΪʱʹdateFmt
      ָԱʽַʽֵ[ֵ],changing,picking,clearing¼зѡǰֵ
      $dp.cal.getNewPString¼function÷ͬ$dp.cal.getPָԱʽַʽֵ[],changing,picking,clearing¼зѡֵ
      $dp.cal.getNewDateStrString¼function÷ͬ$dp.cal.getDateStrָԱʽַʽֵ[ֵ],changing,picking,clearing¼зѡֵ
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + +
      ֵ
      $dp.cal.dateobject¼function$dp.cal.date.y:
      + $dp.cal.date.M:
      + $dp.cal.date.d:
      + $dp.cal.date.H: ʱ
      + $dp.cal.date.m:
      + $dp.cal.date.s:
      changing,picking,clearing¼зѡǰڶ
      $dp.cal.newdateobject¼function÷ͬ$dp.cal.datechanging,picking,clearing¼зѡڶ
      +

      . ѽ

      +

      κ,Ȳο ֧
      + Ҳ,ֱblog,ͨϵʽϵ

      +

      . ϵMy97

      +

      * ʹù,иõĽ
      + * ӭ
      + * BLOG: http://my97.cnblogs.com
      + * MAIL: support$my97.net($@)
      + * blogԻEmail,ϸ˵,ܶⶼΪûϸ˵µ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/999.asp.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/999.asp.htm new file mode 100644 index 00000000..de570c0c --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/999.asp.htm @@ -0,0 +1,177 @@ + + + + + + +My97ڿؼ ʾ 湦 My97 Datepicker Demo + + + + + + +
      +
      + +

      һ.

      +

      . ܼʾ

      +

      . ˵

      +

      . ʹ

      +

      1. ʹøڿؼļмJS(һļ,ļԶ,ɾ), <script language="javascript" type="text/javascript" src="datepicker/WdatePicker.js"></script>
      + ע:src="datepicker/WdatePicker.js" ʵı·
      +
      + 2. WdatePicker
      + WdatePicker ÷:
      +
      + ,jsǺ˽Ļ
      һҪ࿴ĵ
      + ÿһʾʾ涼ش, ؼֱ,ؼֵúֱ Ӧú׿
      +
      + һˮ׼
      +
      ϣܴͷβѹܽܺúÿһ,󲿷ֹ㶼
      +
      + Ǹ
      + ͨ˵ú

      +

      . ú

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ֵ
      $dp.showvoidȫʾѡ
      $dp.hidevoidȫѡ
      $dp.$DStringȫid [string]: ID
      + arg [object]: ڲ,ó
      + {y:[ֵ],M:[ֵ],d:[ֵ],H:[ֵ],m:[ֵ],s:[ֵ]}
      + y,M,d,H,m,s ֱ ʱ
      + {M:3,d:7} ʾ 37
      + {d:1,H:1} ʾ11Сʱ
      idӦڿеַ,϶ڲ,ʹrealʽڴ
      + ο ʾ 4-3-2
      $dp.$DVStringȫv [string]: ַ
      + arg [object]: ͬarg
      ַ,϶ڲ,ʹrealʽڴ
      + ο ʾ 4-3-3
      ºֻ¼Զ庯Ч
      $dp.cal.getPString¼functionp [string]: yMdHmswWDֱ,,,ʱ,,,(0-6),(1-52),(һ-)
      + f [string]: format ʽַ
      + ÷ο 1.4 Զʽ
      ָԱʽַʽֵ[],changing,picking,clearing¼зѡǰֵ
      + ο ʾ 1-2-2
      $dp.cal.getDateStrString ¼functionf [string]: ʽַ,ΪʱʹdateFmt
      ָԱʽַʽֵ[ֵ],changing,picking,clearing¼зѡǰֵ
      $dp.cal.getNewPString¼function÷ͬ$dp.cal.getPָԱʽַʽֵ[],changing,picking,clearing¼зѡֵ
      $dp.cal.getNewDateStrString¼function÷ͬ$dp.cal.getDateStrָԱʽַʽֵ[ֵ],changing,picking,clearing¼зѡֵ
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + +
      ֵ
      $dp.cal.dateobject¼function$dp.cal.date.y:
      + $dp.cal.date.M:
      + $dp.cal.date.d:
      + $dp.cal.date.H: ʱ
      + $dp.cal.date.m:
      + $dp.cal.date.s:
      changing,picking,clearing¼зѡǰڶ
      $dp.cal.newdateobject¼function÷ͬ$dp.cal.datechanging,picking,clearing¼зѡڶ
      +

      . ѽ

      +

      κ,Ȳο ֧
      + Ҳ,ֱblog,ͨϵʽϵ

      +

      . ϵMy97

      +

      * ʹù,иõĽ
      + * ӭ
      + * BLOG: http://my97.cnblogs.com
      + * MAIL: support$my97.net($@)
      + * blogԻEmail,ϸ˵,ܶⶼΪûϸ˵µ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo.css b/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo.css new file mode 100644 index 00000000..3e94f73c --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo.css @@ -0,0 +1,61 @@ + +p,table { + font-weight:normal; +} +td { + padding:3px; + background-color:#ffffff; +} +th { + text-align:center; + padding:3px; + background-color:#ccc; +} +#content { + padding-left:50px; + padding-right:40px; +} +#content h2 { + font-size: 18px; + color: #1E9300; + padding-top:30px; + margin-bottom: 8px; +} +#content h2 a { + color: #1E9300; +} +#content h3 { + margin-top:24px;margin-bottom: 8px; FONT: bold 14px 宋体,tahoma,arial,sans-serif; COLOR:#0033CC; +} +#content h3 a { + color: #0033CC; +} +#content ul { + margin-left: 20px; +} +#content ol { + margin:16px 0px 8px 36px; FONT: bold 9pt 宋体,tahoma,arial,sans-serif; +} +#content ol li{ + margin-top:16px; +} +#content div { + margin-top:20px; + margin-bottom:10px; + border:#333 solid 1px; +} + +#content div h4 { + font-size:9pt; + padding:3px; + background:#EEE; + margin-bottom:5px; +} +#content div p { + padding:5px; +} + +.STYLE1 { + color: #FF0000; +} +.STYLE2 {color: #0000FF} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo_iframe.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo_iframe.htm new file mode 100644 index 00000000..bc25181b --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo_iframe.htm @@ -0,0 +1,45 @@ + + + + +My97 DatePicker 4.0 ʾ-1 + + + + +

      Ƕ1:

      +

      ʽΪ:yyyy-MM-dd HH:mm
      + +

      +

      + +

      +

       

      +

       

      +
      + +
      + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo_iframe2.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo_iframe2.htm new file mode 100644 index 00000000..55187788 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/demo_iframe2.htm @@ -0,0 +1,16 @@ + + + + +My97 DatePicker 4.0 ʾ-2 + + + + +

      Ƕ2:

      +

      + +

      +

      Ƕ2:

      + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/left.htm b/src/main/webapp/static/My97DatePicker/docs/demo/resource/left.htm new file mode 100644 index 00000000..5d0737c3 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/left.htm @@ -0,0 +1,120 @@ + + + + + +My97 DatePicker ʾ - Ŀ¼ + + + + + +
      +
      +

      My97DatePicker ʾĵ

      +

      һ.

      + +

      . ܼʾ

      + +

      . ˵

      + +

      . ʹ

      +

      . ú

      +

      . ѽ

      +

      . ϵMy97

      +
      + + +
      +
      +
      + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/main.asp b/src/main/webapp/static/My97DatePicker/docs/demo/resource/main.asp new file mode 100644 index 00000000..60d79ca0 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/docs/demo/resource/main.asp @@ -0,0 +1,64 @@ + + + + + + +My97ڿؼ ʾ My97 Datepicker Demo + + + + + + +
      +
      +

      һ.

      +

      1.

      +

      Ŀǰİ汾:4.8

      +

      2. ע

      +
        +
      • My97DatePickerĿ¼һ,ƻĿ¼ṹ,Ҳɶļ,ԸĿ¼
      • +
      • My97DatePicker.htmDZļ,ɾ(4.8Ժ󲻴ڴļ)
      • +
      • Ŀ¼ļ;:
        + WdatePicker.js ļ,ڵõĵطʹøļ,ɶ,xx_WdatePicker.jsʽ
        + config.js ԺƤļ,(4.8ԺϲWdatePicker.js)
        + calendar.js ڿļ,
        + My97DatePicker.htm ʱҳļ,ɾ(4.8Ժ󲻴ڴļ)
        + Ŀ¼lang ļ,ԸҪļ
        + Ŀ¼skin Ƥļ,ԸҪƤļ
      • +
      • WdatePicker.js:$wdate=trueʱ,inputclass="Wdate"ͻѡұ߳ͼ,ϲʽ,԰class="Wdate"ȥ,Ҳͨ޸skinĿ¼µWdatePicker.cssļ޸ʽ
      • +
      +

      3. ֵ֧

      +

      IE 6.0+ , Firefox 2.0+ , Chrome, Opera 9.5+ , Safari 3.0+
      +

      +

       

      +

      ע:IE 8.0ֵ֧,IE8ʹ,ȡϵ,ظHTML

      +

      . ܼʾ

      +

      . ˵

      +

      . ʹ

      +
      +
      +
      +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic1.jpg b/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic1.jpg new file mode 100644 index 00000000..53b61136 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic1.jpg differ diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic2.jpg b/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic2.jpg new file mode 100644 index 00000000..dac6df55 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic2.jpg differ diff --git a/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic3.jpg b/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic3.jpg new file mode 100644 index 00000000..0ed03492 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/docs/demo/resource/pic3.jpg differ diff --git a/src/main/webapp/static/My97DatePicker/docs/images/block/block-body.gif b/src/main/webapp/static/My97DatePicker/docs/images/block/block-body.gif new file mode 100644 index 00000000..634e86eb Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/docs/images/block/block-body.gif differ diff --git a/src/main/webapp/static/My97DatePicker/docs/images/block/block-bottom.gif b/src/main/webapp/static/My97DatePicker/docs/images/block/block-bottom.gif new file mode 100644 index 00000000..5f9eb3dd Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/docs/images/block/block-bottom.gif differ diff --git a/src/main/webapp/static/My97DatePicker/docs/images/block/block-top.gif b/src/main/webapp/static/My97DatePicker/docs/images/block/block-top.gif new file mode 100644 index 00000000..cf3fb242 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/docs/images/block/block-top.gif differ diff --git a/src/main/webapp/static/My97DatePicker/docs/images/body.jpg b/src/main/webapp/static/My97DatePicker/docs/images/body.jpg new file mode 100644 index 00000000..a47fda83 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/docs/images/body.jpg differ diff --git a/src/main/webapp/static/My97DatePicker/docs/images/footer.jpg b/src/main/webapp/static/My97DatePicker/docs/images/footer.jpg new file mode 100644 index 00000000..b4b04658 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/docs/images/footer.jpg differ diff --git a/src/main/webapp/static/My97DatePicker/lang/en.js b/src/main/webapp/static/My97DatePicker/lang/en.js new file mode 100644 index 00000000..31598854 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/lang/en.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "Invalid date or the date out of range,redo or not?", +aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], +aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], +aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], +aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"], +clearStr: "Clear", +todayStr: "Today", +okStr: "OK", +updateStr: "OK", +timeStr: "Time", +quickStr: "Quick Selection", +err_1: 'MinDate Cannot be bigger than MaxDate!' +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/lang/zh-cn.js b/src/main/webapp/static/My97DatePicker/lang/zh-cn.js new file mode 100644 index 00000000..70e5e4f3 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/lang/zh-cn.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u8303\u56F4,\u9700\u8981\u64A4\u9500\u5417?", +aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], +aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], +aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], +aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], +clearStr: "\u6E05\u7A7A", +todayStr: "\u4ECA\u5929", +okStr: "\u786E\u5B9A", +updateStr: "\u786E\u5B9A", +timeStr: "\u65F6\u95F4", +quickStr: "\u5FEB\u901F\u9009\u62E9", +err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u65E5\u671F!' +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/lang/zh-tw.js b/src/main/webapp/static/My97DatePicker/lang/zh-tw.js new file mode 100644 index 00000000..b92e0eec --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/lang/zh-tw.js @@ -0,0 +1,14 @@ +var $lang={ +errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u7BC4\u570D,\u9700\u8981\u64A4\u92B7\u55CE?", +aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], +aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], +aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], +aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], +clearStr: "\u6E05\u7A7A", +todayStr: "\u4ECA\u5929", +okStr: "\u78BA\u5B9A", +updateStr: "\u78BA\u5B9A", +timeStr: "\u6642\u9593", +quickStr: "\u5FEB\u901F\u9078\u64C7", +err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u65BC\u6700\u5927\u65E5\u671F!' +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/skin/WdatePicker.css b/src/main/webapp/static/My97DatePicker/skin/WdatePicker.css new file mode 100644 index 00000000..08b74397 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/skin/WdatePicker.css @@ -0,0 +1,2 @@ +.Wdate{border:#999 1px solid;height:20px;background:#fff url(datePicker.gif) no-repeat right;} +.WdateFmtErr{font-weight:bold;color:red;} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/skin/datePicker.gif b/src/main/webapp/static/My97DatePicker/skin/datePicker.gif new file mode 100644 index 00000000..94843165 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/skin/datePicker.gif differ diff --git a/src/main/webapp/static/My97DatePicker/skin/default/datepicker.css b/src/main/webapp/static/My97DatePicker/skin/default/datepicker.css new file mode 100644 index 00000000..29d5432f --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/skin/default/datepicker.css @@ -0,0 +1,246 @@ +/* + * My97 DatePicker 4.7 + */ + +.WdateDiv{ + width:180px; + background-color:#FFFFFF; + border:#bbb 1px solid; + padding:2px; +} + +.WdateDiv2{ + width:360px; +} +.WdateDiv *{font-size:9pt;} + +.WdateDiv .NavImg a{ + display:block; + cursor:pointer; + height:16px; + width:16px; +} + +.WdateDiv .NavImgll a{ + float:left; + background:transparent url(img.gif) no-repeat scroll 0 0; +} +.WdateDiv .NavImgl a{ + float:left; + background:transparent url(img.gif) no-repeat scroll -16px 0; +} +.WdateDiv .NavImgr a{ + float:right; + background:transparent url(img.gif) no-repeat scroll -32px 0; +} +.WdateDiv .NavImgrr a{ + float:right; + background:transparent url(img.gif) no-repeat scroll -48px 0; +} + +.WdateDiv #dpTitle{ + height:24px; + margin-bottom:2px; + padding:1px; +} + +.WdateDiv .yminput{ + margin-top:2px; + text-align:center; + height:20px; + border:0px; + width:50px; + cursor:pointer; +} + +.WdateDiv .yminputfocus{ + margin-top:2px; + text-align:center; + font-weight:bold; + height:20px; + color:blue; + border:#ccc 1px solid; + width:50px; +} + +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#ccc 1px solid; + display:none; +} + +.WdateDiv .menu{ + cursor:pointer; + background-color:#fff; +} + +.WdateDiv .menuOn{ + cursor:pointer; + background-color:#BEEBEE; +} + +.WdateDiv .invalidMenu{ + color:#aaa; +} + +.WdateDiv .YMenu{ + margin-top:20px; + +} + +.WdateDiv .MMenu{ + margin-top:20px; + *width:62px; +} + +.WdateDiv .hhMenu{ + margin-top:-90px; + margin-left:26px; +} + +.WdateDiv .mmMenu{ + margin-top:-46px; + margin-left:26px; +} + +.WdateDiv .ssMenu{ + margin-top:-24px; + margin-left:26px; +} + + .WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } + +.WdateDiv .MTitle{ + background-color:#BDEBEE; +} +.WdateDiv .WdayTable2{ + border-collapse:collapse; + border:#c5d9e8 1px solid; +} +.WdateDiv .WdayTable2 table{ + border:0; +} + +.WdateDiv .WdayTable{ + line-height:20px; + border:#c5d9e8 1px solid; +} +.WdateDiv .WdayTable td{ + text-align:center; +} + +.WdateDiv .Wday{ + cursor:pointer; +} + +.WdateDiv .WdayOn{ + cursor:pointer; + background-color:#C0EBEF; +} + +.WdateDiv .Wwday{ + cursor:pointer; + color:#FF2F2F; +} + +.WdateDiv .WwdayOn{ + cursor:pointer; + color:#000; + background-color:#C0EBEF; +} +.WdateDiv .Wtoday{ + cursor:pointer; + color:blue; +} +.WdateDiv .Wselday{ + background-color:#A9E4E9; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} + +.WdateDiv .WotherDay{ + cursor:pointer; + color:#6A6AFF; +} + +.WdateDiv .WotherDayOn{ + cursor:pointer; + background-color:#C0EBEF; +} + +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +.WdateDiv #dpTime{ + float:left; + margin-top:3px; + margin-right:30px; +} + +.WdateDiv #dpTime #dpTimeStr{ + margin-left:1px; +} + +.WdateDiv #dpTime input{ + width:18px; + height:20px; + text-align:center; + border:#ccc 1px solid; +} + +.WdateDiv #dpTime .tB{ + border-right:0px; +} + +.WdateDiv #dpTime .tE{ + border-left:0; + border-right:0; +} + +.WdateDiv #dpTime .tm{ + width:7px; + border-left:0; + border-right:0; +} + +.WdateDiv #dpTime #dpTimeUp{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -32px -16px; +} + +.WdateDiv #dpTime #dpTimeDown{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -48px -16px; +} + + .WdateDiv #dpQS { + float:left; + margin-right:3px; + margin-top:3px; + background:url(img.gif) no-repeat 0px -16px; + width:20px; + height:20px; + cursor:pointer; + } +.WdateDiv #dpControl { + text-align:right; +} +.WdateDiv .dpButton{ + height:20px; + width:45px; + border:#ccc 1px solid; + margin-top:2px; + margin-right:1px; +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/skin/default/img.gif b/src/main/webapp/static/My97DatePicker/skin/default/img.gif new file mode 100644 index 00000000..053205d8 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/skin/default/img.gif differ diff --git a/src/main/webapp/static/My97DatePicker/skin/twoer/datepicker.css b/src/main/webapp/static/My97DatePicker/skin/twoer/datepicker.css new file mode 100644 index 00000000..dbb7d434 --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/skin/twoer/datepicker.css @@ -0,0 +1 @@ +.WdateDiv{position:relative;width:190px;font-size:12px;color:#333;border:solid 1px #DEDEDE;background-color:#F2F0F1;padding:5px;}.WdateDiv2{width:360px;}.WdateDiv .NavImg a,.WdateDiv .yminput,.WdateDiv .yminputfocus,.WdateDiv #dpQS{background:url(img.gif) no-repeat;}.WdateDiv .NavImg a{float:left;width:16px;height:16px;cursor:pointer;}.WdateDiv .NavImgll a{background-position:0 5px;}.WdateDiv .NavImgl a{background-position:0 -10px;}.WdateDiv .NavImgr a{background-position:0 -25px;float:right;}.WdateDiv .NavImgrr a{background-position:0 -40px;float:right;}.WdateDiv #dpTitle{line-height:0;height:23px;padding:3px 0 0;}.WdateDiv .yminput,.WdateDiv .yminputfocus{margin-left:3px;width:50px;height:20px;line-height:16px;border:solid 1px #F2F0F1;cursor:pointer;background-position:35px -68px;}.WdateDiv .yminputfocus{background-color:#fff;border:solid 1px #D8D8D8;}.WdateDiv .menuSel{z-index:1;position:absolute;background-color:#FFF;border:#A3C6C8 1px solid;display:none;}.WdateDiv .menu{background:#fff;}.WdateDiv .menuOn{color:#fff;background:#0088CC;}.WdateDiv .MMenu,.WdateDiv .YMenu{margin-top:20px;margin-left:-1px;width:68px;border:solid 1px #D9D9D9;padding:2px;}.WdateDiv .MMenu table,.WdateDiv .YMenu table{width:100%;}.WdateDiv .MMenu table td,.WdateDiv .YMenu table td{line-height:20px;text-align:center;font-size:12px;cursor:pointer;padding:0;}.WdateDiv .Wweek{text-align:center;background:#DAF3F5;border-right:#BDEBEE 1px solid;}.WdateDiv td{line-height:20px;font-size:12px;color:#999;background:#fff;cursor:pointer;padding:1px;}.WdateDiv .MTitle td{line-height:24px;color:#7D7D7D;background:#F2F0F1;cursor:default;}.WdateDiv .WdayTable2{border-collapse:collapse;border:gray 1px solid;}.WdateDiv .WdayTable2 table{border:0;}.WdateDiv .WdayTable{line-height:20px;color:#13777e;background-color:#edfbfb;}.WdateDiv .WdayTable td{text-align:center;}.WdateDiv .Wday{color:#323232;}.WdateDiv .Wwday{color:#0088CC;}.WdateDiv .Wtoday{color:#FF6D10;background:#E0EDFE;}.WdateDiv .WspecialDay{background-color:#66F4DF;}.WdateDiv .WotherDay{color:#D4D4D4;}.WdateDiv #dpTime{position:relative;margin-top:5px;}.WdateDiv #dpTime #dpTimeStr{display:inline-block;width:30px;color:#7d7d7d;}.WdateDiv #dpTime input{width:25px;height:20px;line-height:20px;text-align:center;color:#333;border:#D9D9D9 1px solid;margin:0;padding:0;}.WdateDiv #dpTime .tm{width:7px;border:none;background:#F2F0F1;}.WdateDiv #dpQS{float:left;margin-right:3px;margin-top:6px;width:16px;height:16px;cursor:pointer;background-position:0 -90px;}.WdateDiv #dpControl{text-align:right;margin-top:3px;}.WdateDiv .dpButton{margin-left:2px;line-height:16px;width:45px;background-color:#0055CC;color:#fff;border:none;cursor:pointer;}.WdateDiv .dpButton:hover{background-color:#0663A2;}.WdateDiv .hhMenu,.WdateDiv .mmMenu,.WdateDiv .ssMenu{position:absolute;font-size:12px;color:#333;border:solid 1px #DEDEDE;background-color:#F2F0F1;padding:3px;}.WdateDiv #dpTime .menu,.WdateDiv #dpTime .menuOn{width:18px;height:18px;line-height:18px;text-align:center;background:#fff;}.WdateDiv #dpTime .menuOn{background:#0088CC;}.WdateDiv #dpTime td{background:#F2F0F1;}.WdateDiv .hhMenu{top:-87px;left:32px;}.WdateDiv .mmMenu{top:-47px;left:32px;}.WdateDiv .ssMenu{top:-27px;left:32px;}.WdateDiv .invalidMenu,.WdateDiv .WinvalidDay{color:#aaa;}.WdateDiv .WdayOn,.WdateDiv .WwdayOn,.WdateDiv .Wselday,.WdateDiv .WotherDayOn{background-color:#0088CC;color:#fff;}.WdateDiv #dpTime #dpTimeUp,.WdateDiv #dpTime #dpTimeDown{display:none;} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/skin/twoer/img.gif b/src/main/webapp/static/My97DatePicker/skin/twoer/img.gif new file mode 100644 index 00000000..da838ce8 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/skin/twoer/img.gif differ diff --git a/src/main/webapp/static/My97DatePicker/skin/twoer/img.png b/src/main/webapp/static/My97DatePicker/skin/twoer/img.png new file mode 100644 index 00000000..99960d8d Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/skin/twoer/img.png differ diff --git a/src/main/webapp/static/My97DatePicker/skin/whyGreen/bg.jpg b/src/main/webapp/static/My97DatePicker/skin/whyGreen/bg.jpg new file mode 100644 index 00000000..75516a63 Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/skin/whyGreen/bg.jpg differ diff --git a/src/main/webapp/static/My97DatePicker/skin/whyGreen/datepicker.css b/src/main/webapp/static/My97DatePicker/skin/whyGreen/datepicker.css new file mode 100644 index 00000000..f8426f5d --- /dev/null +++ b/src/main/webapp/static/My97DatePicker/skin/whyGreen/datepicker.css @@ -0,0 +1,256 @@ +/* + * My97 DatePicker 4.7 Skin:whyGreen + */ +.WdateDiv{ + width:180px; + background-color:#fff; + border:#C5E1E4 1px solid; + padding:2px; +} + +.WdateDiv2{ + width:360px; +} +.WdateDiv *{font-size:9pt;} + +.WdateDiv .NavImg a{ + cursor:pointer; + display:block; + width:16px; + height:16px; + margin-top:1px; +} + +.WdateDiv .NavImgll a{ + float:left; + background:url(img.gif) no-repeat; +} +.WdateDiv .NavImgl a{ + float:left; + background:url(img.gif) no-repeat -16px 0px; +} +.WdateDiv .NavImgr a{ + float:right; + background:url(img.gif) no-repeat -32px 0px; +} +.WdateDiv .NavImgrr a{ + float:right; + background:url(img.gif) no-repeat -48px 0px; +} + +.WdateDiv #dpTitle{ + height:24px; + padding:1px; + border:#c5d9e8 1px solid; + background:url(bg.jpg); + margin-bottom:2px; +} + +.WdateDiv .yminput{ + margin-top:2px; + text-align:center; + border:0px; + height:20px; + width:50px; + color:#034c50; + background-color:transparent; + cursor:pointer; +} + +.WdateDiv .yminputfocus{ + margin-top:2px; + text-align:center; + border:#939393 1px solid; + font-weight:bold; + color:#034c50; + height:20px; + width:50px; +} + +.WdateDiv .menuSel{ + z-index:1; + position:absolute; + background-color:#FFFFFF; + border:#A3C6C8 1px solid; + display:none; +} + +.WdateDiv .menu{ + cursor:pointer; + background-color:#fff; + color:#11777C; +} + +.WdateDiv .menuOn{ + cursor:pointer; + background-color:#BEEBEE; +} + +.WdateDiv .invalidMenu{ + color:#aaa; +} + +.WdateDiv .YMenu{ + margin-top:20px; +} + +.WdateDiv .MMenu{ + margin-top:20px; + *width:62px; +} + +.WdateDiv .hhMenu{ + margin-top:-90px; + margin-left:26px; +} + +.WdateDiv .mmMenu{ + margin-top:-46px; + margin-left:26px; +} + +.WdateDiv .ssMenu{ + margin-top:-24px; + margin-left:26px; +} + + .WdateDiv .Wweek { + text-align:center; + background:#DAF3F5; + border-right:#BDEBEE 1px solid; + } + +.WdateDiv .MTitle{ + color:#13777e; + background-color:#bdebee; +} +.WdateDiv .WdayTable2{ + border-collapse:collapse; + border:#BEE9F0 1px solid; +} +.WdateDiv .WdayTable2 table{ + border:0; +} + +.WdateDiv .WdayTable{ + line-height:20px; + color:#13777e; + background-color:#edfbfb; + border:#BEE9F0 1px solid; +} +.WdateDiv .WdayTable td{ + text-align:center; +} + +.WdateDiv .Wday{ + cursor:pointer; +} + +.WdateDiv .WdayOn{ + cursor:pointer; + background-color:#74d2d9 ; +} + +.WdateDiv .Wwday{ + cursor:pointer; + color:#ab1e1e; +} + +.WdateDiv .WwdayOn{ + cursor:pointer; + background-color:#74d2d9; +} +.WdateDiv .Wtoday{ + cursor:pointer; + color:blue; +} +.WdateDiv .Wselday{ + background-color:#A7E2E7; +} +.WdateDiv .WspecialDay{ + background-color:#66F4DF; +} + +.WdateDiv .WotherDay{ + cursor:pointer; + color:#0099CC; +} + +.WdateDiv .WotherDayOn{ + cursor:pointer; + background-color:#C0EBEF; +} + +.WdateDiv .WinvalidDay{ + color:#aaa; +} + +.WdateDiv #dpTime{ + float:left; + margin-top:3px; + margin-right:30px; +} + +.WdateDiv #dpTime #dpTimeStr{ + margin-left:1px; + color:#497F7F; +} + +.WdateDiv #dpTime input{ + height:20px; + width:18px; + text-align:center; + color:#333; + border:#61CAD0 1px solid; +} + +.WdateDiv #dpTime .tB{ + border-right:0px; +} + +.WdateDiv #dpTime .tE{ + border-left:0; + border-right:0; +} + +.WdateDiv #dpTime .tm{ + width:7px; + border-left:0; + border-right:0; +} + +.WdateDiv #dpTime #dpTimeUp{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -32px -16px; +} + +.WdateDiv #dpTime #dpTimeDown{ + height:10px; + width:13px; + border:0px; + background:url(img.gif) no-repeat -48px -16px; +} + + .WdateDiv #dpQS { + float:left; + margin-right:3px; + margin-top:3px; + background:url(img.gif) no-repeat 0px -16px; + width:20px; + height:20px; + cursor:pointer; + } +.WdateDiv #dpControl { + text-align:right; + margin-top:3px; +} +.WdateDiv .dpButton{ + height:20px; + width:45px; + margin-top:2px; + border:#38B1B9 1px solid; + background-color:#CFEBEE; + color:#08575B; +} \ No newline at end of file diff --git a/src/main/webapp/static/My97DatePicker/skin/whyGreen/img.gif b/src/main/webapp/static/My97DatePicker/skin/whyGreen/img.gif new file mode 100644 index 00000000..4003f20f Binary files /dev/null and b/src/main/webapp/static/My97DatePicker/skin/whyGreen/img.gif differ diff --git a/src/main/webapp/static/SuperSlide/default.css b/src/main/webapp/static/SuperSlide/default.css new file mode 100644 index 00000000..38ab20e1 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/default.css @@ -0,0 +1,255 @@ +@charset "utf-8"; + +/* CSS Document */ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre, +form,fieldset,input,textarea,p,blockquote,th,td,img { padding: 0; margin: 0; } +fieldset,img { border: 0; } +address,caption,cite,code,dfn,em,strong,th,var,i { font-weight: normal; font-style: normal; } +ol,ul,li { list-style: none; } +caption,th { text-align: left; } +h1,h2,h3,h4,h5,h6 { font-weight: normal; font-size: 100%; } +q:before,q:after { content:''; } +abbr,acronym { border: 0; } + +/*-- All --*/ +html{ min-width:1000px; } +body{ color:#333;font:12px/20px Arial,"Microsoft YaHei","宋体",sans-serif; text-align:center; background:#fff; } +a{ color:#333; text-decoration:none; outline:none;} +a:hover {color:#f00; text-decoration:underline; } +table { border-collapse: collapse; border-spacing: 0; empty-cells:show; } +table td,table th{ border:#ddd solid 1px; padding: 5px 0; } +table th{ background:#39A4DC; color:#fff; } +table .new td{ color:#f60; font-weight:bold; } + + +/* css三角形 */ +.arrow,.arrow s { position:relative; display:block; font-size: 0; line-height: 0; width: 0; height: 0; border-color:transparent; border-style:dashed; border-width:5px; } +.arrowR,.arrowR s{ border-left-color:#aaa; border-left-style:solid; } +.arrowR s{ border-left-color:#fff; position:absolute; left:-7px; top:-5px; } +.arrowR:hover{ border-left-color:#f60; } + +.arrowL,.arrowL s{ border-right-color:#aaa; border-right-style:solid; } +.arrowL s{ border-right-color:#fff; position:absolute; right:-7px; top:-5px; } +.arrowL:hover{ border-right-color:#f60; } + +.arrowT,.arrowT s{ border-bottom-color:#aaa; border-bottom-style:solid; } +.arrowT s{ border-bottom-color:#fff; position:absolute; left:-5px; top:-3px; } +.arrowT:hover{ border-bottom-color:#f60; } + +.arrowB,.arrowB s{ border-top-color:#aaa; border-top-style:solid; } +.arrowB s{ border-top-color:#fff; position:absolute; left:-5px; bottom:-3px; } +.arrowB:hover{ border-top-color:#f60; } + +/* css圆形 */ +.circle{ line-height:100%; overflow:hidden; font-family:Tahoma,Helvetica; font-size:18px; color:#aaa; } +.circle:hover{ color:#f60; } + +/* 顶部导航条 */ + #header{ width:100%; left:0; top:0; position:fixed; z-index:10; height:32px; line-height:32px; color:#fff; text-align:left; overflow:hidden; } + #header .headerBg{ width:100%; height:32px; left:0; top:0; position:absolute; z-index:0; background:#000; filter:alpha(opacity=70);opacity:0.7; } + #header a{ color:#fff; } + #header #logo{ position:relative; z-index:1; display:inline-block; *display:inline; zoom:1; font-size:14px; margin-right:5px; padding-left:10px; } + #header .nav{ position:relative; z-index:2; float:right; padding-right:10px; } + #header .nav a{ padding:0 10px; } + #header .nav a.imp{ color:#ff0; } + #header .title{ position:relative; z-index:1; height:32px; overflow:hidden; } + + #content{ margin:0 auto; padding:62px 30px 30px 30px; position:relative; text-align:left; z-index:0; } + #footer{ height:34px; line-height:34px; text-align:center; } + +/* 首页 - index.html ---------------------------------------------- */ + + + + .indBtn{ text-align:center; display:none; } + .indBtn a{ vertical-align:middle; margin:15px 15px 0 0; display:inline-block; *display:inline; zoom:1; padding:14px 22px 3px 22px; line-height:26px; + color:#bede9a; font-size:14px; + -webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px; + background:#89c941; + background: -webkit-gradient(linear, 0 0, 0 bottom, from(#89c941), to(#72b238)); + background: -webkit-linear-gradient(#89c941, #72b238); + background: -moz-linear-gradient(#89c941, #72b238); + background: -ms-linear-gradient(#89c941, #72b238); + background: -o-linear-gradient(#89c941, #72b238); + background: linear-gradient(#89c941, #72b238); + -pie-background: linear-gradient(#89c941, #72b238); + -webkit-box-shadow: #39591c 2px 2px 3px; + -moz-box-shadow: #39591c 2px 2px 3px; + box-shadow: #39591c 2px 2px 3px; + } + .indBtn a em{ font-size:30px; display:block; color:#fff; } + .indIntro a:hover{ text-decoration:none; margin:11px 15px 0 0; } + + .indTips{ position:fixed; _position:absolute; width:14px; right:0; top:90px; background:#333; padding:5px; line-height:18px; color:#fff; cursor:pointer; + -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; + } + .indTips a{ color:#fff; text-decoration:none; } + #indTips1{ display:none; } + #ind2{ display:none; } + #ind2 .topic{ font-size:60px; height:120px; line-height:120px; } + +/* 参数 - param.html ---------------------------------------------- */ + .paramPage .param{ width:100%; margin-bottom:20px; background:#fff; } + .paramPage .param th{ text-align:center; } + .paramPage .param td{ text-align:left; padding:5px 2px; } + .paramPage .param .intro{ text-align:left; } + .paramPage .param .link{ color:#39A4DC; text-decoration:underline; } + .paramPage .param .t b{ color:#f60; } + .paramPage .param i{ color:#f60; } + .paramPage .param .on td{ background:#ffffaa; } + /*.paramPage .param tr.n td{ color:#999; }*/ + .paramPage .intro a{ text-decoration:underline; } + .paramPage .notice{ overflow:hidden; text-align:left; padding-bottom:10px; } + .paramPage .notice li{ width:120px; height:30px; line-height:30px; text-align:center; float:left; margin-right:10px; color:#fff; background:#666; cursor:pointer; } + .paramPage .notice .on{ background:#f60; } + + +/* 联系作者 ---------------------------------------------- */ + #content .contact{ display:none; color:#f60; margin-bottom:20px; } + + +/* 案例 - demo.html ---------------------------------------------- */ + + .demoBox{ padding:0 20px 60px 20px; background:#f2f2f2; border-bottom:3px dotted #ccc; } + .demoBox .hd{ padding:40px 10px 0 10px; } + .demoBox .hd h3{ font-size:30px; font-weight:bold; color:#39A4DC; line-height:60px; } + .demoBox .hd h3 span{ color:#ccc; font-style:italic; font-size:60px; } + .demoBox .bd{ padding:20px; overflow:hidden; zoom:1; } + .demoBox .bd .iframeWrap{ overflow:hidden; float:left; } + .demoBox iframe{ width:100%; height:100%; vertical-align:middle; } + .demoBox .botTit{ height:22px; line-height:22px; overflow:hidden; background:#eee; text-align:right; padding:5px 0; overflow:hidden; display:none; + } + .demoBox .botTit em{ float:left; font-weight:bold; padding-left:10px; } + .demoBox .botTit span a{ display:block; float:right; height:20px; line-height:20px; padding:0 5px; background:#f60; margin-right:10px; color:#fff; -webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px; cursor:pointer; display:none; } + .demoBox .botTit span a:hover{ text-decoration:none; background:#f60; } + + .params{ width:580px; height:100%; margin-left:20px; float:left; _display:inline; background:#fff; padding-bottom:10px; border:1px solid #ddd; } + .params table{ background:#fff; } + .params table .tit td{ padding: 5px 10px; background:#39A4DC; color:#fff; } + .params table td{ border:1px solid #fff; } + .params table .n{ width: 153px; text-align:right; } + .params table .new{ color:#f00; } + .params table i{ color:#999; } + .params p{ padding:10px 0 0 10px; } + .params .curJsCode{ color:#f60; display:block; font-family:SimSun; } + + .rightNav{ position:fixed; width:140px; right:0; top:100px; _position:absolute; text-align:left; cursor:pointer; background-image:url(about:blank); } + .rightNav a{ display:block; position:relative; height:30px; line-height:30px; margin-bottom:2px; background:#fff; padding-right:10px; width:130px; overflow:hidden; cursor:pointer; right:-110px; } + .rightNav a:hover{ text-decoration:none; color:#39A4DC; } + .rightNav a:hover em{ background:#00b700} + .rightNav a em{ display:block; float:left; width:30px; background:#39A4DC; color:#fff; font-size:16px; text-align:center; margin-right:10px;} + .rightNav a.new em{ background:#f60; } + .demoBox .iframeWrap{ width:452px; } + .demoBox .iframeWrap iframe{ width:452px; height:232px; background:url(images/loading.gif) center center no-repeat; } + + #picScroll-left iframe{ height:174px; } + #picScroll-top iframe{ height:415px; } + #picMarquee-left iframe{ height:172px; } + #picMarquee-top iframe{ height:415px; } + #txtScroll-left iframe{ height:80px; } + #txtScroll-top iframe{ height:182px; } + #txtMarquee-left iframe{ height:107px; } + #txtMarquee-top iframe{ height:184px; } + #sideMenu iframe{ height:227px; } + + + /* 隐藏代码盒子 */ + #displayBox{ z-index:10; display:none; position:fixed; _position:absolute; width:1000px; height:500px; left:50%; top:60px; margin-left:-500px; background:#fff; + border:5px solid #eee; + -webkit-box-shadow: #333 0 0 8px; + -moz-box-shadow: #333 0 0 8px; + box-shadow: #333 0 0 8px; } + #displayBox .hd{ height:30px; line-height:30px; background:#eee; padding:0 10px; position:relative; + background: -webkit-gradient(linear, 0 0, 0 bottom, from(#F7F7F7), to(#eee)); + background: -webkit-linear-gradient(#F7F7F7, #eee); + background: -moz-linear-gradient(#F7F7F7, #eee); + background: -ms-linear-gradient(#F7F7F7, #eee); + background: -o-linear-gradient(#F7F7F7, #eee); + background: linear-gradient(#F7F7F7, #eee); + } + #displayBox .hd h3{ font-weight:bold; color:#39A4DC; } + #displayBox .hd a{ display:block; position:absolute; right:10px; top:7px; width:20px; height:16px; line-height:16px; text-align:center; background:#f60; color:#fff; cursor:pointer; } + #displayBox .hd a:hover{ text-decoration:none; } + #displayBox .bd{ padding:10px 0; background:#fff; } + #displayBox textarea{ width:458px; height:230px; padding:10px; border:1px solid #ccc; display:block; } + #displayBox .bd p{ padding-top:10px; } + #displayBox iframe{ width:1000px; height:440px; margin:0 auto; } + + +/* 扩展效果 ---------------------------------------------- */ +.authorWord{ margin-bottom:25px; text-align:left; background:#fff; } +.authorWord h3{ padding:0 20px; height:30px; font:normal 14px/30px "Microsoft YaHei"; overflow:hidden; cursor:pointer; border-bottom:1px dotted #ccc; } +.authorWord h3 .arrow{ float:right; border-top-color:#fff; margin-top:11px; } +.authorWord .con{ padding:10px 20px; line-height:22px; } +.authorWord .con p{ margin-bottom:5px } +.authorWord a{ color:#f60; text-decoration:underline; } + +.demoList{ overflow:hidden; padding-top:10px; } +.demoList li{ + position:relative; cursor:pointer; float:left; width:160px; text-align:center; margin:0 30px 30px 0; + padding:4px 4px 0 4px; background:#e3e3e3; color:#000; +} +.demoList li img{ display:block; width:160px; height:120px; background:url(images/loading.gif) center center no-repeat; } +.demoList li h3{ height:28px; line-height:28px; } +.demoList li.new i{ display:block; position:absolute; top:4px; right:4px; z-index:1; width:31px; height:31px; background:url(images/new.png) 0 0 no-repeat; } + +.demoList li.on{ + background:#666; color:#fff; + -webkit-transform: translateY(-10px); + -moz-transform: translateY(-10px); + -o-transform: translateY(-10px); + -webkit-transition-duration:0.3s; + -o-transition-duration:0.3s; + -moz-transition-duration:0.3s; + } + + + .demoBoxEven{ background:#fff; } + .demoBoxEven .demoList li{ } + .demoBoxEven .demoList li.on{ background:#666; color:#fff; } + +/* 如何使用 ---------------------------------------------- */ +.usePageDl{ width:1000px; } +.usePageDl dt h2{ font:normal 22px/150% "Microsoft YaHei"; _font-weight:bold; color:#39A4DC; } +.usePageDl dt h2 a{ color:#f60; text-decoration:underline; } +.usePageDl dt p{ padding:5px 0 10px 33px; } +.usePageDl dt p b{ color:#f60; } +.usePageDl dd{ margin-bottom:50px; } +.usePage .demoBox{ padding:0; } +.usePage .demoBox .bd .iframeWrap{ background:none; } + + +/* 下载页面 ----------------------------------------------- */ +.downLoadDl{ width:1000px; } +.downLoadDl dt h2{ font:normal 22px/150% "Microsoft YaHei"; _font-weight:bold; color:#39A4DC; } +.downLoadDl dt h2 a{ font-size:12px; color:#333; margin-left:20px; text-decoration:underline; } +.downLoadDl dd{ margin-bottom:50px; padding:10px 0; } + +.dBtn{ cursor:pointer; display:block; height:30px; line-height:30px; width:100px; text-align:center; font-size:16px; background:#6ddb00; color:#fff; _font-weight:bold; + -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; + -webkit-box-shadow: #666 1px 1px 2px; + -moz-box-shadow: #666 1px 1px 2px; + box-shadow: #666 1px 1px 2px; +} +.dBtn:hover{ text-decoration:none; background:#65ca00; color:#fff; margin-left:2px; } +.pBtn{ background:#FFA241; font-size:12px; } +.pBtn:hover{ background:#ff8635; } +.pBtn i{ font-family:Arial; _font-weight:bold; font-size:20px; } + +.downPage .inculde{ margin-top:20px; padding:10px; border:1px dotted #eee; background:#f3f3f3;} +.downPage .inculde li{ color:#666; } +.downPage .inculde em{ font-weight:bold; color:#333; } +.downPage .inculde h3{ font-size:14px; font-weight:bold; color:#c00; padding-bottom:10px } +.downPage .inculde a{ color:#39A4DC; text-decoration:underline; margin:0 2px; } +#whyPay p,#howPay p{ text-indent:20px; margin-bottom:10px } + +.pay{ overflow:hidden; padding-bottom:5px; vertical-align:top; } +.pay .pBtn{ float:left; } +.pay p{ margin-left:120px; } +.pay p span{ color:#c00; } +.downPage .imp{ color:#c00; font-size:14px; } + +/* 颜色代码 +#39A4DC 浅蓝色 + +*/ diff --git a/src/main/webapp/static/SuperSlide/demo.html b/src/main/webapp/static/SuperSlide/demo.html new file mode 100644 index 00000000..aa95f0d1 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo.html @@ -0,0 +1,1325 @@ + + + + + + + +SuperSlide - 基础效果 + + + + + + + + + + + +
      + + +
      +

      1. 标签切换 / 书签切换 / 默认效果

      +
      +
      + +

      1.0-标签切换

      +
      + +
      + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 自动运行[autoPlay]: + +
      触发方式[trigger]: + + 缓动效果[easing]: + +
      效果速度[delayTime]: + + 前后按钮循环[pnLoop]: + +
      +

      当前调用代码:jQuery(".slideTxtBox").slide({});

      +

      注意:缓动效果对于fade影响不大;不同缓动效果设置适当“效果速度”,会有最佳效果。

      +
      + +
      +
      + + + +
      +

      2. 焦点图 / 幻灯片

      +
      +
      + +

      2.0-焦点图/幻灯片

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 自动运行[autoPlay]: + +
      触发方式[trigger]: + + 缓动效果[easing]: + +
      效果速度[delayTime]: + + 停止播放[mouseOverStop]: + +
      前后按钮循环[pnLoop]: + +
      +

      当前调用代码:jQuery(".slideBox").slide({mainCell:".bd ul"});

      +

      注意:缓动效果对于fade影响不大;不同缓动效果设置适当“效果速度”,会有最佳效果。

      +
      + +
      +
      + + + +
      +

      3. 图片滚动-左

      +
      +
      + +

      3.0-图片滚动-左

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 自动运行[autoPlay]: + +
      滚动个数[scroll]: + + 可视个数[vis]: + +
      缓动效果[easing]: + + 效果速度[delayTime]: + +
      前后按钮循环[pnLoop]: + + 触发方式[trigger]: + +
      停止播放[mouseOverStop]: + +
      +

      当前调用代码:jQuery(".picScroll-left").slide({titCell:".hd ul",mainCell:".bd ul",autoPage:true});

      +

      注意1:不同缓动效果设置适当“效果速度”,会有最佳效果。
      + 注意2:现在是全按钮开启情况,不需要按钮的时候,只要删除按钮html或者隐藏即可。 +

      +
      + +
      +
      + + + +
      +

      4. 图片滚动-上

      +
      +
      + +

      4.0-图片滚动-上

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 自动运行[autoPlay]: + +
      滚动个数[scroll]: + + 可视个数[vis]: + +
      缓动效果[easing]: + + 效果速度[delayTime]: + +
      前后按钮循环[pnLoop]: + + 触发方式[trigger]: + +
      停止播放[mouseOverStop]: + +
      +

      当前调用代码:jQuery(".picScroll-top").slide({titCell:".hd ul",mainCell:".bd ul",autoPage:true});

      +

      注意1:不同缓动效果设置适当“效果速度”,会有最佳效果。
      + 注意2:现在是全按钮开启情况,不需要按钮的时候,只要删除按钮html或者隐藏即可。 +

      +
      + +
      +
      + + + +
      +

      5. 图片无缝滚动-左

      +
      +
      + +

      5.0-图片无缝滚动-左

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 可视个数[vis]: + +
      运行速度[interTime]: + + 默认反方向运动[opp]: + +
      前后按钮循环[pnLoop]: + + 触发方式[trigger]: + +
      停止播放[mouseOverStop]: + +
      +

      当前调用代码:jQuery(".picMarquee-left").slide({mainCell:".bd ul",autoPlay:true});

      +
      + +
      +
      + + + +
      +

      6. 图片无缝滚动-上

      +
      +
      + +

      6.0-图片无缝滚动-上

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 可视个数[vis]: + +
      运行速度[interTime]: + + 默认反方向运动[opp]: + +
      前后按钮循环[pnLoop]: + + 触发方式[trigger]: + +
      停止播放[mouseOverStop]: + +
      +

      当前调用代码:jQuery(".picMarquee-top").slide({mainCell:".bd ul",autoPlay:true});

      +
      + +
      +
      + + + +
      +

      7. 文字滚动-左

      +
      +
      + +

      7.0-文字滚动-左

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 自动运行[autoPlay]: + +
      滚动个数[scroll]: + + 可视个数[vis]: + +
      缓动效果[easing]: + + 效果速度[delayTime]: + +
      前后按钮循环[pnLoop]: + + 触发方式[trigger]: + +
      停止播放[mouseOverStop]: + +
      +

      当前调用代码:jQuery(".txtScroll-left").slide({titCell:".hd ul",mainCell:".bd ul",autoPage:true});

      +

      注意1:不同缓动效果设置适当“效果速度”,会有最佳效果。
      + 注意2:现在是全按钮开启情况,不需要按钮的时候,只要删除按钮html或者隐藏即可。 +

      +
      + +
      +
      + + + +
      +

      8. 文字滚动-上

      +
      +
      + +

      8.0-文字滚动-上

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 自动运行[autoPlay]: + +
      滚动个数[scroll]: + + 可视个数[vis]: + +
      缓动效果[easing]: + + 效果速度[delayTime]: + +
      前后按钮循环[pnLoop]: + + 触发方式[trigger]: + +
      停止播放[mouseOverStop]: + +
      +

      当前调用代码:jQuery(".txtScroll-top").slide({titCell:".hd ul",mainCell:".bd ul",autoPage:true});

      +

      注意1:不同缓动效果设置适当“效果速度”,会有最佳效果。
      + 注意2:现在是全按钮开启情况,不需要按钮的时候,只要删除按钮html或者隐藏即可。 +

      +
      + +
      +
      + + + +
      +

      9. 文字无缝滚动-左

      +
      +
      + +

      9.0-文字无缝滚动-左

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 可视个数[vis]: + +
      运行速度[interTime]: + + 默认反方向运动[opp]: + +
      前后按钮循环[pnLoop]: + + 触发方式[trigger]: + +
      停止播放[mouseOverStop]: + +
      +

      当前调用代码:jQuery(".txtMarquee-left").slide({mainCell:".bd ul",autoPlay:true});

      +
      + +
      +
      + + + +
      +

      10. 文字无缝滚动-上

      +
      +
      + +

      10.0-文字无缝滚动-上

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 可视个数[vis]: + +
      运行速度[interTime]: + + 默认反方向运动[opp]: + +
      前后按钮循环[pnLoop]: + + 触发方式[trigger]: + +
      停止播放[mouseOverStop]: + +
      +

      当前调用代码:jQuery(".txtMarquee-top").slide({mainCell:".bd ul",autoPlay:true});

      +
      + +
      +
      + + + + +
      +

      11. 导航

      +
      +
      + +

      12.0-导航

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 效果速度[delayTime]: + +
      延迟触发[triggerTime]: + + 默认执行[defaultPlay]: + +
      返回默认[returnDefault]: + + 缓动效果[easing]: + +
      +

      当前调用代码:jQuery("#nav").slide({ type:"menu", titCell:".nLi", targetCell:".sub"});

      +
      + +
      +
      + + + + +
      +

      12. 手风琴

      +
      +
      + +

      13.0-手风琴

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      常用参数(切换看看)
      效果[effect]: + + 效果速度[delayTime]: + +
      触发方式[trigger]: + + 延迟触发[triggerTime]: + +
      默认执行[defaultPlay]: + + 返回默认[returnDefault]: + +
      缓动效果[easing]: + +
      +

      当前调用代码:jQuery(".sideMen").slide({titCell:"h3", targetCell:"ul",defaultIndex:1});

      +
      + +
      +
      + + + +
      +

      T1. 其它基础效果

      +
      + +
        +
      • +
        + +
        +

        多行滚动基础示例

        +
      • +
      • +
        + +
        +

        多列滚动基础示例

        +
      • +
      • +
        + +
        +

        targetCell基础示例

        +
      • +
      • +
        + +
        +

        SuperSlide组合应用基础示例

        +
      • +
      • +
        + +
        +

        同一页面使用多个效果示例

        +
      • +
      • +
        + +
        +

        双重Tab(slide组合)

        + +
      • +
      • +
        + +
        +

        Tab+无缝滚动(slide组合)

        + +
      • +
      • +
        + +
        +

        图片导航焦点图

        + +
      • +
      + +
      +
      + + + + + +
      + + + +
      + +
      + +
      +
      + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/1.0-switchTab.html b/src/main/webapp/static/SuperSlide/demo/1.0-switchTab.html new file mode 100644 index 00000000..d225795b --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/1.0-switchTab.html @@ -0,0 +1,94 @@ + + + + + + +SuperSlide - Tab切换效果 + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/10.0-txtMarquee-top.html b/src/main/webapp/static/SuperSlide/demo/10.0-txtMarquee-top.html new file mode 100644 index 00000000..60699fab --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/10.0-txtMarquee-top.html @@ -0,0 +1,71 @@ + + + + + + +SuperSlide - 文字无缝滚动特效-上 + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/11.0-nav.html b/src/main/webapp/static/SuperSlide/demo/11.0-nav.html new file mode 100644 index 00000000..910ce17b --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/11.0-nav.html @@ -0,0 +1,116 @@ + + + + + + +SuperSlide - 导航效果 + + + + + + + + + + + + +
      + 假设当前频道为“预告片”,
      + 手动或后台程序添加titOnClassName类名(默认是'on'),相当于设置参数defaultIndex:2。
      + 若同时设置参数returnDefault:true,则鼠标移走后返回当前频道。 +
      + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/12.0-sideMenu.html b/src/main/webapp/static/SuperSlide/demo/12.0-sideMenu.html new file mode 100644 index 00000000..f10adc58 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/12.0-sideMenu.html @@ -0,0 +1,88 @@ + + + + + + +SuperSlide - targetCell基础示例 + + + + + + + +
      +

      书签切换系列

      +
        +
      • 淘宝首页右侧公告
      • +
      • 京东首页产品切换
      • +
      • 苏宁易购首页品牌切换
      • +
      • 1号店双重切换
      • +
      • 腾讯健康频道切换
      • +
      + +

      幻灯片/焦点图系列

      + + +
        +
      • 淘宝首页焦点图
      • +
      • 腾讯娱乐频道焦点图
      • +
      • 腾讯电影频道焦点图
      • +
      • 网易游戏频道焦点图
      • +
      • 易迅首页焦点图
      • +
      +

      带按钮切换

      +
        +
      • 淘宝首页今日活动
      • +
      • 豆瓣读书频道
      • +
      • 天猫首页品牌切换
      • +
      • 格瓦拉首页活动进行中
      • +
      • 腾讯博客图片滚动
      • +
      + + +
      + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/2.0-focus.html b/src/main/webapp/static/SuperSlide/demo/2.0-focus.html new file mode 100644 index 00000000..7f7ef50b --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/2.0-focus.html @@ -0,0 +1,74 @@ + + + + + + +SuperSlide - 焦点图/幻灯片 + + + + + + + + + +
      +
      +
      • 1
      • 2
      • 3
      +
      +
      +
        +
      • +
      • +
      • +
      +
      + + + + + +
      + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/3.0-picScroll-left.html b/src/main/webapp/static/SuperSlide/demo/3.0-picScroll-left.html new file mode 100644 index 00000000..fbe3a875 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/3.0-picScroll-left.html @@ -0,0 +1,93 @@ + + + + + + +SuperSlide - 图片滚动特效-左 + + + + + + + + + +
      +
      + +
        + + +
        +
        + +
        +
        + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/4.0-picScroll-top.html b/src/main/webapp/static/SuperSlide/demo/4.0-picScroll-top.html new file mode 100644 index 00000000..3f14beef --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/4.0-picScroll-top.html @@ -0,0 +1,93 @@ + + + + + + +SuperSlide - 图片上滚动特效-上 + + + + + + + + + +
        +
        + +
          + + +
          +
          + +
          +
          + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/5.0-picMarquee-left.html b/src/main/webapp/static/SuperSlide/demo/5.0-picMarquee-left.html new file mode 100644 index 00000000..89611fc2 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/5.0-picMarquee-left.html @@ -0,0 +1,88 @@ + + + + + + +SuperSlide - 图片无缝滚动特效-左 + + + + + + + + + +
          +
          + + +
          +
          + +
          +
          + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/6.0-picMarquee-top.html b/src/main/webapp/static/SuperSlide/demo/6.0-picMarquee-top.html new file mode 100644 index 00000000..3ea03c25 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/6.0-picMarquee-top.html @@ -0,0 +1,88 @@ + + + + + + +SuperSlide - 图片无缝滚动特效-上 + + + + + + + + + +
          +
          + + +
          +
          + +
          +
          + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/7.0-txtScroll-left.html b/src/main/webapp/static/SuperSlide/demo/7.0-txtScroll-left.html new file mode 100644 index 00000000..37426af4 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/7.0-txtScroll-left.html @@ -0,0 +1,71 @@ + + + + + + +SuperSlide - 文字滚动特效-左 + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/8.0-txtScroll-top.html b/src/main/webapp/static/SuperSlide/demo/8.0-txtScroll-top.html new file mode 100644 index 00000000..650fc89a --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/8.0-txtScroll-top.html @@ -0,0 +1,74 @@ + + + + + + +SuperSlide - 文字滚动特效-上 + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/9.0-txtMarquee-left.html b/src/main/webapp/static/SuperSlide/demo/9.0-txtMarquee-left.html new file mode 100644 index 00000000..f648630e --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/9.0-txtMarquee-left.html @@ -0,0 +1,68 @@ + + + + + + +SuperSlide - 文字无缝滚动特效-左 + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/T1.1-multipleLine.html b/src/main/webapp/static/SuperSlide/demo/T1.1-multipleLine.html new file mode 100644 index 00000000..eaadc546 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/T1.1-multipleLine.html @@ -0,0 +1,163 @@ + + + + + + +SuperSlide - 多行滚动示例 + + + + + + + + + +
          +
          + +
            + + +
            +
            + +
            + + + + + + +
            +
            +
            + + + +
            +

            多行/多列的滚动解决思路在于:把每次滚动的n个li放到1个ul里面,然后用SuperSlide每次滚动1个ul,相当于每次滚动n个li

            + +
            + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/T1.1-multipleLine.jpg b/src/main/webapp/static/SuperSlide/demo/T1.1-multipleLine.jpg new file mode 100644 index 00000000..203cfb8b Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/T1.1-multipleLine.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/T1.2-multipleColumn.html b/src/main/webapp/static/SuperSlide/demo/T1.2-multipleColumn.html new file mode 100644 index 00000000..5177ba71 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/T1.2-multipleColumn.html @@ -0,0 +1,156 @@ + + + + + + +SuperSlide - 多列滚动示例 + + + + + + + +
            +
            + +
              + + +
              +
              + +
              + + + + + + + + + +
              +
              +
              + + + +
              +

              多行/多列的滚动解决思路在于:把每次滚动的n个li放到1个ul里面,然后用SuperSlide每次滚动1个ul,相当于每次滚动n个li

              + +
              + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/T1.2-multipleColumn.jpg b/src/main/webapp/static/SuperSlide/demo/T1.2-multipleColumn.jpg new file mode 100644 index 00000000..c9955ec1 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/T1.2-multipleColumn.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/T1.3-targetCell.html b/src/main/webapp/static/SuperSlide/demo/T1.3-targetCell.html new file mode 100644 index 00000000..1b2c6758 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/T1.3-targetCell.html @@ -0,0 +1,81 @@ + + + + + + +SuperSlide - targetCell基础示例 + + + + + + + +
              +

              书签切换系列

              +
                +
              • 淘宝首页右侧公告
              • +
              • 京东首页产品切换
              • +
              • 苏宁易购首页品牌切换
              • +
              • 1号店双重切换
              • +
              • 腾讯健康频道切换
              • +
              +

              幻灯片/焦点图系列

              +
                +
              • 淘宝首页焦点图
              • +
              • 腾讯娱乐频道焦点图
              • +
              • 腾讯电影频道焦点图
              • +
              • 网易游戏频道焦点图
              • +
              • 易迅首页焦点图
              • +
              +

              带按钮切换

              +
                +
              • 淘宝首页今日活动
              • +
              • 豆瓣读书频道
              • +
              • 天猫首页品牌切换
              • +
              • 格瓦拉首页活动进行中
              • +
              • 腾讯博客图片滚动
              • +
              + +
              + + + +
              +

              本例js调用:

              + +
              + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/T1.3-targetCell.jpg b/src/main/webapp/static/SuperSlide/demo/T1.3-targetCell.jpg new file mode 100644 index 00000000..a41d2528 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/T1.3-targetCell.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/T1.4-SuperSlideGroup.html b/src/main/webapp/static/SuperSlide/demo/T1.4-SuperSlideGroup.html new file mode 100644 index 00000000..1aef4bac --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/T1.4-SuperSlideGroup.html @@ -0,0 +1,166 @@ + + + + + + +SuperSlide - SuperSlide组合应用基础示例 + + + + + + + + + + +
              +
              +
              • 教育
              • 培训
              • 出国
              +
              +
              + +
              + + + +
              + +
              + + + +
              + +
              + + + +
              + +
              +
              + + + +
              +

              SuperSlide组合注意:
              + 1、内外层mainCell、targetCell、prevCell、nextCell等对象不能相同,除非特殊应用;
              + 2、注意书写顺序,通常先写内层js调用,再写外层js调用

              + +
              + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/T1.4-SuperSlideGroup.jpg b/src/main/webapp/static/SuperSlide/demo/T1.4-SuperSlideGroup.jpg new file mode 100644 index 00000000..c7e5c9f9 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/T1.4-SuperSlideGroup.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/T1.5-onePage.html b/src/main/webapp/static/SuperSlide/demo/T1.5-onePage.html new file mode 100644 index 00000000..17712a5a --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/T1.5-onePage.html @@ -0,0 +1,178 @@ + + + + + + +SuperSlide-同一页面使用多个效果 + + + + + + + + + + + +

              下面3个示例演示了如何在同一个页面使用多个SuperSlide效果

              + + +

              下面2个示例,演示如何在同一页面使用多个相同效果

              + + + +
              +
              +
                +
              • +
              • +
              • +
              +
              +
              + +
              +
              + + + + +
              +
              +
                +
              • +
              • +
              • +
              +
              +
              + +
              +
              + + + +

              下面1个示例,演示如何在同一页面使用其它效果

              + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/static/SuperSlide/demo/T1.5-onePage.jpg b/src/main/webapp/static/SuperSlide/demo/T1.5-onePage.jpg new file mode 100644 index 00000000..283ff21b Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/T1.5-onePage.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/T1.6-doubleTab.html b/src/main/webapp/static/SuperSlide/demo/T1.6-doubleTab.html new file mode 100644 index 00000000..eed06c4a --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/T1.6-doubleTab.html @@ -0,0 +1,196 @@ + + + + + + +SuperSlide - 双重Tab(slide组合) + + + + + + + + + + +
              +
              +
              • 教育
              • 培训
              • 出国
              +
              +
              + + + + + + + + + + + +
              +
              + + +
              +

              SuperSlide组合注意:
              + 1、内外层mainCell、targetCell、prevCell、nextCell等对象不能相同,除非特殊应用;
              + 2、注意书写顺序,通常先写内层js调用,再写外层js调用

              + +
              + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/T1.6-doubleTab.jpg b/src/main/webapp/static/SuperSlide/demo/T1.6-doubleTab.jpg new file mode 100644 index 00000000..16eeb32b Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/T1.6-doubleTab.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/T1.7-TabMarquee.html b/src/main/webapp/static/SuperSlide/demo/T1.7-TabMarquee.html new file mode 100644 index 00000000..9f8df4da --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/T1.7-TabMarquee.html @@ -0,0 +1,166 @@ + + + + + + +SuperSlide - Tab+无缝滚动(slide组合) + + + + + + + + + + +
              +
              +
              • 教育
              • 培训
              • 出国
              +
              +
              + +
              + + + +
              + +
              + + + +
              + +
              + + + +
              + +
              +
              + + + +
              +

              SuperSlide组合注意:
              + 1、内外层mainCell、targetCell、prevCell、nextCell等对象不能相同,除非特殊应用;
              + 2、注意书写顺序,通常先写内层js调用,再写外层js调用

              + +
              + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/T1.7-TabMarquee.jpg b/src/main/webapp/static/SuperSlide/demo/T1.7-TabMarquee.jpg new file mode 100644 index 00000000..4e86a1c5 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/T1.7-TabMarquee.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/T1.8-picFocus.html b/src/main/webapp/static/SuperSlide/demo/T1.8-picFocus.html new file mode 100644 index 00000000..4f7c6df6 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/T1.8-picFocus.html @@ -0,0 +1,79 @@ + + + + + + +SuperSlide - 图片导航焦点图 + + + + + + + + + +
              +
              +
                +
              • +
              • +
              • +
              • +
              +
              + +
              +
                +
              • +
              • +
              • +
              • +
              +
              + +
              + + + + +
              +

              js调用:

              + +
              + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/T1.8-picFocus.jpg b/src/main/webapp/static/SuperSlide/demo/T1.8-picFocus.jpg new file mode 100644 index 00000000..616f0afa Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/T1.8-picFocus.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/1.0-switchTab-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/1.0-switchTab-iframe.html new file mode 100644 index 00000000..9db76506 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/1.0-switchTab-iframe.html @@ -0,0 +1,98 @@ + + + + + + +SuperSlide - Tab切换效果 + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/10.0-txtMarquee-top-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/10.0-txtMarquee-top-iframe.html new file mode 100644 index 00000000..f50134bf --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/10.0-txtMarquee-top-iframe.html @@ -0,0 +1,72 @@ + + + + + + +SuperSlide - 文字无缝滚动特效-上 + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/11.0-nav-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/11.0-nav-iframe.html new file mode 100644 index 00000000..e4ae937b --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/11.0-nav-iframe.html @@ -0,0 +1,106 @@ + + + + + + +SuperSlide - 导航效果 + + + + + + + + + + + +
              + 假设当前频道为“预告片”,
              + 手动或后台程序添加titOnClassName类名(默认是'on'),相当于设置参数defaultIndex:2。
              + 若同时设置参数returnDefault:true,则鼠标移走后返回当前频道。 +
              + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/12.0-sideMenu-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/12.0-sideMenu-iframe.html new file mode 100644 index 00000000..d57920a7 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/12.0-sideMenu-iframe.html @@ -0,0 +1,77 @@ + + + + + + +SuperSlide - targetCell基础示例 + + + + + + + +
              +

              书签切换系列

              +
                +
              • 淘宝首页右侧公告
              • +
              • 京东首页产品切换
              • +
              • 苏宁易购首页品牌切换
              • +
              • 1号店双重切换
              • +
              • 腾讯健康频道切换
              • +
              +

              幻灯片/焦点图系列

              +
                +
              • 淘宝首页焦点图
              • +
              • 腾讯娱乐频道焦点图
              • +
              • 腾讯电影频道焦点图
              • +
              • 网易游戏频道焦点图
              • +
              • 易迅首页焦点图
              • +
              +

              带按钮切换

              +
                +
              • 淘宝首页今日活动
              • +
              • 豆瓣读书频道
              • +
              • 天猫首页品牌切换
              • +
              • 格瓦拉首页活动进行中
              • +
              • 腾讯博客图片滚动
              • +
              + +
              + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/2.0-focus-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/2.0-focus-iframe.html new file mode 100644 index 00000000..e6be443c --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/2.0-focus-iframe.html @@ -0,0 +1,75 @@ + + + + + + +SuperSlide - 焦点图/幻灯片 + + + + + + + + + +
              +
              +
              • 1
              • 2
              • 3
              +
              +
              +
                +
              • +
              • +
              • +
              +
              + + + + + +
              + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/3.0-picScroll-left-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/3.0-picScroll-left-iframe.html new file mode 100644 index 00000000..679456e1 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/3.0-picScroll-left-iframe.html @@ -0,0 +1,94 @@ + + + + + + +SuperSlide - 图片滚动特效-左 + + + + + + + + + +
              +
              + +
                + + +
                +
                + +
                +
                + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/4.0-picScroll-top-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/4.0-picScroll-top-iframe.html new file mode 100644 index 00000000..7c00cc2b --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/4.0-picScroll-top-iframe.html @@ -0,0 +1,94 @@ + + + + + + +SuperSlide - 图片上滚动特效-上 + + + + + + + + + +
                +
                + +
                  + + +
                  +
                  + +
                  +
                  + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/5.0-picMarquee-left-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/5.0-picMarquee-left-iframe.html new file mode 100644 index 00000000..f4119a00 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/5.0-picMarquee-left-iframe.html @@ -0,0 +1,90 @@ + + + + + + +SuperSlide - 图片无缝滚动特效-左 + + + + + + + + + +
                  +
                  + + +
                  +
                  + +
                  +
                  + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/6.0-picMarquee-top-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/6.0-picMarquee-top-iframe.html new file mode 100644 index 00000000..c3ad6642 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/6.0-picMarquee-top-iframe.html @@ -0,0 +1,89 @@ + + + + + + +SuperSlide - 图片无缝滚动特效-上 + + + + + + + + + +
                  +
                  + + +
                  +
                  + +
                  +
                  + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/7.0-txtScroll-left-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/7.0-txtScroll-left-iframe.html new file mode 100644 index 00000000..547514e8 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/7.0-txtScroll-left-iframe.html @@ -0,0 +1,72 @@ + + + + + + +SuperSlide - 文字滚动特效-左 + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/8.0-txtScroll-top-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/8.0-txtScroll-top-iframe.html new file mode 100644 index 00000000..8966897d --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/8.0-txtScroll-top-iframe.html @@ -0,0 +1,77 @@ + + + + + + +SuperSlide - 文字滚动特效-上 + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/iframe/9.0-txtMarquee-left-iframe.html b/src/main/webapp/static/SuperSlide/demo/iframe/9.0-txtMarquee-left-iframe.html new file mode 100644 index 00000000..f6638e0c --- /dev/null +++ b/src/main/webapp/static/SuperSlide/demo/iframe/9.0-txtMarquee-left-iframe.html @@ -0,0 +1,71 @@ + + + + + + +SuperSlide - 文字无缝滚动特效-左 + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/demo/images/arrow.png b/src/main/webapp/static/SuperSlide/demo/images/arrow.png new file mode 100644 index 00000000..95302065 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/arrow.png differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/blank.png b/src/main/webapp/static/SuperSlide/demo/images/blank.png new file mode 100644 index 00000000..209a4386 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/blank.png differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/icoAdd.png b/src/main/webapp/static/SuperSlide/demo/images/icoAdd.png new file mode 100644 index 00000000..7e80cb34 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/icoAdd.png differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/icoCircle.gif b/src/main/webapp/static/SuperSlide/demo/images/icoCircle.gif new file mode 100644 index 00000000..c4fb0015 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/icoCircle.gif differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/icoDown.gif b/src/main/webapp/static/SuperSlide/demo/images/icoDown.gif new file mode 100644 index 00000000..07e21482 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/icoDown.gif differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/icoLeft.gif b/src/main/webapp/static/SuperSlide/demo/images/icoLeft.gif new file mode 100644 index 00000000..3b848a5c Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/icoLeft.gif differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/icoRight.gif b/src/main/webapp/static/SuperSlide/demo/images/icoRight.gif new file mode 100644 index 00000000..38981ad8 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/icoRight.gif differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/icoUp.gif b/src/main/webapp/static/SuperSlide/demo/images/icoUp.gif new file mode 100644 index 00000000..55172c69 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/icoUp.gif differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/loading.gif b/src/main/webapp/static/SuperSlide/demo/images/loading.gif new file mode 100644 index 00000000..4602ce78 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/loading.gif differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/pic1.jpg b/src/main/webapp/static/SuperSlide/demo/images/pic1.jpg new file mode 100644 index 00000000..4d970836 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/pic1.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/pic2.jpg b/src/main/webapp/static/SuperSlide/demo/images/pic2.jpg new file mode 100644 index 00000000..1f6f37e5 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/pic2.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/pic3.jpg b/src/main/webapp/static/SuperSlide/demo/images/pic3.jpg new file mode 100644 index 00000000..0709fde1 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/pic3.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/pic4.jpg b/src/main/webapp/static/SuperSlide/demo/images/pic4.jpg new file mode 100644 index 00000000..49315c33 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/pic4.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/pic5.jpg b/src/main/webapp/static/SuperSlide/demo/images/pic5.jpg new file mode 100644 index 00000000..96c931ec Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/pic5.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/pic6.jpg b/src/main/webapp/static/SuperSlide/demo/images/pic6.jpg new file mode 100644 index 00000000..535cc84f Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/pic6.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/pic7.jpg b/src/main/webapp/static/SuperSlide/demo/images/pic7.jpg new file mode 100644 index 00000000..b1e69926 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/pic7.jpg differ diff --git a/src/main/webapp/static/SuperSlide/demo/images/slider-arrow.png b/src/main/webapp/static/SuperSlide/demo/images/slider-arrow.png new file mode 100644 index 00000000..4b20ef2d Binary files /dev/null and b/src/main/webapp/static/SuperSlide/demo/images/slider-arrow.png differ diff --git a/src/main/webapp/static/SuperSlide/images/arrow.png b/src/main/webapp/static/SuperSlide/images/arrow.png new file mode 100644 index 00000000..95302065 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/arrow.png differ diff --git a/src/main/webapp/static/SuperSlide/images/autoPage.png b/src/main/webapp/static/SuperSlide/images/autoPage.png new file mode 100644 index 00000000..ed39c2b1 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/autoPage.png differ diff --git a/src/main/webapp/static/SuperSlide/images/bg.jpg b/src/main/webapp/static/SuperSlide/images/bg.jpg new file mode 100644 index 00000000..8c9d8a6b Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/bg.jpg differ diff --git a/src/main/webapp/static/SuperSlide/images/blank.png b/src/main/webapp/static/SuperSlide/images/blank.png new file mode 100644 index 00000000..209a4386 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/blank.png differ diff --git a/src/main/webapp/static/SuperSlide/images/body.png b/src/main/webapp/static/SuperSlide/images/body.png new file mode 100644 index 00000000..9ca82821 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/body.png differ diff --git a/src/main/webapp/static/SuperSlide/images/howPay.png b/src/main/webapp/static/SuperSlide/images/howPay.png new file mode 100644 index 00000000..bd23d6f3 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/howPay.png differ diff --git a/src/main/webapp/static/SuperSlide/images/icoAdd.png b/src/main/webapp/static/SuperSlide/images/icoAdd.png new file mode 100644 index 00000000..7e80cb34 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/icoAdd.png differ diff --git a/src/main/webapp/static/SuperSlide/images/icoDown.gif b/src/main/webapp/static/SuperSlide/images/icoDown.gif new file mode 100644 index 00000000..07e21482 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/icoDown.gif differ diff --git a/src/main/webapp/static/SuperSlide/images/icoLeft.gif b/src/main/webapp/static/SuperSlide/images/icoLeft.gif new file mode 100644 index 00000000..3b848a5c Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/icoLeft.gif differ diff --git a/src/main/webapp/static/SuperSlide/images/icoRight.gif b/src/main/webapp/static/SuperSlide/images/icoRight.gif new file mode 100644 index 00000000..38981ad8 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/icoRight.gif differ diff --git a/src/main/webapp/static/SuperSlide/images/icoUp.gif b/src/main/webapp/static/SuperSlide/images/icoUp.gif new file mode 100644 index 00000000..55172c69 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/icoUp.gif differ diff --git a/src/main/webapp/static/SuperSlide/images/indCircle.png b/src/main/webapp/static/SuperSlide/images/indCircle.png new file mode 100644 index 00000000..36789000 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/indCircle.png differ diff --git a/src/main/webapp/static/SuperSlide/images/linde-white.png b/src/main/webapp/static/SuperSlide/images/linde-white.png new file mode 100644 index 00000000..4dc78030 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/linde-white.png differ diff --git a/src/main/webapp/static/SuperSlide/images/loading.gif b/src/main/webapp/static/SuperSlide/images/loading.gif new file mode 100644 index 00000000..4602ce78 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/loading.gif differ diff --git a/src/main/webapp/static/SuperSlide/images/multiLines-slide.png b/src/main/webapp/static/SuperSlide/images/multiLines-slide.png new file mode 100644 index 00000000..6a3edd07 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/multiLines-slide.png differ diff --git a/src/main/webapp/static/SuperSlide/images/new.png b/src/main/webapp/static/SuperSlide/images/new.png new file mode 100644 index 00000000..c28e5b31 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/new.png differ diff --git a/src/main/webapp/static/SuperSlide/images/titCell_mainCell.png b/src/main/webapp/static/SuperSlide/images/titCell_mainCell.png new file mode 100644 index 00000000..8c07d5f5 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/titCell_mainCell.png differ diff --git a/src/main/webapp/static/SuperSlide/images/vis.png b/src/main/webapp/static/SuperSlide/images/vis.png new file mode 100644 index 00000000..4e81e966 Binary files /dev/null and b/src/main/webapp/static/SuperSlide/images/vis.png differ diff --git a/src/main/webapp/static/SuperSlide/jquery.SuperSlide.2.1.js b/src/main/webapp/static/SuperSlide/jquery.SuperSlide.2.1.js new file mode 100644 index 00000000..46399a5a --- /dev/null +++ b/src/main/webapp/static/SuperSlide/jquery.SuperSlide.2.1.js @@ -0,0 +1,11 @@ +/*! + * SuperSlide v2.1 + * 轻松解决网站大部分特效展示问题 + * 详尽信息请看官网:http://www.SuperSlide2.com/ + * + * Copyright 2011-2013, 大话主席 + * + * 请尊重原创,保留头部版权 + * 在保留版权的前提下可应用于个人或商业用途 + */ +(function(a){a.fn.slide=function(b){return a.fn.slide.defaults={type:"slide",effect:"fade",autoPlay:!1,delayTime:500,interTime:2500,triggerTime:150,defaultIndex:0,titCell:".hd li",mainCell:".bd",targetCell:null,trigger:"mouseover",scroll:1,vis:1,titOnClassName:"on",autoPage:!1,prevCell:".prev",nextCell:".next",pageStateCell:".pageState",opp:!1,pnLoop:!0,easing:"swing",startFun:null,endFun:null,switchLoad:null,playStateCell:".playState",mouseOverStop:!0,defaultPlay:!0,returnDefault:!1},this.each(function(){var c=a.extend({},a.fn.slide.defaults,b),d=a(this),e=c.effect,f=a(c.prevCell,d),g=a(c.nextCell,d),h=a(c.pageStateCell,d),i=a(c.playStateCell,d),j=a(c.titCell,d),k=j.size(),l=a(c.mainCell,d),m=l.children().size(),n=c.switchLoad,o=a(c.targetCell,d),p=parseInt(c.defaultIndex),q=parseInt(c.delayTime),r=parseInt(c.interTime);parseInt(c.triggerTime);var P,t=parseInt(c.scroll),u=parseInt(c.vis),v="false"==c.autoPlay||0==c.autoPlay?!1:!0,w="false"==c.opp||0==c.opp?!1:!0,x="false"==c.autoPage||0==c.autoPage?!1:!0,y="false"==c.pnLoop||0==c.pnLoop?!1:!0,z="false"==c.mouseOverStop||0==c.mouseOverStop?!1:!0,A="false"==c.defaultPlay||0==c.defaultPlay?!1:!0,B="false"==c.returnDefault||0==c.returnDefault?!1:!0,C=0,D=0,E=0,F=0,G=c.easing,H=null,I=null,J=null,K=c.titOnClassName,L=j.index(d.find("."+K)),M=p=defaultIndex=-1==L?p:L,N=p,O=m>=u?0!=m%t?m%t:t:0,Q="leftMarquee"==e||"topMarquee"==e?!0:!1,R=function(){a.isFunction(c.startFun)&&c.startFun(p,k,d,a(c.titCell,d),l,o,f,g)},S=function(){a.isFunction(c.endFun)&&c.endFun(p,k,d,a(c.titCell,d),l,o,f,g)},T=function(){j.removeClass(K),A&&j.eq(defaultIndex).addClass(K)};if("menu"==c.type)return A&&j.removeClass(K).eq(p).addClass(K),j.hover(function(){P=a(this).find(c.targetCell);var b=j.index(a(this));I=setTimeout(function(){switch(p=b,j.removeClass(K).eq(p).addClass(K),R(),e){case"fade":P.stop(!0,!0).animate({opacity:"show"},q,G,S);break;case"slideDown":P.stop(!0,!0).animate({height:"show"},q,G,S)}},c.triggerTime)},function(){switch(clearTimeout(I),e){case"fade":P.animate({opacity:"hide"},q,G);break;case"slideDown":P.animate({height:"hide"},q,G)}}),B&&d.hover(function(){clearTimeout(J)},function(){J=setTimeout(T,q)}),void 0;if(0==k&&(k=m),Q&&(k=2),x){if(m>=u)if("leftLoop"==e||"topLoop"==e)k=0!=m%t?(0^m/t)+1:m/t;else{var U=m-u;k=1+parseInt(0!=U%t?U/t+1:U/t),0>=k&&(k=1)}else k=1;j.html("");var V="";if(1==c.autoPage||"true"==c.autoPage)for(var W=0;k>W;W++)V+="
                • "+(W+1)+"
                • ";else for(var W=0;k>W;W++)V+=c.autoPage.replace("$",W+1);j.html(V);var j=j.children()}if(m>=u){l.children().each(function(){a(this).width()>E&&(E=a(this).width(),D=a(this).outerWidth(!0)),a(this).height()>F&&(F=a(this).height(),C=a(this).outerHeight(!0))});var X=l.children(),Y=function(){for(var a=0;u>a;a++)X.eq(a).clone().addClass("clone").appendTo(l);for(var a=0;O>a;a++)X.eq(m-a-1).clone().addClass("clone").prependTo(l)};switch(e){case"fold":l.css({position:"relative",width:D,height:C}).children().css({position:"absolute",width:E,left:0,top:0,display:"none"});break;case"top":l.wrap('
                  ').css({top:-(p*t)*C,position:"relative",padding:"0",margin:"0"}).children().css({height:F});break;case"left":l.wrap('
                  ').css({width:m*D,left:-(p*t)*D,position:"relative",overflow:"hidden",padding:"0",margin:"0"}).children().css({"float":"left",width:E});break;case"leftLoop":case"leftMarquee":Y(),l.wrap('
                  ').css({width:(m+u+O)*D,position:"relative",overflow:"hidden",padding:"0",margin:"0",left:-(O+p*t)*D}).children().css({"float":"left",width:E});break;case"topLoop":case"topMarquee":Y(),l.wrap('
                  ').css({height:(m+u+O)*C,position:"relative",padding:"0",margin:"0",top:-(O+p*t)*C}).children().css({height:F})}}var Z=function(a){var b=a*t;return a==k?b=m:-1==a&&0!=m%t&&(b=-m%t),b},$=function(b){var c=function(c){for(var d=c;u+c>d;d++)b.eq(d).find("img["+n+"]").each(function(){var b=a(this);if(b.attr("src",b.attr(n)).removeAttr(n),l.find(".clone")[0])for(var c=l.children(),d=0;c.size()>d;d++)c.eq(d).find("img["+n+"]").each(function(){a(this).attr(n)==b.attr("src")&&a(this).attr("src",a(this).attr(n)).removeAttr(n)})})};switch(e){case"fade":case"fold":case"top":case"left":case"slideDown":c(p*t);break;case"leftLoop":case"topLoop":c(O+Z(N));break;case"leftMarquee":case"topMarquee":var d="leftMarquee"==e?l.css("left").replace("px",""):l.css("top").replace("px",""),f="leftMarquee"==e?D:C,g=O;if(0!=d%f){var h=Math.abs(0^d/f);g=1==p?O+h:O+h-1}c(g)}},_=function(a){if(!A||M!=p||a||Q){if(Q?p>=1?p=1:0>=p&&(p=0):(N=p,p>=k?p=0:0>p&&(p=k-1)),R(),null!=n&&$(l.children()),o[0]&&(P=o.eq(p),null!=n&&$(o),"slideDown"==e?(o.not(P).stop(!0,!0).slideUp(q),P.slideDown(q,G,function(){l[0]||S()})):(o.not(P).stop(!0,!0).hide(),P.animate({opacity:"show"},q,function(){l[0]||S()}))),m>=u)switch(e){case"fade":l.children().stop(!0,!0).eq(p).animate({opacity:"show"},q,G,function(){S()}).siblings().hide();break;case"fold":l.children().stop(!0,!0).eq(p).animate({opacity:"show"},q,G,function(){S()}).siblings().animate({opacity:"hide"},q,G);break;case"top":l.stop(!0,!1).animate({top:-p*t*C},q,G,function(){S()});break;case"left":l.stop(!0,!1).animate({left:-p*t*D},q,G,function(){S()});break;case"leftLoop":var b=N;l.stop(!0,!0).animate({left:-(Z(N)+O)*D},q,G,function(){-1>=b?l.css("left",-(O+(k-1)*t)*D):b>=k&&l.css("left",-O*D),S()});break;case"topLoop":var b=N;l.stop(!0,!0).animate({top:-(Z(N)+O)*C},q,G,function(){-1>=b?l.css("top",-(O+(k-1)*t)*C):b>=k&&l.css("top",-O*C),S()});break;case"leftMarquee":var c=l.css("left").replace("px","");0==p?l.animate({left:++c},0,function(){l.css("left").replace("px","")>=0&&l.css("left",-m*D)}):l.animate({left:--c},0,function(){-(m+O)*D>=l.css("left").replace("px","")&&l.css("left",-O*D)});break;case"topMarquee":var d=l.css("top").replace("px","");0==p?l.animate({top:++d},0,function(){l.css("top").replace("px","")>=0&&l.css("top",-m*C)}):l.animate({top:--d},0,function(){-(m+O)*C>=l.css("top").replace("px","")&&l.css("top",-O*C)})}j.removeClass(K).eq(p).addClass(K),M=p,y||(g.removeClass("nextStop"),f.removeClass("prevStop"),0==p&&f.addClass("prevStop"),p==k-1&&g.addClass("nextStop")),h.html(""+(p+1)+"/"+k)}};A&&_(!0),B&&d.hover(function(){clearTimeout(J)},function(){J=setTimeout(function(){p=defaultIndex,A?_():"slideDown"==e?P.slideUp(q,T):P.animate({opacity:"hide"},q,T),M=p},300)});var ab=function(a){H=setInterval(function(){w?p--:p++,_()},a?a:r)},bb=function(a){H=setInterval(_,a?a:r)},cb=function(){z||(clearInterval(H),ab())},db=function(){(y||p!=k-1)&&(p++,_(),Q||cb())},eb=function(){(y||0!=p)&&(p--,_(),Q||cb())},fb=function(){clearInterval(H),Q?bb():ab(),i.removeClass("pauseState")},gb=function(){clearInterval(H),i.addClass("pauseState")};if(v?Q?(w?p--:p++,bb(),z&&l.hover(gb,fb)):(ab(),z&&d.hover(gb,fb)):(Q&&(w?p--:p++),i.addClass("pauseState")),i.click(function(){i.hasClass("pauseState")?fb():gb()}),"mouseover"==c.trigger?j.hover(function(){var a=j.index(this);I=setTimeout(function(){p=a,_(),cb()},c.triggerTime)},function(){clearTimeout(I)}):j.click(function(){p=j.index(this),_(),cb()}),Q){if(g.mousedown(db),f.mousedown(eb),y){var hb,ib=function(){hb=setTimeout(function(){clearInterval(H),bb(0^r/10)},150)},jb=function(){clearTimeout(hb),clearInterval(H),bb()};g.mousedown(ib),g.mouseup(jb),f.mousedown(ib),f.mouseup(jb)}"mouseover"==c.trigger&&(g.hover(db,function(){}),f.hover(eb,function(){}))}else g.click(db),f.click(eb)})}})(jQuery),jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,b,c,d,e){return jQuery.easing[jQuery.easing.def](a,b,c,d,e)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return 1>(b/=e/2)?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return 1>(b/=e/2)?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return 1>(b/=e/2)?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return 1>(b/=e/2)?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return 0==b?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return 0==b?c:b==e?c+d:1>(b/=e/2)?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return 1>(b/=e/2)?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),Math.abs(d)>h){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g))+c},easeOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),Math.abs(d)>h){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*b)*Math.sin((b*e-f)*2*Math.PI/g)+d+c},easeInOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(2==(b/=e/2))return c+d;if(g||(g=e*.3*1.5),Math.abs(d)>h){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return 1>b?-.5*h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)+c:.5*h*Math.pow(2,-10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)+d+c},easeInBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*(b/=e)*b*((f+1)*b-f)+c},easeOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*((b=b/e-1)*b*((f+1)*b+f)+1)+c},easeInOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),1>(b/=e/2)?d/2*b*b*(((f*=1.525)+1)*b-f)+c:d/2*((b-=2)*b*(((f*=1.525)+1)*b+f)+2)+c},easeInBounce:function(a,b,c,d,e){return d-jQuery.easing.easeOutBounce(a,e-b,0,d,e)+c},easeOutBounce:function(a,b,c,d,e){return 1/2.75>(b/=e)?d*7.5625*b*b+c:2/2.75>b?d*(7.5625*(b-=1.5/2.75)*b+.75)+c:2.5/2.75>b?d*(7.5625*(b-=2.25/2.75)*b+.9375)+c:d*(7.5625*(b-=2.625/2.75)*b+.984375)+c},easeInOutBounce:function(a,b,c,d,e){return e/2>b?.5*jQuery.easing.easeInBounce(a,2*b,0,d,e)+c:.5*jQuery.easing.easeOutBounce(a,2*b-e,0,d,e)+.5*d+c}}); \ No newline at end of file diff --git a/src/main/webapp/static/SuperSlide/jquery.SuperSlide.2.1.source.js b/src/main/webapp/static/SuperSlide/jquery.SuperSlide.2.1.source.js new file mode 100644 index 00000000..bf48b989 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/jquery.SuperSlide.2.1.source.js @@ -0,0 +1,453 @@ +/*! + * SuperSlide v2.1 + * 轻松解决网站大部分特效展示问题 + * 详尽信息请看官网:http://www.SuperSlide2.com/ + * + * Copyright 2011-2013, 大话主席 + * + * 请尊重原创,保留头部版权 + * 在保留版权的前提下可应用于个人或商业用途 + + */ + +(function($){ + $.fn.slide=function(options){ + $.fn.slide.defaults={ + type:"slide", + effect:"fade", + autoPlay:false, + delayTime:500, + interTime:2500, + triggerTime:150, + defaultIndex:0, + titCell:".hd li", + mainCell:".bd", + targetCell:null, + trigger:"mouseover", + scroll:1, + vis:1, + titOnClassName:"on", + autoPage:false, + prevCell:".prev", + nextCell:".next", + pageStateCell:".pageState", + opp: false, + pnLoop:true, + easing:"swing", + startFun:null, + endFun:null, + switchLoad:null, + + playStateCell:".playState", + mouseOverStop:true, + defaultPlay:true, + returnDefault:false + }; + + return this.each(function() { + + var opts = $.extend({},$.fn.slide.defaults,options); + var slider = $(this); + var effect = opts.effect; + var prevBtn = $(opts.prevCell, slider); + var nextBtn = $(opts.nextCell, slider); + var pageState = $(opts.pageStateCell, slider); + var playState = $(opts.playStateCell, slider); + + var navObj = $(opts.titCell, slider);//导航子元素结合 + var navObjSize = navObj.size(); + var conBox = $(opts.mainCell , slider);//内容元素父层对象 + var conBoxSize=conBox.children().size(); + var sLoad=opts.switchLoad; + var tarObj = $(opts.targetCell, slider); + + /*字符串转换*/ + var index=parseInt(opts.defaultIndex); + var delayTime=parseInt(opts.delayTime); + var interTime=parseInt(opts.interTime); + var triggerTime=parseInt(opts.triggerTime); + var scroll=parseInt(opts.scroll); + var vis=parseInt(opts.vis); + var autoPlay = (opts.autoPlay=="false"||opts.autoPlay==false)?false:true; + var opp = (opts.opp=="false"||opts.opp==false)?false:true; + var autoPage = (opts.autoPage=="false"||opts.autoPage==false)?false:true; + var pnLoop = (opts.pnLoop=="false"||opts.pnLoop==false)?false:true; + var mouseOverStop = (opts.mouseOverStop=="false"||opts.mouseOverStop==false)?false:true; + var defaultPlay = (opts.defaultPlay=="false"||opts.defaultPlay==false)?false:true; + var returnDefault = (opts.returnDefault=="false"||opts.returnDefault==false)?false:true; + + var slideH=0; + var slideW=0; + var selfW=0; + var selfH=0; + var easing=opts.easing; + var inter=null;//autoPlay-setInterval + var mst =null;//trigger-setTimeout + var rtnST=null;//returnDefault-setTimeout + var titOn = opts.titOnClassName; + + var onIndex = navObj.index( slider.find( "."+titOn) ); + var oldIndex = index = defaultIndex = onIndex==-1?index:onIndex; + + + var _ind = index; + var cloneNum = conBoxSize>=vis?( conBoxSize%scroll!=0?conBoxSize%scroll:scroll):0; + var _tar; + var isMarq = effect=="leftMarquee" || effect=="topMarquee"?true:false; + + var doStartFun=function(){ if ( $.isFunction( opts.startFun) ){ opts.startFun( index,navObjSize,slider,$(opts.titCell, slider),conBox,tarObj,prevBtn,nextBtn ) } } + var doEndFun=function(){ if ( $.isFunction( opts.endFun ) ){ opts.endFun( index,navObjSize,slider,$(opts.titCell, slider),conBox,tarObj,prevBtn,nextBtn ) } } + var resetOn=function(){ navObj.removeClass(titOn); if( defaultPlay ) navObj.eq(defaultIndex).addClass(titOn) } + + + + //单独处理菜单效果 + if( opts.type=="menu" ){ + + if( defaultPlay ){ navObj.removeClass(titOn).eq(index).addClass(titOn); } + navObj.hover( + function(){ + _tar=$(this).find( opts.targetCell ); + var hoverInd =navObj.index($(this)); + + mst = setTimeout(function(){ + index=hoverInd; + navObj.removeClass(titOn).eq (index).addClass(titOn); + doStartFun(); + switch (effect) + { + case "fade":_tar.stop(true,true).animate({opacity:"show"}, delayTime,easing,doEndFun ); break; + case "slideDown":_tar.stop(true,true).animate({height:"show"}, delayTime,easing,doEndFun ); break; + } + } ,opts.triggerTime); + + },function(){ + clearTimeout(mst); + switch (effect){ case "fade":_tar.animate( {opacity:"hide"},delayTime,easing ); break; case "slideDown":_tar.animate( {height:"hide"},delayTime,easing ); break; } + } + ); + + if (returnDefault){ + slider.hover(function(){clearTimeout(rtnST);},function(){ rtnST = setTimeout( resetOn,delayTime ); }); + } + + + return; + } + + + //处理分页 + if( navObjSize==0 )navObjSize=conBoxSize;//只有左右按钮 + if( isMarq ) navObjSize=2; + if( autoPage ){ + if(conBoxSize>=vis){ + if( effect=="leftLoop" || effect=="topLoop" ){ navObjSize=conBoxSize%scroll!=0?(conBoxSize/scroll^0)+1:conBoxSize/scroll; } + else{ + var tempS = conBoxSize-vis; + navObjSize=1+parseInt(tempS%scroll!=0?(tempS/scroll+1):(tempS/scroll)); + if(navObjSize<=0)navObjSize=1; + } + } + else{ navObjSize=1 } + + navObj.html(""); + var str=""; + + if( opts.autoPage==true || opts.autoPage=="true" ){ for( var i=0; i" } } + else{ for( var i=0; i=vis){ //当内容个数少于可视个数,不执行效果。 + conBox.children().each(function(){ //取最大值 + if( $(this).width()>selfW ){ selfW=$(this).width(); slideW=$(this).outerWidth(true); } + if( $(this).height()>selfH ){ selfH=$(this).height(); slideH=$(this).outerHeight(true); } + }); + + var _chr = conBox.children(); + var cloneEle = function(){ + for( var i=0; i').css( { "top":-(index*scroll)*slideH, "position":"relative","padding":"0","margin":"0"}).children().css( {"height":selfH} ); break; + case "left": conBox.wrap('
                  ').css( { "width":conBoxSize*slideW,"left":-(index*scroll)*slideW,"position":"relative","overflow":"hidden","padding":"0","margin":"0"}).children().css( {"float":"left","width":selfW} ); break; + case "leftLoop": + case "leftMarquee": + cloneEle(); + conBox.wrap('
                  ').css( { "width":(conBoxSize+vis+cloneNum)*slideW,"position":"relative","overflow":"hidden","padding":"0","margin":"0","left":-(cloneNum+index*scroll)*slideW}).children().css( {"float":"left","width":selfW} ); break; + case "topLoop": + case "topMarquee": + cloneEle(); + conBox.wrap('
                  ').css( { "height":(conBoxSize+vis+cloneNum)*slideH,"position":"relative","padding":"0","margin":"0","top":-(cloneNum+index*scroll)*slideH}).children().css( {"height":selfH} ); break; + } + } + + + + //针对leftLoop、topLoop的滚动个数 + var scrollNum=function(ind){ + var _tempCs= ind*scroll; + if( ind==navObjSize ){ _tempCs=conBoxSize; }else if( ind==-1 && conBoxSize%scroll!=0){ _tempCs=-conBoxSize%scroll; } + return _tempCs; + } + + //切换加载 + var doSwitchLoad=function(objs){ + + var changeImg=function(t){ + for ( var i= t; i<( vis+ t); i++ ){ + objs.eq(i).find("img["+sLoad+"]").each(function(){ + var _this = $(this); + _this.attr("src",_this.attr(sLoad)).removeAttr(sLoad); + if( conBox.find(".clone")[0] ){ //如果存在.clone + var chir = conBox.children(); + for ( var j=0 ; j< chir.size() ; j++ ) + { + chir.eq(j).find("img["+sLoad+"]").each(function(){ + if( $(this).attr(sLoad)==_this.attr("src") ) $(this).attr("src",$(this).attr(sLoad)).removeAttr(sLoad) + }) + } + } + }) + } + } + + switch(effect) + { + case "fade": case "fold": case "top": case "left": case "slideDown": + changeImg( index*scroll ); + break; + case "leftLoop": case "topLoop": + changeImg( cloneNum+scrollNum(_ind) ); + break; + case "leftMarquee":case "topMarquee": + var curS = effect=="leftMarquee"? conBox.css("left").replace("px",""):conBox.css("top").replace("px",""); + var slideT = effect=="leftMarquee"? slideW:slideH; + var mNum=cloneNum; + if( curS%slideT!=0 ){ + var curP = Math.abs(curS/slideT^0); + if( index==1 ){ mNum=cloneNum+curP }else{ mNum=cloneNum+curP-1 } + } + changeImg( mNum ); + break; + } + }//doSwitchLoad end + + + //效果函数 + var doPlay=function(init){ + // 当前页状态不触发效果 + if( defaultPlay && oldIndex==index && !init && !isMarq ) return; + + //处理页码 + if( isMarq ){ if ( index>= 1) { index=1; } else if( index<=0) { index = 0; } } + else{ + _ind=index; if ( index >= navObjSize) { index = 0; } else if( index < 0) { index = navObjSize-1; } + } + + doStartFun(); + + //处理切换加载 + if( sLoad!=null ){ doSwitchLoad( conBox.children() ) } + + //处理targetCell + if(tarObj[0]){ + _tar = tarObj.eq(index); + if( sLoad!=null ){ doSwitchLoad( tarObj ) } + if( effect=="slideDown" ){ + tarObj.not(_tar).stop(true,true).slideUp(delayTime); + _tar.slideDown( delayTime,easing,function(){ if(!conBox[0]) doEndFun() }); + } + else{ + tarObj.not(_tar).stop(true,true).hide(); + _tar.animate({opacity:"show"},delayTime,function(){ if(!conBox[0]) doEndFun() }); + } + } + + if(conBoxSize>=vis){ //当内容个数少于可视个数,不执行效果。 + switch (effect) + { + case "fade":conBox.children().stop(true,true).eq(index).animate({opacity:"show"},delayTime,easing,function(){doEndFun()}).siblings().hide(); break; + case "fold":conBox.children().stop(true,true).eq(index).animate({opacity:"show"},delayTime,easing,function(){doEndFun()}).siblings().animate({opacity:"hide"},delayTime,easing);break; + case "top":conBox.stop(true,false).animate({"top":-index*scroll*slideH},delayTime,easing,function(){doEndFun()});break; + case "left":conBox.stop(true,false).animate({"left":-index*scroll*slideW},delayTime,easing,function(){doEndFun()});break; + case "leftLoop": + var __ind = _ind; + conBox.stop(true,true).animate({"left":-(scrollNum(_ind)+cloneNum)*slideW},delayTime,easing,function(){ + if( __ind<=-1 ){ conBox.css("left",-(cloneNum+(navObjSize-1)*scroll)*slideW); }else if( __ind>=navObjSize ){ conBox.css("left",-cloneNum*slideW); } + doEndFun(); + }); + break;//leftLoop end + + case "topLoop": + var __ind = _ind; + conBox.stop(true,true).animate({"top":-(scrollNum(_ind)+cloneNum)*slideH},delayTime,easing,function(){ + if( __ind<=-1 ){ conBox.css("top",-(cloneNum+(navObjSize-1)*scroll)*slideH); }else if( __ind>=navObjSize ){ conBox.css("top",-cloneNum*slideH); } + doEndFun(); + }); + break;//topLoop end + + case "leftMarquee": + var tempLeft = conBox.css("left").replace("px",""); + if(index==0 ){ + conBox.animate({"left":++tempLeft},0,function(){ + if( conBox.css("left").replace("px","")>= 0){ conBox.css("left",-conBoxSize*slideW) } + }); + } + else{ + conBox.animate({"left":--tempLeft},0,function(){ + if( conBox.css("left").replace("px","")<= -(conBoxSize+cloneNum)*slideW){ conBox.css("left",-cloneNum*slideW) } + }); + }break;// leftMarquee end + + case "topMarquee": + var tempTop = conBox.css("top").replace("px",""); + if(index==0 ){ + conBox.animate({"top":++tempTop},0,function(){ + if( conBox.css("top").replace("px","")>= 0){ conBox.css("top",-conBoxSize*slideH) } + }); + } + else{ + conBox.animate({"top":--tempTop},0,function(){ + if( conBox.css("top").replace("px","")<= -(conBoxSize+cloneNum)*slideH){ conBox.css("top",-cloneNum*slideH) } + }); + }break;// topMarquee end + + }//switch end + } + + navObj.removeClass(titOn).eq(index).addClass(titOn); + oldIndex=index; + if( !pnLoop ){ //pnLoop控制前后按钮是否继续循环 + nextBtn.removeClass("nextStop"); prevBtn.removeClass("prevStop"); + if (index==0 ){ prevBtn.addClass("prevStop"); } + if (index==navObjSize-1 ){ nextBtn.addClass("nextStop"); } + } + + pageState.html( ""+(index+1)+"/"+navObjSize); + + };// doPlay end + + //初始化执行 + if( defaultPlay ){ doPlay(true); } + + if (returnDefault)//返回默认状态 + { + slider.hover(function(){ clearTimeout(rtnST) },function(){ + rtnST = setTimeout( function(){ + index=defaultIndex; + if(defaultPlay){ doPlay(); } + else{ + if( effect=="slideDown" ){ _tar.slideUp( delayTime, resetOn ); } + else{ _tar.animate({opacity:"hide"},delayTime,resetOn ); } + } + oldIndex=index; + },300 ); + }); + } + + ///自动播放函数 + var setInter = function(time){ inter=setInterval(function(){ opp?index--:index++; doPlay() }, !!time?time:interTime); } + var setMarInter = function(time){ inter = setInterval(doPlay, !!time?time:interTime); } + // 处理mouseOverStop + var resetInter = function(){ if( !mouseOverStop ){clearInterval(inter); setInter() } } + // 前后按钮触发 + var nextTrigger = function(){ if ( pnLoop || index!=navObjSize-1 ){ index++; doPlay(); if(!isMarq)resetInter(); } } + var prevTrigger = function(){ if ( pnLoop || index!=0 ){ index--; doPlay(); if(!isMarq)resetInter(); } } + //处理playState + var playStateFun = function(){ clearInterval(inter); isMarq?setMarInter():setInter(); playState.removeClass("pauseState") } + var pauseStateFun = function(){ clearInterval(inter);playState.addClass("pauseState"); } + + //自动播放 + if (autoPlay) { + if( isMarq ){ + opp?index--:index++; setMarInter(); + if(mouseOverStop) conBox.hover(pauseStateFun,playStateFun); + }else{ + setInter(); + if(mouseOverStop) slider.hover( pauseStateFun,playStateFun ); + } + } + else{ if( isMarq ){ opp?index--:index++; } playState.addClass("pauseState"); } + + playState.click(function(){ playState.hasClass("pauseState")?playStateFun():pauseStateFun() }); + + //titCell事件 + if(opts.trigger=="mouseover"){ + navObj.hover(function(){ var hoverInd = navObj.index(this); mst = setTimeout(function(){ index=hoverInd; doPlay(); resetInter(); },opts.triggerTime); }, function(){ clearTimeout(mst) }); + }else{ navObj.click(function(){ index=navObj.index(this); doPlay(); resetInter(); }) } + + //前后按钮事件 + if (isMarq){ + + nextBtn.mousedown(nextTrigger); + prevBtn.mousedown(prevTrigger); + //前后按钮长按10倍加速 + if (pnLoop) + { + var st; + var marDown = function(){ st=setTimeout(function(){ clearInterval(inter); setMarInter( interTime/10^0 ) },150) } + var marUp = function(){ clearTimeout(st); clearInterval(inter); setMarInter() } + nextBtn.mousedown(marDown); nextBtn.mouseup(marUp); + prevBtn.mousedown(marDown); prevBtn.mouseup(marUp); + } + //前后按钮mouseover事件 + if( opts.trigger=="mouseover" ){ nextBtn.hover(nextTrigger,function(){}); prevBtn.hover(prevTrigger,function(){}); } + }else{ + nextBtn.click(nextTrigger); + prevBtn.click(prevTrigger); + } + + });//each End + + };//slide End + +})(jQuery); + +jQuery.easing['jswing'] = jQuery.easing['swing']; +jQuery.extend( jQuery.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { return jQuery.easing[jQuery.easing.def](x, t, b, c, d); }, + easeInQuad: function (x, t, b, c, d) {return c*(t/=d)*t + b;}, + easeOutQuad: function (x, t, b, c, d) {return -c *(t/=d)*(t-2) + b}, + easeInOutQuad: function (x, t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t + b;return -c/2 * ((--t)*(t-2) - 1) + b}, + easeInCubic: function (x, t, b, c, d) {return c*(t/=d)*t*t + b}, + easeOutCubic: function (x, t, b, c, d) {return c*((t=t/d-1)*t*t + 1) + b}, + easeInOutCubic: function (x, t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t*t + b;return c/2*((t-=2)*t*t + 2) + b}, + easeInQuart: function (x, t, b, c, d) {return c*(t/=d)*t*t*t + b}, + easeOutQuart: function (x, t, b, c, d) {return -c * ((t=t/d-1)*t*t*t - 1) + b}, + easeInOutQuart: function (x, t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t*t*t + b;return -c/2 * ((t-=2)*t*t*t - 2) + b}, + easeInQuint: function (x, t, b, c, d) {return c*(t/=d)*t*t*t*t + b}, + easeOutQuint: function (x, t, b, c, d) {return c*((t=t/d-1)*t*t*t*t + 1) + b}, + easeInOutQuint: function (x, t, b, c, d) {if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;return c/2*((t-=2)*t*t*t*t + 2) + b}, + easeInSine: function (x, t, b, c, d) {return -c * Math.cos(t/d * (Math.PI/2)) + c + b}, + easeOutSine: function (x, t, b, c, d) {return c * Math.sin(t/d * (Math.PI/2)) + b}, + easeInOutSine: function (x, t, b, c, d) {return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b}, + easeInExpo: function (x, t, b, c, d) {return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b}, + easeOutExpo: function (x, t, b, c, d) {return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b}, + easeInOutExpo: function (x, t, b, c, d) {if (t==0) return b;if (t==d) return b+c;if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;return c/2 * (-Math.pow(2, -10 * --t) + 2) + b}, + easeInCirc: function (x, t, b, c, d) {return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b}, + easeOutCirc: function (x, t, b, c, d) {return c * Math.sqrt(1 - (t=t/d-1)*t) + b}, + easeInOutCirc: function (x, t, b, c, d) {if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b}, + easeInElastic: function (x, t, b, c, d) {var s=1.70158;var p=0;var a=c;if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a);return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b}, + easeOutElastic: function (x, t, b, c, d) {var s=1.70158;var p=0;var a=c;if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a);return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b}, + easeInOutElastic: function (x, t, b, c, d) {var s=1.70158;var p=0;var a=c;if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a);if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b}, + easeInBack: function (x, t, b, c, d, s) {if (s == undefined) s = 1.70158;return c*(t/=d)*t*((s+1)*t - s) + b}, + easeOutBack: function (x, t, b, c, d, s) {if (s == undefined) s = 1.70158;return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b}, + easeInOutBack: function (x, t, b, c, d, s) {if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b}, + easeInBounce: function (x, t, b, c, d) {return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b}, + easeOutBounce: function (x, t, b, c, d) {if ((t/=d) < (1/2.75)) { return c*(7.5625*t*t) + b;} else if (t < (2/2.75)) { return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;} else if (t < (2.5/2.75)) { return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;} else { return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;}}, + easeInOutBounce: function (x, t, b, c, d) {if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;} +}); \ No newline at end of file diff --git a/src/main/webapp/static/SuperSlide/jquery1.42.min.js b/src/main/webapp/static/SuperSlide/jquery1.42.min.js new file mode 100644 index 00000000..48a88b8f --- /dev/null +++ b/src/main/webapp/static/SuperSlide/jquery1.42.min.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
                  a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

                  ";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
                  ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
                  ","
                  "],thead:[1,"","
                  "],tr:[2,"","
                  "],td:[3,"","
                  "],col:[2,"","
                  "],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
                  ","
                  "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
                  ").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
                  "; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); \ No newline at end of file diff --git a/src/main/webapp/static/SuperSlide/param.html b/src/main/webapp/static/SuperSlide/param.html new file mode 100644 index 00000000..bc8c35de --- /dev/null +++ b/src/main/webapp/static/SuperSlide/param.html @@ -0,0 +1,299 @@ + + + + + + + +SuperSlide - 查看参数 + + + + + + + + + + +
                  +
                    +
                  • 全部参数
                  • 必须理解参数[新手]
                  • +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  参数版本默认值说明详细
                  type2.1slide效果类型,可选"slide"||"menu",引入type:"menu"专门处理菜单/导航效果
                  defaultPlay2.1true默认是否执行效果(第一次运行是否执行效果)常用于导航/菜单
                  returnDefault2.1false鼠标移出容器,是否返回默认状态,常用于导航/菜单
                  mouseOverStop2.1true鼠标移到容器层(无缝滚动是mainCell)是否停止播放
                  playStateCell2.1".playState"播放/暂停状态按钮,点击后会增加/删除"pauseState"类名用于控制样色。可参考 [2.22-真·全屏焦点图]
                  switchLoad2.0 > 2.1null内容切换加载,暂时只支持图片,必须配合后台程序使用。当为图片的时候switchLoad为图片实际路径的属性名称,例如switchLoad:"_src"
                  + [v2.1] 修复当scroll>1时,switchLoad无效的bug。 +
                  详解
                  easing2.0 > 2.1"swing"缓动效果;
                  [v2.1]更改默认效果为“swing”,使效果更流畅
                  所有
                  startFun2.0 > 2.1null每次切换效果开始时执行函数,用于处理特殊情况或创建更多效果。用法 satrtFun:function(i,c){ }; 其中i为当前分页,c为总页数
                  + [v2.1]增加传递参数,startFun:function( i, c, slider, titCell, mainCell, targetCell, prevCell, nextCell ){},这样简写就方便了。
                  + 例如 jQuery(".slideBox").slide({ startFun:function( i,c,s ){ s.show() } }); 这里的 s.show() 相当于 jQuery(".slideBox").show() +
                  详解
                  endFun2.0 > 2.1null每次切换效果结束时执行函数,用法和startFun一致
                  +
                  详解
                  triggerTime2.0150毫秒,titCell触发时间,默认150毫秒延迟,以防重复执行效果。若为0即鼠标移过titCell立刻执行效果
                  targetCell2.0 > 2.1null切换元素对象,处理内容切换元素非包裹状态下等情况,实现更多效果,处理更多情况,能和titCell、mainCell同时使用。只支持fade效果。
                  + [v2.1] 增加支持slideDown效果。 +
                  详解
                  pageStateCell2.0".pageState"分页状态对象,用于显示分页状态,例如:2/3
                  pnLoop2.0true前/后按钮是否继续循环,若为false则当翻动到最前/后页时,前/后按钮点击无效,同时增加prevStop/nextStop类名控制样色
                  opp2.0false默认反方向运动,例如 effect:"leftMarquee" 然后设置 opp:true,则效果为右滚动。常用于leftMarquee/topMarquee
                  autoPage1.2 > 2.1false + [v1.2] 程序自动分页,需结合titCell使用,若为true,则titCell为导航元素的包裹层对象。ps:scroll>1时,记得设置autoPage:true,否则分页错误
                  + [v2.1] 支持自定义分页html,$为数字替换位置。例如autoPage:"<li><a>$</a></li>",如果不想输出数字:autoPage:"<li><a></a></li>"。 +
                  图解
                  titCell1.0".hd li"导航元素对象(鼠标的触发元素对象)图解
                  mainCell1.0".bd"切换元素的包裹层对象图解
                  effect1.0 > 2.0 >2.1"fade"动画效果
                  + [v1.0] fade:渐显; || top:上滚动;|| left:左滚动;|| topLoop:上循环滚动;|| leftLoop:左循环滚动;|| topMarquee:上无缝循环滚动;|| leftMarquee:左无缝循环滚动;
                  + [v2.0] fold:淡入淡出
                  + [v2.1] slideDown:下拉效果
                  autoPlay1.0false自动运行
                  interTime1.02500毫秒;自动运行间隔。当effect为无缝滚动(topMarquee/leftMarquee)时,相当于运行速度。
                  delayTime1.0500毫秒;切换效果持续时间(一次切换效果执行所用的时间长度)。
                  trigger1.0"mouseover"titCell触发方式 || mouseover:鼠标移过触发;|| click:鼠标点击触发;
                  scroll1.01每次滚动个数。
                  vis1.01visible缩写,mainCell的可视范围个数,当实际内容个数少于可视个数的时候,不执行SuperSlide效果。图解
                  prevCell1.0".prev"前一个/页按钮对象。
                  nextCell1.0".next"后一个/页按钮对象。
                  defaultIndex1.00默认的当前位置索引。0是第一个; defaultIndex:1 时,相当于从第2个开始执行
                  titOnClassName1.0"on"当前titCell位置自动增加的class名称
                  + + + +
                  + + + + + + + + + + diff --git a/src/main/webapp/static/SuperSlide/重要说明!.txt b/src/main/webapp/static/SuperSlide/重要说明!.txt new file mode 100644 index 00000000..0d783ea1 --- /dev/null +++ b/src/main/webapp/static/SuperSlide/重要说明!.txt @@ -0,0 +1,25 @@ +/*! + * SuperSlide v2.1 + * ɽվ󲿷Чչʾ + * 꾡Ϣ뿴http://www.SuperSlide2.com/ + * + * Copyright 2011-2013, ϯ + * + * ԭͷȨ + * ڱȨǰ¿Ӧڸ˻ҵ; + */ + + +1jquery.SuperSlide.2.1.js Ϊѹļ +2jquery.SuperSlide.2.1.source.js ΪԴļ +3demoļΪлЧʾ demo/1.0-switchTab.html Ϊtabлʾ +4demo/iframe ļвǻʾԣ + + +㹺չЧῴļ + +5otherDemoļΪչЧʾ +6syntaxhighlighter ļΪɫԺ + + +л֧֣ \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome-ie7.css b/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome-ie7.css new file mode 100644 index 00000000..507ebeb3 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome-ie7.css @@ -0,0 +1,1203 @@ +/*! + * Font Awesome 3.2.1 + * the iconic font designed for Bootstrap + * ------------------------------------------------------------------------------ + * The full suite of pictographic icons, examples, and documentation can be + * found at http://fontawesome.io. Stay up to date on Twitter at + * http://twitter.com/fontawesome. + * + * License + * ------------------------------------------------------------------------------ + * - The Font Awesome font is licensed under SIL OFL 1.1 - + * http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License - + * http://opensource.org/licenses/mit-license.html + * - Font Awesome documentation licensed under CC BY 3.0 - + * http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fontawesome.io" + * + * Author - Dave Gandy + * ------------------------------------------------------------------------------ + * Email: dave@fontawesome.io + * Twitter: http://twitter.com/byscuits + * Work: Lead Product Designer @ Kyruus - http://kyruus.com + */ +.icon-large { + font-size: 1.3333333333333333em; + margin-top: -4px; + padding-top: 3px; + margin-bottom: -4px; + padding-bottom: 3px; + vertical-align: middle; +} +.nav [class^="icon-"], +.nav [class*=" icon-"] { + vertical-align: inherit; + margin-top: -4px; + padding-top: 3px; + margin-bottom: -4px; + padding-bottom: 3px; +} +.nav [class^="icon-"].icon-large, +.nav [class*=" icon-"].icon-large { + vertical-align: -25%; +} +.nav-pills [class^="icon-"].icon-large, +.nav-tabs [class^="icon-"].icon-large, +.nav-pills [class*=" icon-"].icon-large, +.nav-tabs [class*=" icon-"].icon-large { + line-height: .75em; + margin-top: -7px; + padding-top: 5px; + margin-bottom: -5px; + padding-bottom: 4px; +} +.btn [class^="icon-"].pull-left, +.btn [class*=" icon-"].pull-left, +.btn [class^="icon-"].pull-right, +.btn [class*=" icon-"].pull-right { + vertical-align: inherit; +} +.btn [class^="icon-"].icon-large, +.btn [class*=" icon-"].icon-large { + margin-top: -0.5em; +} +a [class^="icon-"], +a [class*=" icon-"] { + cursor: pointer; +} +.icon-glass { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-music { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-search { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-envelope-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-heart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-user { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-film { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th-large { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th-list { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-zoom-in { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-zoom-out { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-power-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cog { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gear { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-trash { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-home { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-file-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-time { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-road { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-download-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-download { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-upload { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-inbox { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-play-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-repeat { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rotate-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-refresh { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lock { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-flag { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-headphones { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-qrcode { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-barcode { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tag { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tags { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-book { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bookmark { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-print { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-camera { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-font { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bold { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-italic { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-text-height { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-text-width { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-center { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-justify { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-indent-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-indent-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facetime-video { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-picture { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pencil { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-map-marker { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-adjust { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tint { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-edit { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-share { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-move { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-step-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fast-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-play { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pause { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-stop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fast-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-step-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eject { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-minus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-question-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-info-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-screenshot { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ban-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-share-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-mail-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-full { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-small { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-minus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-asterisk { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-exclamation-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gift { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-leaf { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fire { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eye-open { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eye-close { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-warning-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plane { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-calendar { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-random { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comment { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-magnet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-retweet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-shopping-cart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-close { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-open { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-vertical { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-horizontal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bar-chart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-twitter-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facebook-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-camera-retro { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-key { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cogs { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gears { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comments { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-thumbs-up-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-thumbs-down-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-half { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-heart-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signout { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-linkedin-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pushpin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-external-link { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-trophy { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-github-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-upload-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lemon { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-phone { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-unchecked { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bookmark-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-phone-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-twitter { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facebook { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-github { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-unlock { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-credit-card { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rss { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hdd { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bullhorn { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bell { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-certificate { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-globe { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-wrench { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tasks { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-filter { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-briefcase { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fullscreen { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-group { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-link { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-beaker { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cut { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-copy { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-paper-clip { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-paperclip { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-save { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sign-blank { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-reorder { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-ul { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-ol { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-strikethrough { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-underline { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-table { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-magic { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-truck { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pinterest { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pinterest-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-google-plus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-google-plus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-money { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-columns { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-envelope { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-linkedin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-undo { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rotate-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-legal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-dashboard { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comment-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comments-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bolt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sitemap { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-umbrella { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-paste { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lightbulb { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-exchange { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud-download { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud-upload { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-user-md { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-stethoscope { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-suitcase { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bell-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-coffee { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-food { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-file-text-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-building { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hospital { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ambulance { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-medkit { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fighter-jet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-beer { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-h-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus-sign-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-desktop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-laptop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tablet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-mobile-phone { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-blank { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-quote-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-quote-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-spinner { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-reply { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-mail-reply { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-github-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-close-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-open-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-expand-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-collapse-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-smile { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-frown { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-meh { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gamepad { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-keyboard { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-flag-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-flag-checkered { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-terminal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-code { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-reply-all { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-mail-reply-all { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-half-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-half-full { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-location-arrow { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-crop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-code-fork { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-unlink { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-question { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-info { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-exclamation { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-superscript { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-subscript { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eraser { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-puzzle-piece { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-microphone { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-microphone-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-shield { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-calendar-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fire-extinguisher { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rocket { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-maxcdn { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-sign-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-sign-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-sign-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-sign-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-html5 { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-css3 { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-anchor { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-unlock-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bullseye { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ellipsis-horizontal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ellipsis-vertical { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rss-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-play-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ticket { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-minus-sign-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check-minus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-level-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-level-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-edit-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-external-link-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-share-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-compass { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-collapse { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-collapse-top { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-expand { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eur { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-euro { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gbp { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-usd { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-dollar { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-inr { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rupee { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-jpy { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-yen { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cny { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-renminbi { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-krw { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-won { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-btc { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bitcoin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-file { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-file-text { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-by-alphabet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-by-alphabet-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-by-attributes { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-by-attributes-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-by-order { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-by-order-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-thumbs-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-thumbs-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-youtube-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-youtube { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-xing { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-xing-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-youtube-play { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-dropbox { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-stackexchange { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-instagram { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-flickr { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-adn { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bitbucket { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bitbucket-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tumblr { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tumblr-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-long-arrow-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-long-arrow-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-long-arrow-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-long-arrow-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-apple { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-windows { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-android { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-linux { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-dribbble { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-skype { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-foursquare { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-trello { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-female { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-male { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gittip { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sun { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-moon { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-archive { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bug { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-vk { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-weibo { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-renren { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} diff --git a/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome-ie7.min.css b/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome-ie7.min.css new file mode 100644 index 00000000..d3dae63b --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome-ie7.min.css @@ -0,0 +1,384 @@ +.icon-large{font-size:1.3333333333333333em;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px;vertical-align:middle;} +.nav [class^="icon-"],.nav [class*=" icon-"]{vertical-align:inherit;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px;}.nav [class^="icon-"].icon-large,.nav [class*=" icon-"].icon-large{vertical-align:-25%;} +.nav-pills [class^="icon-"].icon-large,.nav-tabs [class^="icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large{line-height:.75em;margin-top:-7px;padding-top:5px;margin-bottom:-5px;padding-bottom:4px;} +.btn [class^="icon-"].pull-left,.btn [class*=" icon-"].pull-left,.btn [class^="icon-"].pull-right,.btn [class*=" icon-"].pull-right{vertical-align:inherit;} +.btn [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large{margin-top:-0.5em;} +a [class^="icon-"],a [class*=" icon-"]{cursor:pointer;} +.icon-glass{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-music{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-search{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-envelope-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-heart{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-star{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-star-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-user{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-film{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-th-large{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-th{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-th-list{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-ok{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-remove{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-zoom-in{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-zoom-out{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-off{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-power-off{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-signal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-cog{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-gear{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-trash{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-home{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-file-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-time{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-road{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-download-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-download{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-upload{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-inbox{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-play-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-repeat{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-rotate-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-refresh{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-list-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-lock{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-flag{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-headphones{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-volume-off{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-volume-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-volume-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-qrcode{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-barcode{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-tag{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-tags{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-book{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bookmark{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-print{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-camera{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-font{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bold{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-italic{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-text-height{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-text-width{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-align-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-align-center{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-align-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-align-justify{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-list{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-indent-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-indent-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-facetime-video{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-picture{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-pencil{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-map-marker{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-adjust{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-tint{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-edit{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-share{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-check{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-move{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-step-backward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-fast-backward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-backward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-play{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-pause{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-stop{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-forward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-fast-forward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-step-forward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-eject{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-chevron-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-chevron-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-plus-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-minus-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-remove-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-ok-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-question-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-info-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-screenshot{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-remove-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-ok-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-ban-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-arrow-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-arrow-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-arrow-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-arrow-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-share-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-mail-forward{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-resize-full{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-resize-small{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-plus{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-minus{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-asterisk{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-exclamation-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-gift{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-leaf{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-fire{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-eye-open{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-eye-close{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-warning-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-plane{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-calendar{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-random{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-comment{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-magnet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-chevron-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-chevron-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-retweet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-shopping-cart{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-folder-close{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-folder-open{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-resize-vertical{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-resize-horizontal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bar-chart{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-twitter-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-facebook-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-camera-retro{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-key{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-cogs{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-gears{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-comments{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-thumbs-up-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-thumbs-down-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-star-half{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-heart-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-signout{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-linkedin-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-pushpin{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-external-link{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-signin{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-trophy{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-github-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-upload-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-lemon{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-phone{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-check-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-unchecked{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bookmark-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-phone-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-twitter{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-facebook{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-github{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-unlock{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-credit-card{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-rss{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-hdd{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bullhorn{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bell{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-certificate{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-hand-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-hand-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-hand-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-hand-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-circle-arrow-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-circle-arrow-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-circle-arrow-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-circle-arrow-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-globe{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-wrench{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-tasks{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-filter{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-briefcase{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-fullscreen{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-group{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-link{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-cloud{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-beaker{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-cut{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-copy{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-paper-clip{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-paperclip{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-save{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sign-blank{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-reorder{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-list-ul{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-list-ol{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-strikethrough{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-underline{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-table{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-magic{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-truck{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-pinterest{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-pinterest-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-google-plus-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-google-plus{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-money{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-caret-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-caret-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-caret-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-caret-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-columns{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-envelope{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-linkedin{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-undo{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-rotate-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-legal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-dashboard{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-comment-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-comments-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bolt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sitemap{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-umbrella{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-paste{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-lightbulb{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-exchange{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-cloud-download{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-cloud-upload{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-user-md{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-stethoscope{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-suitcase{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bell-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-coffee{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-food{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-file-text-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-building{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-hospital{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-ambulance{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-medkit{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-fighter-jet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-beer{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-h-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-plus-sign-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-double-angle-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-double-angle-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-double-angle-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-double-angle-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-angle-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-angle-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-angle-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-angle-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-desktop{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-laptop{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-tablet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-mobile-phone{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-circle-blank{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-quote-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-quote-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-spinner{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-reply{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-mail-reply{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-github-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-folder-close-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-folder-open-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-expand-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-collapse-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-smile{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-frown{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-meh{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-gamepad{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-keyboard{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-flag-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-flag-checkered{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-terminal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-code{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-reply-all{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-mail-reply-all{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-star-half-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-star-half-full{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-location-arrow{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-crop{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-code-fork{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-unlink{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-question{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-info{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-exclamation{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-superscript{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-subscript{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-eraser{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-puzzle-piece{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-microphone{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-microphone-off{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-shield{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-calendar-empty{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-fire-extinguisher{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-rocket{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-maxcdn{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-chevron-sign-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-chevron-sign-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-chevron-sign-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-chevron-sign-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-html5{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-css3{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-anchor{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-unlock-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bullseye{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-ellipsis-horizontal{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-ellipsis-vertical{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-rss-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-play-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-ticket{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-minus-sign-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-check-minus{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-level-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-level-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-check-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-edit-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-external-link-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-share-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-compass{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-collapse{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-collapse-top{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-expand{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-eur{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-euro{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-gbp{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-usd{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-dollar{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-inr{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-rupee{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-jpy{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-yen{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-cny{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-renminbi{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-krw{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-won{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-btc{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bitcoin{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-file{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-file-text{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort-by-alphabet{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort-by-alphabet-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort-by-attributes{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort-by-attributes-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort-by-order{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sort-by-order-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-thumbs-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-thumbs-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-youtube-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-youtube{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-xing{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-xing-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-youtube-play{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-dropbox{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-stackexchange{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-instagram{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-flickr{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-adn{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bitbucket{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bitbucket-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-tumblr{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-tumblr-sign{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-long-arrow-down{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-long-arrow-up{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-long-arrow-left{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-long-arrow-right{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-apple{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-windows{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-android{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-linux{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-dribbble{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-skype{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-foursquare{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-trello{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-female{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-male{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-gittip{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-sun{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-moon{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-archive{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-bug{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-vk{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-weibo{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} +.icon-renren{*zoom:expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');} diff --git a/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome.css b/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome.css new file mode 100644 index 00000000..30a96b22 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome.css @@ -0,0 +1,1479 @@ +/*! + * Font Awesome 3.2.1 + * the iconic font designed for Bootstrap + * ------------------------------------------------------------------------------ + * The full suite of pictographic icons, examples, and documentation can be + * found at http://fontawesome.io. Stay up to date on Twitter at + * http://twitter.com/fontawesome. + * + * License + * ------------------------------------------------------------------------------ + * - The Font Awesome font is licensed under SIL OFL 1.1 - + * http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License - + * http://opensource.org/licenses/mit-license.html + * - Font Awesome documentation licensed under CC BY 3.0 - + * http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fontawesome.io" + * + * Author - Dave Gandy + * ------------------------------------------------------------------------------ + * Email: dave@fontawesome.io + * Twitter: http://twitter.com/byscuits + * Work: Lead Product Designer @ Kyruus - http://kyruus.com + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../font/fontawesome-webfont.eot?v=3.2.1'); + src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg'); + font-weight: normal; + font-style: normal; +} +/* FONT AWESOME CORE + * -------------------------- */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + -webkit-font-smoothing: antialiased; + *margin-right: .3em; +} +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 1.3333333333333333em; +} +/* makes sure icons active on rollover in links */ +a [class^="icon-"], +a [class*=" icon-"] { + display: inline; +} +/* increased font size for icon-large */ +[class^="icon-"].icon-fixed-width, +[class*=" icon-"].icon-fixed-width { + display: inline-block; + width: 1.1428571428571428em; + text-align: right; + padding-right: 0.2857142857142857em; +} +[class^="icon-"].icon-fixed-width.icon-large, +[class*=" icon-"].icon-fixed-width.icon-large { + width: 1.4285714285714286em; +} +.icons-ul { + margin-left: 2.142857142857143em; + list-style-type: none; +} +.icons-ul > li { + position: relative; +} +.icons-ul .icon-li { + position: absolute; + left: -2.142857142857143em; + width: 2.142857142857143em; + text-align: center; + line-height: inherit; +} +[class^="icon-"].hide, +[class*=" icon-"].hide { + display: none; +} +.icon-muted { + color: #eeeeee; +} +.icon-light { + color: #ffffff; +} +.icon-dark { + color: #333333; +} +.icon-border { + border: solid 1px #eeeeee; + padding: .2em .25em .15em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.icon-2x { + font-size: 2em; +} +.icon-2x.icon-border { + border-width: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.icon-3x { + font-size: 3em; +} +.icon-3x.icon-border { + border-width: 3px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.icon-4x { + font-size: 4em; +} +.icon-4x.icon-border { + border-width: 4px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.icon-5x { + font-size: 5em; +} +.icon-5x.icon-border { + border-width: 5px; + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +[class^="icon-"].pull-left, +[class*=" icon-"].pull-left { + margin-right: .3em; +} +[class^="icon-"].pull-right, +[class*=" icon-"].pull-right { + margin-left: .3em; +} +/* BOOTSTRAP SPECIFIC CLASSES + * -------------------------- */ +/* Bootstrap 2.0 sprites.less reset */ +[class^="icon-"], +[class*=" icon-"] { + display: inline; + width: auto; + height: auto; + line-height: normal; + vertical-align: baseline; + background-image: none; + background-position: 0% 0%; + background-repeat: repeat; + margin-top: 0; +} +/* more sprites.less reset */ +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"] { + background-image: none; +} +/* keeps Bootstrap styles with and without icons the same */ +.btn [class^="icon-"].icon-large, +.nav [class^="icon-"].icon-large, +.btn [class*=" icon-"].icon-large, +.nav [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].icon-spin, +.nav [class^="icon-"].icon-spin, +.btn [class*=" icon-"].icon-spin, +.nav [class*=" icon-"].icon-spin { + display: inline-block; +} +.nav-tabs [class^="icon-"], +.nav-pills [class^="icon-"], +.nav-tabs [class*=" icon-"], +.nav-pills [class*=" icon-"], +.nav-tabs [class^="icon-"].icon-large, +.nav-pills [class^="icon-"].icon-large, +.nav-tabs [class*=" icon-"].icon-large, +.nav-pills [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].pull-left.icon-2x, +.btn [class*=" icon-"].pull-left.icon-2x, +.btn [class^="icon-"].pull-right.icon-2x, +.btn [class*=" icon-"].pull-right.icon-2x { + margin-top: .18em; +} +.btn [class^="icon-"].icon-spin.icon-large, +.btn [class*=" icon-"].icon-spin.icon-large { + line-height: .8em; +} +.btn.btn-small [class^="icon-"].pull-left.icon-2x, +.btn.btn-small [class*=" icon-"].pull-left.icon-2x, +.btn.btn-small [class^="icon-"].pull-right.icon-2x, +.btn.btn-small [class*=" icon-"].pull-right.icon-2x { + margin-top: .25em; +} +.btn.btn-large [class^="icon-"], +.btn.btn-large [class*=" icon-"] { + margin-top: 0; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x, +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-top: .05em; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x { + margin-right: .2em; +} +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-left: .2em; +} +/* Fixes alignment in nav lists */ +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + line-height: inherit; +} +/* EXTRAS + * -------------------------- */ +/* Stacked and layered icon */ +.icon-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: -35%; +} +.icon-stack [class^="icon-"], +.icon-stack [class*=" icon-"] { + display: block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; + font-size: 1em; + line-height: inherit; + *line-height: 2em; +} +.icon-stack .icon-stack-base { + font-size: 2em; + *line-height: 1em; +} +/* Animated rotating icon */ +.icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} +/* Prevent stack and spinners from being taken inline when inside a link */ +a .icon-stack, +a .icon-spin { + display: inline-block; + text-decoration: none; +} +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + } + 100% { + -moz-transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -o-transform: rotate(0deg); + } + 100% { + -o-transform: rotate(359deg); + } +} +@-ms-keyframes spin { + 0% { + -ms-transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +/* Icon rotations and mirroring */ +.icon-rotate-90:before { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); +} +.icon-rotate-180:before { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); +} +.icon-rotate-270:before { + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); +} +.icon-flip-horizontal:before { + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.icon-flip-vertical:before { + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} +/* ensure rotation occurs inside anchor tags */ +a .icon-rotate-90:before, +a .icon-rotate-180:before, +a .icon-rotate-270:before, +a .icon-flip-horizontal:before, +a .icon-flip-vertical:before { + display: inline-block; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-glass:before { + content: "\f000"; +} +.icon-music:before { + content: "\f001"; +} +.icon-search:before { + content: "\f002"; +} +.icon-envelope-alt:before { + content: "\f003"; +} +.icon-heart:before { + content: "\f004"; +} +.icon-star:before { + content: "\f005"; +} +.icon-star-empty:before { + content: "\f006"; +} +.icon-user:before { + content: "\f007"; +} +.icon-film:before { + content: "\f008"; +} +.icon-th-large:before { + content: "\f009"; +} +.icon-th:before { + content: "\f00a"; +} +.icon-th-list:before { + content: "\f00b"; +} +.icon-ok:before { + content: "\f00c"; +} +.icon-remove:before { + content: "\f00d"; +} +.icon-zoom-in:before { + content: "\f00e"; +} +.icon-zoom-out:before { + content: "\f010"; +} +.icon-power-off:before, +.icon-off:before { + content: "\f011"; +} +.icon-signal:before { + content: "\f012"; +} +.icon-gear:before, +.icon-cog:before { + content: "\f013"; +} +.icon-trash:before { + content: "\f014"; +} +.icon-home:before { + content: "\f015"; +} +.icon-file-alt:before { + content: "\f016"; +} +.icon-time:before { + content: "\f017"; +} +.icon-road:before { + content: "\f018"; +} +.icon-download-alt:before { + content: "\f019"; +} +.icon-download:before { + content: "\f01a"; +} +.icon-upload:before { + content: "\f01b"; +} +.icon-inbox:before { + content: "\f01c"; +} +.icon-play-circle:before { + content: "\f01d"; +} +.icon-rotate-right:before, +.icon-repeat:before { + content: "\f01e"; +} +.icon-refresh:before { + content: "\f021"; +} +.icon-list-alt:before { + content: "\f022"; +} +.icon-lock:before { + content: "\f023"; +} +.icon-flag:before { + content: "\f024"; +} +.icon-headphones:before { + content: "\f025"; +} +.icon-volume-off:before { + content: "\f026"; +} +.icon-volume-down:before { + content: "\f027"; +} +.icon-volume-up:before { + content: "\f028"; +} +.icon-qrcode:before { + content: "\f029"; +} +.icon-barcode:before { + content: "\f02a"; +} +.icon-tag:before { + content: "\f02b"; +} +.icon-tags:before { + content: "\f02c"; +} +.icon-book:before { + content: "\f02d"; +} +.icon-bookmark:before { + content: "\f02e"; +} +.icon-print:before { + content: "\f02f"; +} +.icon-camera:before { + content: "\f030"; +} +.icon-font:before { + content: "\f031"; +} +.icon-bold:before { + content: "\f032"; +} +.icon-italic:before { + content: "\f033"; +} +.icon-text-height:before { + content: "\f034"; +} +.icon-text-width:before { + content: "\f035"; +} +.icon-align-left:before { + content: "\f036"; +} +.icon-align-center:before { + content: "\f037"; +} +.icon-align-right:before { + content: "\f038"; +} +.icon-align-justify:before { + content: "\f039"; +} +.icon-list:before { + content: "\f03a"; +} +.icon-indent-left:before { + content: "\f03b"; +} +.icon-indent-right:before { + content: "\f03c"; +} +.icon-facetime-video:before { + content: "\f03d"; +} +.icon-picture:before { + content: "\f03e"; +} +.icon-pencil:before { + content: "\f040"; +} +.icon-map-marker:before { + content: "\f041"; +} +.icon-adjust:before { + content: "\f042"; +} +.icon-tint:before { + content: "\f043"; +} +.icon-edit:before { + content: "\f044"; +} +.icon-share:before { + content: "\f045"; +} +.icon-check:before { + content: "\f046"; +} +.icon-move:before { + content: "\f047"; +} +.icon-step-backward:before { + content: "\f048"; +} +.icon-fast-backward:before { + content: "\f049"; +} +.icon-backward:before { + content: "\f04a"; +} +.icon-play:before { + content: "\f04b"; +} +.icon-pause:before { + content: "\f04c"; +} +.icon-stop:before { + content: "\f04d"; +} +.icon-forward:before { + content: "\f04e"; +} +.icon-fast-forward:before { + content: "\f050"; +} +.icon-step-forward:before { + content: "\f051"; +} +.icon-eject:before { + content: "\f052"; +} +.icon-chevron-left:before { + content: "\f053"; +} +.icon-chevron-right:before { + content: "\f054"; +} +.icon-plus-sign:before { + content: "\f055"; +} +.icon-minus-sign:before { + content: "\f056"; +} +.icon-remove-sign:before { + content: "\f057"; +} +.icon-ok-sign:before { + content: "\f058"; +} +.icon-question-sign:before { + content: "\f059"; +} +.icon-info-sign:before { + content: "\f05a"; +} +.icon-screenshot:before { + content: "\f05b"; +} +.icon-remove-circle:before { + content: "\f05c"; +} +.icon-ok-circle:before { + content: "\f05d"; +} +.icon-ban-circle:before { + content: "\f05e"; +} +.icon-arrow-left:before { + content: "\f060"; +} +.icon-arrow-right:before { + content: "\f061"; +} +.icon-arrow-up:before { + content: "\f062"; +} +.icon-arrow-down:before { + content: "\f063"; +} +.icon-mail-forward:before, +.icon-share-alt:before { + content: "\f064"; +} +.icon-resize-full:before { + content: "\f065"; +} +.icon-resize-small:before { + content: "\f066"; +} +.icon-plus:before { + content: "\f067"; +} +.icon-minus:before { + content: "\f068"; +} +.icon-asterisk:before { + content: "\f069"; +} +.icon-exclamation-sign:before { + content: "\f06a"; +} +.icon-gift:before { + content: "\f06b"; +} +.icon-leaf:before { + content: "\f06c"; +} +.icon-fire:before { + content: "\f06d"; +} +.icon-eye-open:before { + content: "\f06e"; +} +.icon-eye-close:before { + content: "\f070"; +} +.icon-warning-sign:before { + content: "\f071"; +} +.icon-plane:before { + content: "\f072"; +} +.icon-calendar:before { + content: "\f073"; +} +.icon-random:before { + content: "\f074"; +} +.icon-comment:before { + content: "\f075"; +} +.icon-magnet:before { + content: "\f076"; +} +.icon-chevron-up:before { + content: "\f077"; +} +.icon-chevron-down:before { + content: "\f078"; +} +.icon-retweet:before { + content: "\f079"; +} +.icon-shopping-cart:before { + content: "\f07a"; +} +.icon-folder-close:before { + content: "\f07b"; +} +.icon-folder-open:before { + content: "\f07c"; +} +.icon-resize-vertical:before { + content: "\f07d"; +} +.icon-resize-horizontal:before { + content: "\f07e"; +} +.icon-bar-chart:before { + content: "\f080"; +} +.icon-twitter-sign:before { + content: "\f081"; +} +.icon-facebook-sign:before { + content: "\f082"; +} +.icon-camera-retro:before { + content: "\f083"; +} +.icon-key:before { + content: "\f084"; +} +.icon-gears:before, +.icon-cogs:before { + content: "\f085"; +} +.icon-comments:before { + content: "\f086"; +} +.icon-thumbs-up-alt:before { + content: "\f087"; +} +.icon-thumbs-down-alt:before { + content: "\f088"; +} +.icon-star-half:before { + content: "\f089"; +} +.icon-heart-empty:before { + content: "\f08a"; +} +.icon-signout:before { + content: "\f08b"; +} +.icon-linkedin-sign:before { + content: "\f08c"; +} +.icon-pushpin:before { + content: "\f08d"; +} +.icon-external-link:before { + content: "\f08e"; +} +.icon-signin:before { + content: "\f090"; +} +.icon-trophy:before { + content: "\f091"; +} +.icon-github-sign:before { + content: "\f092"; +} +.icon-upload-alt:before { + content: "\f093"; +} +.icon-lemon:before { + content: "\f094"; +} +.icon-phone:before { + content: "\f095"; +} +.icon-unchecked:before, +.icon-check-empty:before { + content: "\f096"; +} +.icon-bookmark-empty:before { + content: "\f097"; +} +.icon-phone-sign:before { + content: "\f098"; +} +.icon-twitter:before { + content: "\f099"; +} +.icon-facebook:before { + content: "\f09a"; +} +.icon-github:before { + content: "\f09b"; +} +.icon-unlock:before { + content: "\f09c"; +} +.icon-credit-card:before { + content: "\f09d"; +} +.icon-rss:before { + content: "\f09e"; +} +.icon-hdd:before { + content: "\f0a0"; +} +.icon-bullhorn:before { + content: "\f0a1"; +} +.icon-bell:before { + content: "\f0a2"; +} +.icon-certificate:before { + content: "\f0a3"; +} +.icon-hand-right:before { + content: "\f0a4"; +} +.icon-hand-left:before { + content: "\f0a5"; +} +.icon-hand-up:before { + content: "\f0a6"; +} +.icon-hand-down:before { + content: "\f0a7"; +} +.icon-circle-arrow-left:before { + content: "\f0a8"; +} +.icon-circle-arrow-right:before { + content: "\f0a9"; +} +.icon-circle-arrow-up:before { + content: "\f0aa"; +} +.icon-circle-arrow-down:before { + content: "\f0ab"; +} +.icon-globe:before { + content: "\f0ac"; +} +.icon-wrench:before { + content: "\f0ad"; +} +.icon-tasks:before { + content: "\f0ae"; +} +.icon-filter:before { + content: "\f0b0"; +} +.icon-briefcase:before { + content: "\f0b1"; +} +.icon-fullscreen:before { + content: "\f0b2"; +} +.icon-group:before { + content: "\f0c0"; +} +.icon-link:before { + content: "\f0c1"; +} +.icon-cloud:before { + content: "\f0c2"; +} +.icon-beaker:before { + content: "\f0c3"; +} +.icon-cut:before { + content: "\f0c4"; +} +.icon-copy:before { + content: "\f0c5"; +} +.icon-paperclip:before, +.icon-paper-clip:before { + content: "\f0c6"; +} +.icon-save:before { + content: "\f0c7"; +} +.icon-sign-blank:before { + content: "\f0c8"; +} +.icon-reorder:before { + content: "\f0c9"; +} +.icon-list-ul:before { + content: "\f0ca"; +} +.icon-list-ol:before { + content: "\f0cb"; +} +.icon-strikethrough:before { + content: "\f0cc"; +} +.icon-underline:before { + content: "\f0cd"; +} +.icon-table:before { + content: "\f0ce"; +} +.icon-magic:before { + content: "\f0d0"; +} +.icon-truck:before { + content: "\f0d1"; +} +.icon-pinterest:before { + content: "\f0d2"; +} +.icon-pinterest-sign:before { + content: "\f0d3"; +} +.icon-google-plus-sign:before { + content: "\f0d4"; +} +.icon-google-plus:before { + content: "\f0d5"; +} +.icon-money:before { + content: "\f0d6"; +} +.icon-caret-down:before { + content: "\f0d7"; +} +.icon-caret-up:before { + content: "\f0d8"; +} +.icon-caret-left:before { + content: "\f0d9"; +} +.icon-caret-right:before { + content: "\f0da"; +} +.icon-columns:before { + content: "\f0db"; +} +.icon-sort:before { + content: "\f0dc"; +} +.icon-sort-down:before { + content: "\f0dd"; +} +.icon-sort-up:before { + content: "\f0de"; +} +.icon-envelope:before { + content: "\f0e0"; +} +.icon-linkedin:before { + content: "\f0e1"; +} +.icon-rotate-left:before, +.icon-undo:before { + content: "\f0e2"; +} +.icon-legal:before { + content: "\f0e3"; +} +.icon-dashboard:before { + content: "\f0e4"; +} +.icon-comment-alt:before { + content: "\f0e5"; +} +.icon-comments-alt:before { + content: "\f0e6"; +} +.icon-bolt:before { + content: "\f0e7"; +} +.icon-sitemap:before { + content: "\f0e8"; +} +.icon-umbrella:before { + content: "\f0e9"; +} +.icon-paste:before { + content: "\f0ea"; +} +.icon-lightbulb:before { + content: "\f0eb"; +} +.icon-exchange:before { + content: "\f0ec"; +} +.icon-cloud-download:before { + content: "\f0ed"; +} +.icon-cloud-upload:before { + content: "\f0ee"; +} +.icon-user-md:before { + content: "\f0f0"; +} +.icon-stethoscope:before { + content: "\f0f1"; +} +.icon-suitcase:before { + content: "\f0f2"; +} +.icon-bell-alt:before { + content: "\f0f3"; +} +.icon-coffee:before { + content: "\f0f4"; +} +.icon-food:before { + content: "\f0f5"; +} +.icon-file-text-alt:before { + content: "\f0f6"; +} +.icon-building:before { + content: "\f0f7"; +} +.icon-hospital:before { + content: "\f0f8"; +} +.icon-ambulance:before { + content: "\f0f9"; +} +.icon-medkit:before { + content: "\f0fa"; +} +.icon-fighter-jet:before { + content: "\f0fb"; +} +.icon-beer:before { + content: "\f0fc"; +} +.icon-h-sign:before { + content: "\f0fd"; +} +.icon-plus-sign-alt:before { + content: "\f0fe"; +} +.icon-double-angle-left:before { + content: "\f100"; +} +.icon-double-angle-right:before { + content: "\f101"; +} +.icon-double-angle-up:before { + content: "\f102"; +} +.icon-double-angle-down:before { + content: "\f103"; +} +.icon-angle-left:before { + content: "\f104"; +} +.icon-angle-right:before { + content: "\f105"; +} +.icon-angle-up:before { + content: "\f106"; +} +.icon-angle-down:before { + content: "\f107"; +} +.icon-desktop:before { + content: "\f108"; +} +.icon-laptop:before { + content: "\f109"; +} +.icon-tablet:before { + content: "\f10a"; +} +.icon-mobile-phone:before { + content: "\f10b"; +} +.icon-circle-blank:before { + content: "\f10c"; +} +.icon-quote-left:before { + content: "\f10d"; +} +.icon-quote-right:before { + content: "\f10e"; +} +.icon-spinner:before { + content: "\f110"; +} +.icon-circle:before { + content: "\f111"; +} +.icon-mail-reply:before, +.icon-reply:before { + content: "\f112"; +} +.icon-github-alt:before { + content: "\f113"; +} +.icon-folder-close-alt:before { + content: "\f114"; +} +.icon-folder-open-alt:before { + content: "\f115"; +} +.icon-expand-alt:before { + content: "\f116"; +} +.icon-collapse-alt:before { + content: "\f117"; +} +.icon-smile:before { + content: "\f118"; +} +.icon-frown:before { + content: "\f119"; +} +.icon-meh:before { + content: "\f11a"; +} +.icon-gamepad:before { + content: "\f11b"; +} +.icon-keyboard:before { + content: "\f11c"; +} +.icon-flag-alt:before { + content: "\f11d"; +} +.icon-flag-checkered:before { + content: "\f11e"; +} +.icon-terminal:before { + content: "\f120"; +} +.icon-code:before { + content: "\f121"; +} +.icon-reply-all:before { + content: "\f122"; +} +.icon-mail-reply-all:before { + content: "\f122"; +} +.icon-star-half-full:before, +.icon-star-half-empty:before { + content: "\f123"; +} +.icon-location-arrow:before { + content: "\f124"; +} +.icon-crop:before { + content: "\f125"; +} +.icon-code-fork:before { + content: "\f126"; +} +.icon-unlink:before { + content: "\f127"; +} +.icon-question:before { + content: "\f128"; +} +.icon-info:before { + content: "\f129"; +} +.icon-exclamation:before { + content: "\f12a"; +} +.icon-superscript:before { + content: "\f12b"; +} +.icon-subscript:before { + content: "\f12c"; +} +.icon-eraser:before { + content: "\f12d"; +} +.icon-puzzle-piece:before { + content: "\f12e"; +} +.icon-microphone:before { + content: "\f130"; +} +.icon-microphone-off:before { + content: "\f131"; +} +.icon-shield:before { + content: "\f132"; +} +.icon-calendar-empty:before { + content: "\f133"; +} +.icon-fire-extinguisher:before { + content: "\f134"; +} +.icon-rocket:before { + content: "\f135"; +} +.icon-maxcdn:before { + content: "\f136"; +} +.icon-chevron-sign-left:before { + content: "\f137"; +} +.icon-chevron-sign-right:before { + content: "\f138"; +} +.icon-chevron-sign-up:before { + content: "\f139"; +} +.icon-chevron-sign-down:before { + content: "\f13a"; +} +.icon-html5:before { + content: "\f13b"; +} +.icon-css3:before { + content: "\f13c"; +} +.icon-anchor:before { + content: "\f13d"; +} +.icon-unlock-alt:before { + content: "\f13e"; +} +.icon-bullseye:before { + content: "\f140"; +} +.icon-ellipsis-horizontal:before { + content: "\f141"; +} +.icon-ellipsis-vertical:before { + content: "\f142"; +} +.icon-rss-sign:before { + content: "\f143"; +} +.icon-play-sign:before { + content: "\f144"; +} +.icon-ticket:before { + content: "\f145"; +} +.icon-minus-sign-alt:before { + content: "\f146"; +} +.icon-check-minus:before { + content: "\f147"; +} +.icon-level-up:before { + content: "\f148"; +} +.icon-level-down:before { + content: "\f149"; +} +.icon-check-sign:before { + content: "\f14a"; +} +.icon-edit-sign:before { + content: "\f14b"; +} +.icon-external-link-sign:before { + content: "\f14c"; +} +.icon-share-sign:before { + content: "\f14d"; +} +.icon-compass:before { + content: "\f14e"; +} +.icon-collapse:before { + content: "\f150"; +} +.icon-collapse-top:before { + content: "\f151"; +} +.icon-expand:before { + content: "\f152"; +} +.icon-euro:before, +.icon-eur:before { + content: "\f153"; +} +.icon-gbp:before { + content: "\f154"; +} +.icon-dollar:before, +.icon-usd:before { + content: "\f155"; +} +.icon-rupee:before, +.icon-inr:before { + content: "\f156"; +} +.icon-yen:before, +.icon-jpy:before { + content: "\f157"; +} +.icon-renminbi:before, +.icon-cny:before { + content: "\f158"; +} +.icon-won:before, +.icon-krw:before { + content: "\f159"; +} +.icon-bitcoin:before, +.icon-btc:before { + content: "\f15a"; +} +.icon-file:before { + content: "\f15b"; +} +.icon-file-text:before { + content: "\f15c"; +} +.icon-sort-by-alphabet:before { + content: "\f15d"; +} +.icon-sort-by-alphabet-alt:before { + content: "\f15e"; +} +.icon-sort-by-attributes:before { + content: "\f160"; +} +.icon-sort-by-attributes-alt:before { + content: "\f161"; +} +.icon-sort-by-order:before { + content: "\f162"; +} +.icon-sort-by-order-alt:before { + content: "\f163"; +} +.icon-thumbs-up:before { + content: "\f164"; +} +.icon-thumbs-down:before { + content: "\f165"; +} +.icon-youtube-sign:before { + content: "\f166"; +} +.icon-youtube:before { + content: "\f167"; +} +.icon-xing:before { + content: "\f168"; +} +.icon-xing-sign:before { + content: "\f169"; +} +.icon-youtube-play:before { + content: "\f16a"; +} +.icon-dropbox:before { + content: "\f16b"; +} +.icon-stackexchange:before { + content: "\f16c"; +} +.icon-instagram:before { + content: "\f16d"; +} +.icon-flickr:before { + content: "\f16e"; +} +.icon-adn:before { + content: "\f170"; +} +.icon-bitbucket:before { + content: "\f171"; +} +.icon-bitbucket-sign:before { + content: "\f172"; +} +.icon-tumblr:before { + content: "\f173"; +} +.icon-tumblr-sign:before { + content: "\f174"; +} +.icon-long-arrow-down:before { + content: "\f175"; +} +.icon-long-arrow-up:before { + content: "\f176"; +} +.icon-long-arrow-left:before { + content: "\f177"; +} +.icon-long-arrow-right:before { + content: "\f178"; +} +.icon-apple:before { + content: "\f179"; +} +.icon-windows:before { + content: "\f17a"; +} +.icon-android:before { + content: "\f17b"; +} +.icon-linux:before { + content: "\f17c"; +} +.icon-dribbble:before { + content: "\f17d"; +} +.icon-skype:before { + content: "\f17e"; +} +.icon-foursquare:before { + content: "\f180"; +} +.icon-trello:before { + content: "\f181"; +} +.icon-female:before { + content: "\f182"; +} +.icon-male:before { + content: "\f183"; +} +.icon-gittip:before { + content: "\f184"; +} +.icon-sun:before { + content: "\f185"; +} +.icon-moon:before { + content: "\f186"; +} +.icon-archive:before { + content: "\f187"; +} +.icon-bug:before { + content: "\f188"; +} +.icon-vk:before { + content: "\f189"; +} +.icon-weibo:before { + content: "\f18a"; +} +.icon-renren:before { + content: "\f18b"; +} diff --git a/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome.min.css b/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome.min.css new file mode 100644 index 00000000..866437fa --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/awesome/font-awesome.min.css @@ -0,0 +1,403 @@ +@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;} +[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;} +.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;} +a [class^="icon-"],a [class*=" icon-"]{display:inline;} +[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;} +.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;} +.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;} +[class^="icon-"].hide,[class*=" icon-"].hide{display:none;} +.icon-muted{color:#eeeeee;} +.icon-light{color:#ffffff;} +.icon-dark{color:#333333;} +.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;} +.pull-right{float:right;} +.pull-left{float:left;} +[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;} +[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;} +[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;} +.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;} +.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;} +.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;} +.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;} +.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;} +.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;} +.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;} +.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;} +.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;} +.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;} +.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;} +.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;} +.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;} +.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;} +a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;} +@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);} +.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);} +.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);} +.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);} +.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);} +a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;} +.icon-glass:before{content:"\f000";} +.icon-music:before{content:"\f001";} +.icon-search:before{content:"\f002";} +.icon-envelope-alt:before{content:"\f003";} +.icon-heart:before{content:"\f004";} +.icon-star:before{content:"\f005";} +.icon-star-empty:before{content:"\f006";} +.icon-user:before{content:"\f007";} +.icon-film:before{content:"\f008";} +.icon-th-large:before{content:"\f009";} +.icon-th:before{content:"\f00a";} +.icon-th-list:before{content:"\f00b";} +.icon-ok:before{content:"\f00c";} +.icon-remove:before{content:"\f00d";} +.icon-zoom-in:before{content:"\f00e";} +.icon-zoom-out:before{content:"\f010";} +.icon-power-off:before,.icon-off:before{content:"\f011";} +.icon-signal:before{content:"\f012";} +.icon-gear:before,.icon-cog:before{content:"\f013";} +.icon-trash:before{content:"\f014";} +.icon-home:before{content:"\f015";} +.icon-file-alt:before{content:"\f016";} +.icon-time:before{content:"\f017";} +.icon-road:before{content:"\f018";} +.icon-download-alt:before{content:"\f019";} +.icon-download:before{content:"\f01a";} +.icon-upload:before{content:"\f01b";} +.icon-inbox:before{content:"\f01c";} +.icon-play-circle:before{content:"\f01d";} +.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";} +.icon-refresh:before{content:"\f021";} +.icon-list-alt:before{content:"\f022";} +.icon-lock:before{content:"\f023";} +.icon-flag:before{content:"\f024";} +.icon-headphones:before{content:"\f025";} +.icon-volume-off:before{content:"\f026";} +.icon-volume-down:before{content:"\f027";} +.icon-volume-up:before{content:"\f028";} +.icon-qrcode:before{content:"\f029";} +.icon-barcode:before{content:"\f02a";} +.icon-tag:before{content:"\f02b";} +.icon-tags:before{content:"\f02c";} +.icon-book:before{content:"\f02d";} +.icon-bookmark:before{content:"\f02e";} +.icon-print:before{content:"\f02f";} +.icon-camera:before{content:"\f030";} +.icon-font:before{content:"\f031";} +.icon-bold:before{content:"\f032";} +.icon-italic:before{content:"\f033";} +.icon-text-height:before{content:"\f034";} +.icon-text-width:before{content:"\f035";} +.icon-align-left:before{content:"\f036";} +.icon-align-center:before{content:"\f037";} +.icon-align-right:before{content:"\f038";} +.icon-align-justify:before{content:"\f039";} +.icon-list:before{content:"\f03a";} +.icon-indent-left:before{content:"\f03b";} +.icon-indent-right:before{content:"\f03c";} +.icon-facetime-video:before{content:"\f03d";} +.icon-picture:before{content:"\f03e";} +.icon-pencil:before{content:"\f040";} +.icon-map-marker:before{content:"\f041";} +.icon-adjust:before{content:"\f042";} +.icon-tint:before{content:"\f043";} +.icon-edit:before{content:"\f044";} +.icon-share:before{content:"\f045";} +.icon-check:before{content:"\f046";} +.icon-move:before{content:"\f047";} +.icon-step-backward:before{content:"\f048";} +.icon-fast-backward:before{content:"\f049";} +.icon-backward:before{content:"\f04a";} +.icon-play:before{content:"\f04b";} +.icon-pause:before{content:"\f04c";} +.icon-stop:before{content:"\f04d";} +.icon-forward:before{content:"\f04e";} +.icon-fast-forward:before{content:"\f050";} +.icon-step-forward:before{content:"\f051";} +.icon-eject:before{content:"\f052";} +.icon-chevron-left:before{content:"\f053";} +.icon-chevron-right:before{content:"\f054";} +.icon-plus-sign:before{content:"\f055";} +.icon-minus-sign:before{content:"\f056";} +.icon-remove-sign:before{content:"\f057";} +.icon-ok-sign:before{content:"\f058";} +.icon-question-sign:before{content:"\f059";} +.icon-info-sign:before{content:"\f05a";} +.icon-screenshot:before{content:"\f05b";} +.icon-remove-circle:before{content:"\f05c";} +.icon-ok-circle:before{content:"\f05d";} +.icon-ban-circle:before{content:"\f05e";} +.icon-arrow-left:before{content:"\f060";} +.icon-arrow-right:before{content:"\f061";} +.icon-arrow-up:before{content:"\f062";} +.icon-arrow-down:before{content:"\f063";} +.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";} +.icon-resize-full:before{content:"\f065";} +.icon-resize-small:before{content:"\f066";} +.icon-plus:before{content:"\f067";} +.icon-minus:before{content:"\f068";} +.icon-asterisk:before{content:"\f069";} +.icon-exclamation-sign:before{content:"\f06a";} +.icon-gift:before{content:"\f06b";} +.icon-leaf:before{content:"\f06c";} +.icon-fire:before{content:"\f06d";} +.icon-eye-open:before{content:"\f06e";} +.icon-eye-close:before{content:"\f070";} +.icon-warning-sign:before{content:"\f071";} +.icon-plane:before{content:"\f072";} +.icon-calendar:before{content:"\f073";} +.icon-random:before{content:"\f074";} +.icon-comment:before{content:"\f075";} +.icon-magnet:before{content:"\f076";} +.icon-chevron-up:before{content:"\f077";} +.icon-chevron-down:before{content:"\f078";} +.icon-retweet:before{content:"\f079";} +.icon-shopping-cart:before{content:"\f07a";} +.icon-folder-close:before{content:"\f07b";} +.icon-folder-open:before{content:"\f07c";} +.icon-resize-vertical:before{content:"\f07d";} +.icon-resize-horizontal:before{content:"\f07e";} +.icon-bar-chart:before{content:"\f080";} +.icon-twitter-sign:before{content:"\f081";} +.icon-facebook-sign:before{content:"\f082";} +.icon-camera-retro:before{content:"\f083";} +.icon-key:before{content:"\f084";} +.icon-gears:before,.icon-cogs:before{content:"\f085";} +.icon-comments:before{content:"\f086";} +.icon-thumbs-up-alt:before{content:"\f087";} +.icon-thumbs-down-alt:before{content:"\f088";} +.icon-star-half:before{content:"\f089";} +.icon-heart-empty:before{content:"\f08a";} +.icon-signout:before{content:"\f08b";} +.icon-linkedin-sign:before{content:"\f08c";} +.icon-pushpin:before{content:"\f08d";} +.icon-external-link:before{content:"\f08e";} +.icon-signin:before{content:"\f090";} +.icon-trophy:before{content:"\f091";} +.icon-github-sign:before{content:"\f092";} +.icon-upload-alt:before{content:"\f093";} +.icon-lemon:before{content:"\f094";} +.icon-phone:before{content:"\f095";} +.icon-unchecked:before,.icon-check-empty:before{content:"\f096";} +.icon-bookmark-empty:before{content:"\f097";} +.icon-phone-sign:before{content:"\f098";} +.icon-twitter:before{content:"\f099";} +.icon-facebook:before{content:"\f09a";} +.icon-github:before{content:"\f09b";} +.icon-unlock:before{content:"\f09c";} +.icon-credit-card:before{content:"\f09d";} +.icon-rss:before{content:"\f09e";} +.icon-hdd:before{content:"\f0a0";} +.icon-bullhorn:before{content:"\f0a1";} +.icon-bell:before{content:"\f0a2";} +.icon-certificate:before{content:"\f0a3";} +.icon-hand-right:before{content:"\f0a4";} +.icon-hand-left:before{content:"\f0a5";} +.icon-hand-up:before{content:"\f0a6";} +.icon-hand-down:before{content:"\f0a7";} +.icon-circle-arrow-left:before{content:"\f0a8";} +.icon-circle-arrow-right:before{content:"\f0a9";} +.icon-circle-arrow-up:before{content:"\f0aa";} +.icon-circle-arrow-down:before{content:"\f0ab";} +.icon-globe:before{content:"\f0ac";} +.icon-wrench:before{content:"\f0ad";} +.icon-tasks:before{content:"\f0ae";} +.icon-filter:before{content:"\f0b0";} +.icon-briefcase:before{content:"\f0b1";} +.icon-fullscreen:before{content:"\f0b2";} +.icon-group:before{content:"\f0c0";} +.icon-link:before{content:"\f0c1";} +.icon-cloud:before{content:"\f0c2";} +.icon-beaker:before{content:"\f0c3";} +.icon-cut:before{content:"\f0c4";} +.icon-copy:before{content:"\f0c5";} +.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";} +.icon-save:before{content:"\f0c7";} +.icon-sign-blank:before{content:"\f0c8";} +.icon-reorder:before{content:"\f0c9";} +.icon-list-ul:before{content:"\f0ca";} +.icon-list-ol:before{content:"\f0cb";} +.icon-strikethrough:before{content:"\f0cc";} +.icon-underline:before{content:"\f0cd";} +.icon-table:before{content:"\f0ce";} +.icon-magic:before{content:"\f0d0";} +.icon-truck:before{content:"\f0d1";} +.icon-pinterest:before{content:"\f0d2";} +.icon-pinterest-sign:before{content:"\f0d3";} +.icon-google-plus-sign:before{content:"\f0d4";} +.icon-google-plus:before{content:"\f0d5";} +.icon-money:before{content:"\f0d6";} +.icon-caret-down:before{content:"\f0d7";} +.icon-caret-up:before{content:"\f0d8";} +.icon-caret-left:before{content:"\f0d9";} +.icon-caret-right:before{content:"\f0da";} +.icon-columns:before{content:"\f0db";} +.icon-sort:before{content:"\f0dc";} +.icon-sort-down:before{content:"\f0dd";} +.icon-sort-up:before{content:"\f0de";} +.icon-envelope:before{content:"\f0e0";} +.icon-linkedin:before{content:"\f0e1";} +.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";} +.icon-legal:before{content:"\f0e3";} +.icon-dashboard:before{content:"\f0e4";} +.icon-comment-alt:before{content:"\f0e5";} +.icon-comments-alt:before{content:"\f0e6";} +.icon-bolt:before{content:"\f0e7";} +.icon-sitemap:before{content:"\f0e8";} +.icon-umbrella:before{content:"\f0e9";} +.icon-paste:before{content:"\f0ea";} +.icon-lightbulb:before{content:"\f0eb";} +.icon-exchange:before{content:"\f0ec";} +.icon-cloud-download:before{content:"\f0ed";} +.icon-cloud-upload:before{content:"\f0ee";} +.icon-user-md:before{content:"\f0f0";} +.icon-stethoscope:before{content:"\f0f1";} +.icon-suitcase:before{content:"\f0f2";} +.icon-bell-alt:before{content:"\f0f3";} +.icon-coffee:before{content:"\f0f4";} +.icon-food:before{content:"\f0f5";} +.icon-file-text-alt:before{content:"\f0f6";} +.icon-building:before{content:"\f0f7";} +.icon-hospital:before{content:"\f0f8";} +.icon-ambulance:before{content:"\f0f9";} +.icon-medkit:before{content:"\f0fa";} +.icon-fighter-jet:before{content:"\f0fb";} +.icon-beer:before{content:"\f0fc";} +.icon-h-sign:before{content:"\f0fd";} +.icon-plus-sign-alt:before{content:"\f0fe";} +.icon-double-angle-left:before{content:"\f100";} +.icon-double-angle-right:before{content:"\f101";} +.icon-double-angle-up:before{content:"\f102";} +.icon-double-angle-down:before{content:"\f103";} +.icon-angle-left:before{content:"\f104";} +.icon-angle-right:before{content:"\f105";} +.icon-angle-up:before{content:"\f106";} +.icon-angle-down:before{content:"\f107";} +.icon-desktop:before{content:"\f108";} +.icon-laptop:before{content:"\f109";} +.icon-tablet:before{content:"\f10a";} +.icon-mobile-phone:before{content:"\f10b";} +.icon-circle-blank:before{content:"\f10c";} +.icon-quote-left:before{content:"\f10d";} +.icon-quote-right:before{content:"\f10e";} +.icon-spinner:before{content:"\f110";} +.icon-circle:before{content:"\f111";} +.icon-mail-reply:before,.icon-reply:before{content:"\f112";} +.icon-github-alt:before{content:"\f113";} +.icon-folder-close-alt:before{content:"\f114";} +.icon-folder-open-alt:before{content:"\f115";} +.icon-expand-alt:before{content:"\f116";} +.icon-collapse-alt:before{content:"\f117";} +.icon-smile:before{content:"\f118";} +.icon-frown:before{content:"\f119";} +.icon-meh:before{content:"\f11a";} +.icon-gamepad:before{content:"\f11b";} +.icon-keyboard:before{content:"\f11c";} +.icon-flag-alt:before{content:"\f11d";} +.icon-flag-checkered:before{content:"\f11e";} +.icon-terminal:before{content:"\f120";} +.icon-code:before{content:"\f121";} +.icon-reply-all:before{content:"\f122";} +.icon-mail-reply-all:before{content:"\f122";} +.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";} +.icon-location-arrow:before{content:"\f124";} +.icon-crop:before{content:"\f125";} +.icon-code-fork:before{content:"\f126";} +.icon-unlink:before{content:"\f127";} +.icon-question:before{content:"\f128";} +.icon-info:before{content:"\f129";} +.icon-exclamation:before{content:"\f12a";} +.icon-superscript:before{content:"\f12b";} +.icon-subscript:before{content:"\f12c";} +.icon-eraser:before{content:"\f12d";} +.icon-puzzle-piece:before{content:"\f12e";} +.icon-microphone:before{content:"\f130";} +.icon-microphone-off:before{content:"\f131";} +.icon-shield:before{content:"\f132";} +.icon-calendar-empty:before{content:"\f133";} +.icon-fire-extinguisher:before{content:"\f134";} +.icon-rocket:before{content:"\f135";} +.icon-maxcdn:before{content:"\f136";} +.icon-chevron-sign-left:before{content:"\f137";} +.icon-chevron-sign-right:before{content:"\f138";} +.icon-chevron-sign-up:before{content:"\f139";} +.icon-chevron-sign-down:before{content:"\f13a";} +.icon-html5:before{content:"\f13b";} +.icon-css3:before{content:"\f13c";} +.icon-anchor:before{content:"\f13d";} +.icon-unlock-alt:before{content:"\f13e";} +.icon-bullseye:before{content:"\f140";} +.icon-ellipsis-horizontal:before{content:"\f141";} +.icon-ellipsis-vertical:before{content:"\f142";} +.icon-rss-sign:before{content:"\f143";} +.icon-play-sign:before{content:"\f144";} +.icon-ticket:before{content:"\f145";} +.icon-minus-sign-alt:before{content:"\f146";} +.icon-check-minus:before{content:"\f147";} +.icon-level-up:before{content:"\f148";} +.icon-level-down:before{content:"\f149";} +.icon-check-sign:before{content:"\f14a";} +.icon-edit-sign:before{content:"\f14b";} +.icon-external-link-sign:before{content:"\f14c";} +.icon-share-sign:before{content:"\f14d";} +.icon-compass:before{content:"\f14e";} +.icon-collapse:before{content:"\f150";} +.icon-collapse-top:before{content:"\f151";} +.icon-expand:before{content:"\f152";} +.icon-euro:before,.icon-eur:before{content:"\f153";} +.icon-gbp:before{content:"\f154";} +.icon-dollar:before,.icon-usd:before{content:"\f155";} +.icon-rupee:before,.icon-inr:before{content:"\f156";} +.icon-yen:before,.icon-jpy:before{content:"\f157";} +.icon-renminbi:before,.icon-cny:before{content:"\f158";} +.icon-won:before,.icon-krw:before{content:"\f159";} +.icon-bitcoin:before,.icon-btc:before{content:"\f15a";} +.icon-file:before{content:"\f15b";} +.icon-file-text:before{content:"\f15c";} +.icon-sort-by-alphabet:before{content:"\f15d";} +.icon-sort-by-alphabet-alt:before{content:"\f15e";} +.icon-sort-by-attributes:before{content:"\f160";} +.icon-sort-by-attributes-alt:before{content:"\f161";} +.icon-sort-by-order:before{content:"\f162";} +.icon-sort-by-order-alt:before{content:"\f163";} +.icon-thumbs-up:before{content:"\f164";} +.icon-thumbs-down:before{content:"\f165";} +.icon-youtube-sign:before{content:"\f166";} +.icon-youtube:before{content:"\f167";} +.icon-xing:before{content:"\f168";} +.icon-xing-sign:before{content:"\f169";} +.icon-youtube-play:before{content:"\f16a";} +.icon-dropbox:before{content:"\f16b";} +.icon-stackexchange:before{content:"\f16c";} +.icon-instagram:before{content:"\f16d";} +.icon-flickr:before{content:"\f16e";} +.icon-adn:before{content:"\f170";} +.icon-bitbucket:before{content:"\f171";} +.icon-bitbucket-sign:before{content:"\f172";} +.icon-tumblr:before{content:"\f173";} +.icon-tumblr-sign:before{content:"\f174";} +.icon-long-arrow-down:before{content:"\f175";} +.icon-long-arrow-up:before{content:"\f176";} +.icon-long-arrow-left:before{content:"\f177";} +.icon-long-arrow-right:before{content:"\f178";} +.icon-apple:before{content:"\f179";} +.icon-windows:before{content:"\f17a";} +.icon-android:before{content:"\f17b";} +.icon-linux:before{content:"\f17c";} +.icon-dribbble:before{content:"\f17d";} +.icon-skype:before{content:"\f17e";} +.icon-foursquare:before{content:"\f180";} +.icon-trello:before{content:"\f181";} +.icon-female:before{content:"\f182";} +.icon-male:before{content:"\f183";} +.icon-gittip:before{content:"\f184";} +.icon-sun:before{content:"\f185";} +.icon-moon:before{content:"\f186";} +.icon-archive:before{content:"\f187";} +.icon-bug:before{content:"\f188";} +.icon-vk:before{content:"\f189";} +.icon-weibo:before{content:"\f18a";} +.icon-renren:before{content:"\f18b";} diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/bootstrap.css b/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/bootstrap.css new file mode 100644 index 00000000..fa47a5c0 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/bootstrap.css @@ -0,0 +1,6475 @@ +/*!@import url(//fonts.googleapis.com/css?family=Telex); + +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family:"Microsoft Yahei","΢ź",Helvetica, Arial, sans-serif, ""; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; + +} + +a { + color: #2fa4e7; + text-decoration: none; +} + +a:hover, +a:focus { + color: #157ab5; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #dd5600; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #aa4200; +} + +.text-error { + color: #bd4247; +} + +a.text-error:hover, +a.text-error:focus { + color: #983538; +} + +.text-info { + color: #178acc; +} + +a.text-info:hover, +a.text-info:focus { + color: #126b9e; +} + +.text-success { + color: #669533; +} + +a.text-success:hover, +a.text-success:focus { + color: #4c6f26; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: 'Telex', sans-serif; + font-weight: bold; + line-height: 20px; + color: #317eac; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 20px; +} + +h1 { + font-size: 38.5px; +} + +h2 { + font-size: 28.5px; +} + +h3 { + font-size: 24.5px; +} + +h4 { + font-size: 17.5px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 11.9px; +} + +h1 small { + font-size: 24.5px; +} + +h2 small { + font-size: 17.5px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #f5f5f5; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #f5f5f5; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #f5f5f5; +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #f5f5f5; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #f5f5f5; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #dd5600; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #dd5600; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #dd5600; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #aa4200; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ff8d44; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ff8d44; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ff8d44; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #dd5600; + background-color: #f1ceab; + border-color: #dd5600; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #bd4247; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #bd4247; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #bd4247; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #983538; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d88e90; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d88e90; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d88e90; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #bd4247; + background-color: #f2bdb1; + border-color: #bd4247; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #669533; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #669533; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #669533; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #4c6f26; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #99ca63; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #99ca63; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #99ca63; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #669533; + background-color: #d5ecbf; + border-color: #669533; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #178acc; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #178acc; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #178acc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #126b9e; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #5db8ec; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #5db8ec; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #5db8ec; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #178acc; + background-color: #a7dff1; + border-color: #178acc; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #7b7b7b; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #f5f5f5; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #bede9c; + border-color: #73a839; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #d5ecbf; +} + +.table tbody tr.error > td { + background-color: #f2bdb1; +} + +.table tbody tr.warning > td { + background-color: #f1ceab; +} + +.table tbody tr.info > td { + background-color: #a7dff1; +} + +.table-hover tbody tr.success:hover > td { + background-color: #c8e6ab; +} + +.table-hover tbody tr.error:hover > td { + background-color: #eeab9b; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #edc195; +} + +.table-hover tbody tr.info:hover > td { + background-color: #91d7ee; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 140px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #27a0e5; + background-image: -moz-linear-gradient(top, #2fa4e7, #1a99e2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2fa4e7), to(#1a99e2)); + background-image: -webkit-linear-gradient(top, #2fa4e7, #1a99e2); + background-image: -o-linear-gradient(top, #2fa4e7, #1a99e2); + background-image: linear-gradient(to bottom, #2fa4e7, #1a99e2); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2fa4e7', endColorstr='#ff1a99e2', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #27a0e5; + background-image: -moz-linear-gradient(top, #2fa4e7, #1a99e2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2fa4e7), to(#1a99e2)); + background-image: -webkit-linear-gradient(top, #2fa4e7, #1a99e2); + background-image: -o-linear-gradient(top, #2fa4e7, #1a99e2); + background-image: linear-gradient(to bottom, #2fa4e7, #1a99e2); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2fa4e7', endColorstr='#ff1a99e2', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #2f92e7; + *background-color: #2f76e7; + background-image: -moz-linear-gradient(top, #2fa4e7, #2f76e7); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2fa4e7), to(#2f76e7)); + background-image: -webkit-linear-gradient(top, #2fa4e7, #2f76e7); + background-image: -o-linear-gradient(top, #2fa4e7, #2f76e7); + background-image: linear-gradient(to bottom, #2fa4e7, #2f76e7); + background-repeat: repeat-x; + border-color: #2f76e7 #2f76e7 #1553b5; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2fa4e7', endColorstr='#ff2f76e7', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #2f76e7; + *background-color: #1a67e2; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #175dcc \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #dd5600; + *background-color: #dd5600; + background-image: -moz-linear-gradient(top, #dd5600, #dd5600); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dd5600), to(#dd5600)); + background-image: -webkit-linear-gradient(top, #dd5600, #dd5600); + background-image: -o-linear-gradient(top, #dd5600, #dd5600); + background-image: linear-gradient(to bottom, #dd5600, #dd5600); + background-repeat: repeat-x; + border-color: #dd5600 #dd5600 #913800; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd5600', endColorstr='#ffdd5600', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #dd5600; + *background-color: #c44c00; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #aa4200 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #c32627; + *background-color: #bd362f; + background-image: -moz-linear-gradient(top, #c71c22, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#c71c22), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #c71c22, #bd362f); + background-image: -o-linear-gradient(top, #c71c22, #bd362f); + background-image: linear-gradient(to bottom, #c71c22, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffc71c22', endColorstr='#ffbd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #65a643; + *background-color: #51a351; + background-image: -moz-linear-gradient(top, #73a839, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#73a839), to(#51a351)); + background-image: -webkit-linear-gradient(top, #73a839, #51a351); + background-image: -o-linear-gradient(top, #73a839, #51a351); + background-image: linear-gradient(to bottom, #73a839, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff73a839', endColorstr='#ff51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #6d76b3; + *background-color: #2f96b4; + background-image: -moz-linear-gradient(top, #9760b3, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9760b3), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #9760b3, #2f96b4); + background-image: -o-linear-gradient(top, #9760b3, #2f96b4); + background-image: linear-gradient(to bottom, #9760b3, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff9760b3', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0f3253; + *background-color: #222222; + background-image: -moz-linear-gradient(top, #033c73, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#033c73), to(#222222)); + background-image: -webkit-linear-gradient(top, #033c73, #222222); + background-image: -o-linear-gradient(top, #033c73, #222222); + background-image: linear-gradient(to bottom, #033c73, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff033c73', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #2fa4e7; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #157ab5; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 10.5px; +} + +.btn-group > .btn-small { + font-size: 11.9px; +} + +.btn-group > .btn-large { + font-size: 17.5px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #2f76e7; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #dd5600; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #f1ceab; + border: 1px solid #efb99e; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #dd5600; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #669533; + background-color: #d5ecbf; + border-color: #d2e6ab; +} + +.alert-success h4 { + color: #669533; +} + +.alert-danger, +.alert-error { + color: #bd4247; + background-color: #f2bdb1; + border-color: #f0a5a4; +} + +.alert-danger h4, +.alert-error h4 { + color: #bd4247; +} + +.alert-info { + color: #178acc; + background-color: #a7dff1; + border-color: #88e4ec; +} + +.alert-info h4 { + color: #178acc; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #2fa4e7; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #f5f5f5 #f5f5f5 #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #2fa4e7; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #2fa4e7; + border-bottom-color: #2fa4e7; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #157ab5; + border-bottom-color: #157ab5; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #f5f5f5 #dddddd #f5f5f5 #f5f5f5; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #f5f5f5 #f5f5f5 #f5f5f5 #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 50px; + padding-right: 20px; + padding-left: 20px; + background-image: url(../../../images/topbg.gif); + background-repeat: repeat-x; + border: 1px solid #1990d5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + /* filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb', endColorstr='#ff2fa4e7', GradientType=0); */ + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + } + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 15px 20px 15px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #ffffff; + text-shadow: 0 1px 0 #54b4eb; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 50px; + color: #f5f5f5; +} + +.navbar-link { + color: #ffffff; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #ffffff; +} + +.navbar .divider-vertical { + height: 50px; + margin: 0 9px; + border-right: 1px solid rgba(0, 0, 0, 0.2); + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 10px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 10px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 10px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + + +.navbar .nav { + display: block; + float: left; + left: 0; + margin: 0 1px 0 0; + padding: 2px 20px 2px; + position: relative; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + + +.navbar .nav > li > a { + color: #ffffff; + float: none; + padding: 5px 5px 14px; + text-decoration: none; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2); +} + + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #ffffff; + text-decoration: none; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #2fa4e7; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #2fa3e6; + *background-color: #1a99e2; + background-image: -moz-linear-gradient(top, #3daae9, #1a99e2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3daae9), to(#1a99e2)); + background-image: -webkit-linear-gradient(top, #3daae9, #1a99e2); + background-image: -o-linear-gradient(top, #3daae9, #1a99e2); + background-image: linear-gradient(to bottom, #3daae9, #1a99e2); + background-repeat: repeat-x; + border-color: #1a99e2 #1a99e2 #126b9e; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3daae9', endColorstr='#ff1a99e2', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #1a99e2; + *background-color: #178acc; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #157ab5 \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #034482; + background-image: -moz-linear-gradient(top, #04498c, #033c73); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#04498c), to(#033c73)); + background-image: -webkit-linear-gradient(top, #04498c, #033c73); + background-image: -o-linear-gradient(top, #04498c, #033c73); + background-image: linear-gradient(to bottom, #04498c, #033c73); + background-repeat: repeat-x; + border-color: #033464; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04498c', endColorstr='#ff033c73', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #ffffff; +} + +.navbar-inverse .navbar-text { + color: #ffffff; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: #022c55; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #022c55; +} + +.navbar-inverse .navbar-link { + color: #ffffff; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #04498c; + border-left-color: #033c73; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #022c55; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #ffffff; + border-color: #033c73; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #999999; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #999999; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #999999; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #033769; + *background-color: #022f5a; + background-image: -moz-linear-gradient(top, #033c73, #022f5a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#033c73), to(#022f5a)); + background-image: -webkit-linear-gradient(top, #033c73, #022f5a); + background-image: -o-linear-gradient(top, #033c73, #022f5a); + background-image: linear-gradient(to bottom, #033c73, #022f5a); + background-repeat: repeat-x; + border-color: #022f5a #022f5a #000810; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff033c73', endColorstr='#ff022f5a', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #022f5a; + *background-color: #022241; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #011528 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1020; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #2fa4e7; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #bd4247; +} + +.label-important[href], +.badge-important[href] { + background-color: #983538; +} + +.label-warning, +.badge-warning { + background-color: #dd5600; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #aa4200; +} + +.label-success, +.badge-success { + background-color: #669533; +} + +.label-success[href], +.badge-success[href] { + background-color: #4c6f26; +} + +.label-info, +.badge-info { + background-color: #178acc; +} + +.label-info[href], +.badge-info[href] { + background-color: #126b9e; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #f16e1a; + background-image: -moz-linear-gradient(top, #ff7d2b, #dd5600); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ff7d2b), to(#dd5600)); + background-image: -webkit-linear-gradient(top, #ff7d2b, #dd5600); + background-image: -o-linear-gradient(top, #ff7d2b, #dd5600); + background-image: linear-gradient(to bottom, #ff7d2b, #dd5600); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff7d2b', endColorstr='#ffdd5600', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #ff7d2b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #f5f5f5; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 30px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} + +.navbar .brand { + padding: 14px 20px 16px; + font-family: 'Telex', sans-serif; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2); +} + +.navbar li { + line-height: 20px; +} + + + +.navbar .search-query { + line-height: normal; + border: 1px solid #178acc; +} + +.navbar .navbar-text { + padding: 19px 10px 18px; + line-height: 13px; + color: rgba(0, 0, 0, 0.5); + text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); +} + +.navbar-inverse .navbar-search .search-query { + color: #555555; +} + +@media (max-width: 979px) { + .navbar .nav-collapse .nav li > a { + font-family: 'Telex', sans-serif; + font-weight: normal; + color: #ffffff; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2); + } + .navbar .nav-collapse .nav li > a:hover { + background-color: #2B7CAC; + } + .navbar .nav-collapse .nav .active > a { + background-color: #2B7CAC; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .navbar .nav-collapse .dropdown-menu li > a:hover, + .navbar .nav-collapse .dropdown-menu li > a:focus, + .navbar .nav-collapse .dropdown-submenu:hover > a { + background-image: none; + } + .navbar .nav-collapse .navbar-form, + .navbar .nav-collapse .navbar-search { + border: none; + } + .navbar .nav-collapse .nav-header { + color: #2B7CAC; + } + .navbar-inverse .nav-collapse .nav li > a { + color: #ffffff; + } + .navbar-inverse .nav-collapse .nav li > a:hover { + background-color: rgba(0, 0, 0, 0.1); + } + .navbar-inverse .nav-collapse .nav .active > a, + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:hover { + background-color: rgba(0, 0, 0, 0.1) !important; + } +} + +div.subnav { + font-family: 'Telex', sans-serif; + text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.2); +} + +div.subnav-fixed { + top: 51px; +} + +.btn { + background-color: #ffffff; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(5%, #ffffff), to(#ffffff)); + background-image: -webkit-linear-gradient(#ffffff, #ffffff 5%, #ffffff); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff 5%, #ffffff); + background-image: -o-linear-gradient(#ffffff, #ffffff 5%, #ffffff); + background-image: linear-gradient(#ffffff, #ffffff 5%, #ffffff); + background-repeat: no-repeat; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffffffff', GradientType=0); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover { + background-position: 0 0; +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #3daae9; + *background-color: #2fa4e7; + background-image: -moz-linear-gradient(top, #46aeea, #2fa4e7); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#46aeea), to(#2fa4e7)); + background-image: -webkit-linear-gradient(top, #46aeea, #2fa4e7); + background-image: -o-linear-gradient(top, #46aeea, #2fa4e7); + background-image: linear-gradient(to bottom, #46aeea, #2fa4e7); + background-repeat: repeat-x; + border-color: #2fa4e7 #2fa4e7 #157ab5; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff46aeea', endColorstr='#ff2fa4e7', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #2fa4e7; + *background-color: #1a99e2; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #178acc \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #9e6ab8; + *background-color: #9760b3; + background-image: -moz-linear-gradient(top, #a271bb, #9760b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#a271bb), to(#9760b3)); + background-image: -webkit-linear-gradient(top, #a271bb, #9760b3); + background-image: -o-linear-gradient(top, #a271bb, #9760b3); + background-image: linear-gradient(to bottom, #a271bb, #9760b3); + background-repeat: repeat-x; + border-color: #9760b3 #9760b3 #6f4086; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffa271bb', endColorstr='#ff9760b3', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #9760b3; + *background-color: #8b51a9; +} + +.btn-info:active, +.btn-info.active { + background-color: #7d4898 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #7bb33d; + *background-color: #73a839; + background-image: -moz-linear-gradient(top, #80bb3f, #73a839); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#80bb3f), to(#73a839)); + background-image: -webkit-linear-gradient(top, #80bb3f, #73a839); + background-image: -o-linear-gradient(top, #80bb3f, #73a839); + background-image: linear-gradient(to bottom, #80bb3f, #73a839); + background-repeat: repeat-x; + border-color: #73a839 #73a839 #4c6f26; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff80bb3f', endColorstr='#ff73a839', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #73a839; + *background-color: #669533; +} + +.btn-success:active, +.btn-success.active { + background-color: #59822c \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ec5c00; + *background-color: #dd5600; + background-image: -moz-linear-gradient(top, #f76000, #dd5600); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f76000), to(#dd5600)); + background-image: -webkit-linear-gradient(top, #f76000, #dd5600); + background-image: -o-linear-gradient(top, #f76000, #dd5600); + background-image: linear-gradient(to bottom, #f76000, #dd5600); + background-repeat: repeat-x; + border-color: #dd5600 #dd5600 #913800; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff76000', endColorstr='#ffdd5600', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #dd5600; + *background-color: #c44c00; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #aa4200 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #d41e24; + *background-color: #c71c22; + background-image: -moz-linear-gradient(top, #dd1f26, #c71c22); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dd1f26), to(#c71c22)); + background-image: -webkit-linear-gradient(top, #dd1f26, #c71c22); + background-image: -o-linear-gradient(top, #dd1f26, #c71c22); + background-image: linear-gradient(to bottom, #dd1f26, #c71c22); + background-repeat: repeat-x; + border-color: #c71c22 #c71c22 #841317; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd1f26', endColorstr='#ffc71c22', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #c71c22; + *background-color: #b1191e; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #9a161a \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #034482; + *background-color: #033c73; + background-image: -moz-linear-gradient(top, #04498c, #033c73); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#04498c), to(#033c73)); + background-image: -webkit-linear-gradient(top, #04498c, #033c73); + background-image: -o-linear-gradient(top, #04498c, #033c73); + background-image: linear-gradient(to bottom, #04498c, #033c73); + background-repeat: repeat-x; + border-color: #033c73 #033c73 #011528; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04498c', endColorstr='#ff033c73', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #033c73; + *background-color: #022f5a; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #022241 \9; +} + +i[class^="icon-"] { + opacity: 0.8; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/bootstrap.min.css b/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/bootstrap.min.css new file mode 100644 index 00000000..0c44957b --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/bootstrap.min.css @@ -0,0 +1,9 @@ +/*!@import url(//fonts.googleapis.com/css?family=Telex);/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#555;background-color:#fff}a{color:#2fa4e7;text-decoration:none}a:hover,a:focus{color:#157ab5;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#dd5600}a.text-warning:hover,a.text-warning:focus{color:#aa4200}.text-error{color:#bd4247}a.text-error:hover,a.text-error:focus{color:#983538}.text-info{color:#178acc}a.text-info:hover,a.text-info:focus{color:#126b9e}.text-success{color:#669533}a.text-success:hover,a.text-success:focus{color:#4c6f26}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:'Telex',sans-serif;font-weight:bold;line-height:20px;color:#317eac;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #f5f5f5}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #f5f5f5;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #f5f5f5}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #f5f5f5;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#f5f5f5}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#dd5600}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#dd5600}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#dd5600;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#aa4200;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ff8d44;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ff8d44;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ff8d44}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#dd5600;background-color:#f1ceab;border-color:#dd5600}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#bd4247}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#bd4247}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#bd4247;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#983538;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d88e90;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d88e90;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d88e90}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#bd4247;background-color:#f2bdb1;border-color:#bd4247}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#669533}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#669533}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#669533;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#4c6f26;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #99ca63;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #99ca63;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #99ca63}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#669533;background-color:#d5ecbf;border-color:#669533}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#178acc}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#178acc}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#178acc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#126b9e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #5db8ec;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #5db8ec;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #5db8ec}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#178acc;background-color:#a7dff1;border-color:#178acc}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#7b7b7b}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#f5f5f5;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#bede9c;border-color:#73a839}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#d5ecbf}.table tbody tr.error>td{background-color:#f2bdb1}.table tbody tr.warning>td{background-color:#f1ceab}.table tbody tr.info>td{background-color:#a7dff1}.table-hover tbody tr.success:hover>td{background-color:#c8e6ab}.table-hover tbody tr.error:hover>td{background-color:#eeab9b}.table-hover tbody tr.warning:hover>td{background-color:#edc195}.table-hover tbody tr.info:hover>td{background-color:#91d7ee}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#27a0e5;background-image:-moz-linear-gradient(top,#2fa4e7,#1a99e2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#2fa4e7),to(#1a99e2));background-image:-webkit-linear-gradient(top,#2fa4e7,#1a99e2);background-image:-o-linear-gradient(top,#2fa4e7,#1a99e2);background-image:linear-gradient(to bottom,#2fa4e7,#1a99e2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2fa4e7',endColorstr='#ff1a99e2',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#27a0e5;background-image:-moz-linear-gradient(top,#2fa4e7,#1a99e2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#2fa4e7),to(#1a99e2));background-image:-webkit-linear-gradient(top,#2fa4e7,#1a99e2);background-image:-o-linear-gradient(top,#2fa4e7,#1a99e2);background-image:linear-gradient(to bottom,#2fa4e7,#1a99e2);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2fa4e7',endColorstr='#ff1a99e2',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#2f92e7;*background-color:#2f76e7;background-image:-moz-linear-gradient(top,#2fa4e7,#2f76e7);background-image:-webkit-gradient(linear,0 0,0 100%,from(#2fa4e7),to(#2f76e7));background-image:-webkit-linear-gradient(top,#2fa4e7,#2f76e7);background-image:-o-linear-gradient(top,#2fa4e7,#2f76e7);background-image:linear-gradient(to bottom,#2fa4e7,#2f76e7);background-repeat:repeat-x;border-color:#2f76e7 #2f76e7 #1553b5;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2fa4e7',endColorstr='#ff2f76e7',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#2f76e7;*background-color:#1a67e2}.btn-primary:active,.btn-primary.active{background-color:#175dcc \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#dd5600;*background-color:#dd5600;background-image:-moz-linear-gradient(top,#dd5600,#dd5600);background-image:-webkit-gradient(linear,0 0,0 100%,from(#dd5600),to(#dd5600));background-image:-webkit-linear-gradient(top,#dd5600,#dd5600);background-image:-o-linear-gradient(top,#dd5600,#dd5600);background-image:linear-gradient(to bottom,#dd5600,#dd5600);background-repeat:repeat-x;border-color:#dd5600 #dd5600 #913800;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd5600',endColorstr='#ffdd5600',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#dd5600;*background-color:#c44c00}.btn-warning:active,.btn-warning.active{background-color:#aa4200 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#c32627;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#c71c22,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#c71c22),to(#bd362f));background-image:-webkit-linear-gradient(top,#c71c22,#bd362f);background-image:-o-linear-gradient(top,#c71c22,#bd362f);background-image:linear-gradient(to bottom,#c71c22,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffc71c22',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#65a643;*background-color:#51a351;background-image:-moz-linear-gradient(top,#73a839,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#73a839),to(#51a351));background-image:-webkit-linear-gradient(top,#73a839,#51a351);background-image:-o-linear-gradient(top,#73a839,#51a351);background-image:linear-gradient(to bottom,#73a839,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff73a839',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#6d76b3;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#9760b3,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#9760b3),to(#2f96b4));background-image:-webkit-linear-gradient(top,#9760b3,#2f96b4);background-image:-o-linear-gradient(top,#9760b3,#2f96b4);background-image:linear-gradient(to bottom,#9760b3,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff9760b3',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0f3253;*background-color:#222;background-image:-moz-linear-gradient(top,#033c73,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#033c73),to(#222));background-image:-webkit-linear-gradient(top,#033c73,#222);background-image:-o-linear-gradient(top,#033c73,#222);background-image:linear-gradient(to bottom,#033c73,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff033c73',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#2fa4e7;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#157ab5;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#2f76e7}.btn-group.open .btn-warning.dropdown-toggle{background-color:#dd5600}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#f1ceab;border:1px solid #efb99e;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#dd5600}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#669533;background-color:#d5ecbf;border-color:#d2e6ab}.alert-success h4{color:#669533}.alert-danger,.alert-error{color:#bd4247;background-color:#f2bdb1;border-color:#f0a5a4}.alert-danger h4,.alert-error h4{color:#bd4247}.alert-info{color:#178acc;background-color:#a7dff1;border-color:#88e4ec}.alert-info h4{color:#178acc}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#f5f5f5}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#2fa4e7}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#f5f5f5 #f5f5f5 #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#2fa4e7}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#2fa4e7;border-bottom-color:#2fa4e7}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#157ab5;border-bottom-color:#157ab5}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#f5f5f5 #ddd #f5f5f5 #f5f5f5}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#f5f5f5 #f5f5f5 #f5f5f5 #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:50px;padding-right:20px;padding-left:20px;background-color:#45aeea;background-image:-moz-linear-gradient(top,#54b4eb,#2fa4e7);background-image:-webkit-gradient(linear,0 0,0 100%,from(#54b4eb),to(#2fa4e7));background-image:-webkit-linear-gradient(top,#54b4eb,#2fa4e7);background-image:-o-linear-gradient(top,#54b4eb,#2fa4e7);background-image:linear-gradient(to bottom,#54b4eb,#2fa4e7);background-repeat:repeat-x;border:1px solid #1990d5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb',endColorstr='#ff2fa4e7',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:15px 20px 15px;margin-left:-20px;font-size:20px;font-weight:200;color:#fff;text-shadow:0 1px 0 #54b4eb}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:50px;color:#f5f5f5}.navbar-link{color:#fff}.navbar-link:hover,.navbar-link:focus{color:#fff}.navbar .divider-vertical{height:50px;margin:0 9px;border-right:1px solid #54b4eb;border-left:1px solid #2fa4e7}.navbar .btn,.navbar .btn-group{margin-top:10px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:10px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:10px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:15px 15px 15px;color:#fff;text-decoration:none;text-shadow:0 1px 0 #54b4eb}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:#1684c2}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#fff;text-decoration:none;background-color:#1684c2;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#2fa3e6;*background-color:#1a99e2;background-image:-moz-linear-gradient(top,#3daae9,#1a99e2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#3daae9),to(#1a99e2));background-image:-webkit-linear-gradient(top,#3daae9,#1a99e2);background-image:-o-linear-gradient(top,#3daae9,#1a99e2);background-image:linear-gradient(to bottom,#3daae9,#1a99e2);background-repeat:repeat-x;border-color:#1a99e2 #1a99e2 #126b9e;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3daae9',endColorstr='#ff1a99e2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#1a99e2;*background-color:#178acc}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#157ab5 \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#1684c2}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#034482;background-image:-moz-linear-gradient(top,#04498c,#033c73);background-image:-webkit-gradient(linear,0 0,0 100%,from(#04498c),to(#033c73));background-image:-webkit-linear-gradient(top,#04498c,#033c73);background-image:-o-linear-gradient(top,#04498c,#033c73);background-image:linear-gradient(to bottom,#04498c,#033c73);background-repeat:repeat-x;border-color:#033464;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04498c',endColorstr='#ff033c73',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#fff}.navbar-inverse .navbar-text{color:#fff}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:#022c55}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#022c55}.navbar-inverse .navbar-link{color:#fff}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#04498c;border-left-color:#033c73}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#022c55}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#fff;border-color:#033c73;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#999}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#999}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#999}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#033769;*background-color:#022f5a;background-image:-moz-linear-gradient(top,#033c73,#022f5a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#033c73),to(#022f5a));background-image:-webkit-linear-gradient(top,#033c73,#022f5a);background-image:-o-linear-gradient(top,#033c73,#022f5a);background-image:linear-gradient(to bottom,#033c73,#022f5a);background-repeat:repeat-x;border-color:#022f5a #022f5a #000810;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff033c73',endColorstr='#ff022f5a',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#022f5a;*background-color:#022241}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#011528 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1020;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#2fa4e7;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#bd4247}.label-important[href],.badge-important[href]{background-color:#983538}.label-warning,.badge-warning{background-color:#dd5600}.label-warning[href],.badge-warning[href]{background-color:#aa4200}.label-success,.badge-success{background-color:#669533}.label-success[href],.badge-success[href]{background-color:#4c6f26}.label-info,.badge-info{background-color:#178acc}.label-info[href],.badge-info[href]{background-color:#126b9e}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#f16e1a;background-image:-moz-linear-gradient(top,#ff7d2b,#dd5600);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ff7d2b),to(#dd5600));background-image:-webkit-linear-gradient(top,#ff7d2b,#dd5600);background-image:-o-linear-gradient(top,#ff7d2b,#dd5600);background-image:linear-gradient(to bottom,#ff7d2b,#dd5600);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff7d2b',endColorstr='#ffdd5600',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#ff7d2b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#f5f5f5;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}.navbar .brand{padding:14px 20px 16px;font-family:'Telex',sans-serif;text-shadow:1px 1px 0 rgba(0,0,0,0.2)}.navbar li{line-height:20px}.navbar .nav>li>a{padding:16px 10px 14px;font-family:'Telex',sans-serif;text-shadow:1px 1px 0 rgba(0,0,0,0.2)}.navbar .search-query{line-height:normal;border:1px solid #178acc}.navbar .navbar-text{padding:19px 10px 18px;line-height:13px;color:rgba(0,0,0,0.5);text-shadow:1px 1px 0 rgba(255,255,255,0.3)}.navbar-inverse .navbar-search .search-query{color:#555}@media(max-width:979px){.navbar .nav-collapse .nav li>a{font-family:'Telex',sans-serif;font-weight:normal;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.2)}.navbar .nav-collapse .nav li>a:hover{background-color:#2b7cac}.navbar .nav-collapse .nav .active>a{background-color:#2b7cac;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.navbar .nav-collapse .dropdown-menu li>a:hover,.navbar .nav-collapse .dropdown-menu li>a:focus,.navbar .nav-collapse .dropdown-submenu:hover>a{background-image:none}.navbar .nav-collapse .navbar-form,.navbar .nav-collapse .navbar-search{border:0}.navbar .nav-collapse .nav-header{color:#2b7cac}.navbar-inverse .nav-collapse .nav li>a{color:#fff}.navbar-inverse .nav-collapse .nav li>a:hover{background-color:rgba(0,0,0,0.1)}.navbar-inverse .nav-collapse .nav .active>a,.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:rgba(0,0,0,0.1)!important}}div.subnav{font-family:'Telex',sans-serif;text-shadow:1px 1px 0 rgba(255,255,255,0.2)}div.subnav-fixed{top:51px}.btn{background-color:#fff;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),color-stop(5%,#fff),to(#fff));background-image:-webkit-linear-gradient(#fff,#fff 5%,#fff);background-image:-moz-linear-gradient(top,#fff,#fff 5%,#fff);background-image:-o-linear-gradient(#fff,#fff 5%,#fff);background-image:linear-gradient(#fff,#fff 5%,#fff);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffffffff',GradientType=0);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover{background-position:0 0}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#3daae9;*background-color:#2fa4e7;background-image:-moz-linear-gradient(top,#46aeea,#2fa4e7);background-image:-webkit-gradient(linear,0 0,0 100%,from(#46aeea),to(#2fa4e7));background-image:-webkit-linear-gradient(top,#46aeea,#2fa4e7);background-image:-o-linear-gradient(top,#46aeea,#2fa4e7);background-image:linear-gradient(to bottom,#46aeea,#2fa4e7);background-repeat:repeat-x;border-color:#2fa4e7 #2fa4e7 #157ab5;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff46aeea',endColorstr='#ff2fa4e7',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#2fa4e7;*background-color:#1a99e2}.btn-primary:active,.btn-primary.active{background-color:#178acc \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#9e6ab8;*background-color:#9760b3;background-image:-moz-linear-gradient(top,#a271bb,#9760b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#a271bb),to(#9760b3));background-image:-webkit-linear-gradient(top,#a271bb,#9760b3);background-image:-o-linear-gradient(top,#a271bb,#9760b3);background-image:linear-gradient(to bottom,#a271bb,#9760b3);background-repeat:repeat-x;border-color:#9760b3 #9760b3 #6f4086;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffa271bb',endColorstr='#ff9760b3',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#9760b3;*background-color:#8b51a9}.btn-info:active,.btn-info.active{background-color:#7d4898 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#7bb33d;*background-color:#73a839;background-image:-moz-linear-gradient(top,#80bb3f,#73a839);background-image:-webkit-gradient(linear,0 0,0 100%,from(#80bb3f),to(#73a839));background-image:-webkit-linear-gradient(top,#80bb3f,#73a839);background-image:-o-linear-gradient(top,#80bb3f,#73a839);background-image:linear-gradient(to bottom,#80bb3f,#73a839);background-repeat:repeat-x;border-color:#73a839 #73a839 #4c6f26;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff80bb3f',endColorstr='#ff73a839',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#73a839;*background-color:#669533}.btn-success:active,.btn-success.active{background-color:#59822c \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ec5c00;*background-color:#dd5600;background-image:-moz-linear-gradient(top,#f76000,#dd5600);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f76000),to(#dd5600));background-image:-webkit-linear-gradient(top,#f76000,#dd5600);background-image:-o-linear-gradient(top,#f76000,#dd5600);background-image:linear-gradient(to bottom,#f76000,#dd5600);background-repeat:repeat-x;border-color:#dd5600 #dd5600 #913800;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff76000',endColorstr='#ffdd5600',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#dd5600;*background-color:#c44c00}.btn-warning:active,.btn-warning.active{background-color:#aa4200 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#d41e24;*background-color:#c71c22;background-image:-moz-linear-gradient(top,#dd1f26,#c71c22);background-image:-webkit-gradient(linear,0 0,0 100%,from(#dd1f26),to(#c71c22));background-image:-webkit-linear-gradient(top,#dd1f26,#c71c22);background-image:-o-linear-gradient(top,#dd1f26,#c71c22);background-image:linear-gradient(to bottom,#dd1f26,#c71c22);background-repeat:repeat-x;border-color:#c71c22 #c71c22 #841317;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd1f26',endColorstr='#ffc71c22',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#c71c22;*background-color:#b1191e}.btn-danger:active,.btn-danger.active{background-color:#9a161a \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#034482;*background-color:#033c73;background-image:-moz-linear-gradient(top,#04498c,#033c73);background-image:-webkit-gradient(linear,0 0,0 100%,from(#04498c),to(#033c73));background-image:-webkit-linear-gradient(top,#04498c,#033c73);background-image:-o-linear-gradient(top,#04498c,#033c73);background-image:linear-gradient(to bottom,#04498c,#033c73);background-repeat:repeat-x;border-color:#033c73 #033c73 #011528;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04498c',endColorstr='#ff033c73',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#033c73;*background-color:#022f5a}.btn-inverse:active,.btn-inverse.active{background-color:#022241 \9}i[class^="icon-"]{opacity:.8}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/thumbnail.png b/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/thumbnail.png new file mode 100644 index 00000000..21326163 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/css_cerulean/thumbnail.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap-responsive.css b/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap-responsive.css new file mode 100644 index 00000000..fcd72f7a --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap-responsive.css @@ -0,0 +1,1109 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@-ms-viewport { + width: device-width; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.564102564102564%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.7624309392265194%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 20px; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .media .pull-left, + .media .pull-right { + display: block; + float: none; + margin-bottom: 10px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 10px; + right: 10px; + left: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #999999; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + background-color: #111111; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: none; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap-responsive.min.css b/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap-responsive.min.css new file mode 100644 index 00000000..d1b7f4b0 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap.css b/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap.css new file mode 100644 index 00000000..ffdf78e8 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap.css @@ -0,0 +1,6165 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family:"Microsoft Yahei","微软雅黑",Helvetica, Arial, sans-serif, "宋体"; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover, +a:focus { + color: #005580; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #c09853; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #a47e3c; +} + +.text-error { + color: #b94a48; +} + +a.text-error:hover, +a.text-error:focus { + color: #953b39; +} + +.text-info { + color: #3a87ad; +} + +a.text-info:hover, +a.text-info:focus { + color: #2d6987; +} + +.text-success { + color: #468847; +} + +a.text-success:hover, +a.text-success:focus { + color: #356635; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 40px; +} + +h1 { + font-size: 38.5px; +} + +h2 { + font-size: 31.5px; +} + +h3 { + font-size: 24.5px; +} + +h4 { + font-size: 17.5px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 11.9px; +} + +h1 small { + font-size: 24.5px; +} + +h2 small { + font-size: 17.5px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #dff0d8; +} + +.table tbody tr.error > td { + background-color: #f2dede; +} + +.table tbody tr.warning > td { + background-color: #fcf8e3; +} + +.table tbody tr.info > td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + *background-color: #0044cc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + *background-color: #f89406; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + *background-color: #222222; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #0088cc; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 10.5px; +} + +.btn-group > .btn-small { + font-size: 11.9px; +} + +.btn-group > .btn-large { + font-size: 17.5px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #c09853; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success h4 { + color: #468847; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info h4 { + color: #3a87ad; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 50px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 50px; + color: #f5f5f5; +} + +.navbar-link { + color: #777777; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} + +.navbar .divider-vertical { + height: 50px; + margin: 0 9px; + border-right: 1px solid #ffffff; + border-left: 1px solid #f2f2f2; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 10px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; + padding-top:35px; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 16px 10px 14px; + color: #ffffff; + text-decoration: none; + font-family: 'Telex', sans-serif; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2); +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + *background-color: #e5e5e5; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #e5e5e5; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #999999; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #222222; + border-left-color: #111111; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + *background-color: #040404; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 30px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} + +.navbar li { + line-height: 20px; +} + diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap.min.css b/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap.min.css new file mode 100644 index 00000000..c10c7f41 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_default/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap-responsive.css b/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap-responsive.css new file mode 100644 index 00000000..034f7145 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap-responsive.css @@ -0,0 +1,1073 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +@-ms-viewport { + width: device-width; +} +.hidden { + display: none; + visibility: hidden; +} +.visible-phone { + display: none !important; +} +.visible-tablet { + display: none !important; +} +.hidden-desktop { + display: none !important; +} +.visible-desktop { + display: inherit !important; +} +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + line-height: 0; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + line-height: 0; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: left; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.564102564102564%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + line-height: 0; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + line-height: 0; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: left; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.7624309392265194%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} +@media (max-width: 767px) { + body { + padding-left: 20px; + padding-right: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-left: -20px; + margin-right: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + clear: none; + width: auto; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + float: none; + display: block; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + left: 20px; + right: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 20px; + } +} +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-left: 10px; + padding-right: 10px; + } + .media .pull-left, + .media .pull-right { + float: none; + display: block; + margin-bottom: 10px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 10px; + left: 10px; + right: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-left: 10px; + padding-right: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #999999; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + background-color: #111111; + } + .nav-collapse.in .btn-group { + margin-top: 5px; + padding: 0; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + float: none; + display: none; + max-width: none; + margin: 0 15px; + padding: 0; + background-color: transparent; + border: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + overflow: hidden; + height: 0; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-left: 10px; + padding-right: 10px; + } +} +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap-responsive.min.css b/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap-responsive.min.css new file mode 100644 index 00000000..42680cde --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap-responsive.min.css @@ -0,0 +1,145 @@ +/*!* Bootstrap Responsive v2.3.1 * * Copyright 2012 Twitter,Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */ .clearfix{*zoom:1;} +.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +@-ms-viewport{width:device-width;}.hidden{display:none;visibility:hidden;}.visible-phone{display:none!important;} +.visible-tablet{display:none!important;}.hidden-desktop{display:none!important;} +.visible-desktop{display:inherit!important;}@media(min-width:768px) and(max-width:979px){.hidden-desktop{display:inherit!important;} +.visible-desktop{display:none!important;}.visible-tablet{display:inherit!important;} +.hidden-tablet{display:none!important;}}@media(max-width:767px){.hidden-desktop{display:inherit!important;} +.visible-desktop{display:none!important;}.visible-phone{display:inherit!important;} +.hidden-phone{display:none!important;}}.visible-print{display:none!important;}@media print{.visible-print{display:inherit!important;} +.hidden-print{display:none!important;}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1;} +.row:before,.row:after{display:table;content:"";line-height:0;}.row:after{clear:both;} +[class*="span"]{float:left;min-height:1px;margin-left:30px;}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} +.span12{width:1170px;}.span11{width:1070px;}.span10{width:970px;}.span9{width:870px;} +.span8{width:770px;}.span7{width:670px;}.span6{width:570px;}.span5{width:470px;} +.span4{width:370px;}.span3{width:270px;}.span2{width:170px;}.span1{width:70px;}.offset12{margin-left:1230px;} +.offset11{margin-left:1130px;}.offset10{margin-left:1030px;}.offset9{margin-left:930px;} +.offset8{margin-left:830px;}.offset7{margin-left:730px;}.offset6{margin-left:630px;} +.offset5{margin-left:530px;}.offset4{margin-left:430px;}.offset3{margin-left:330px;} +.offset2{margin-left:230px;}.offset1{margin-left:130px;}.row-fluid{width:100%;*zoom:1;} +.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}.row-fluid:after{clear:both;} +.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} +.row-fluid [class*="span"]:first-child{margin-left:0;}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} +.row-fluid .span12{width:100%;*width:99.94680851063829%;}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} +.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} +.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} +.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} +.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} +.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} +.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} +.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} +.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} +.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} +.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} +.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} +.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} +.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} +.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} +.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} +.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} +.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} +.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} +.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} +.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} +.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} +.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} +.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} +.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} +.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} +.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} +.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} +.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} +.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} +input,textarea,.uneditable-input{margin-left:0;}.controls-row [class*="span"]+[class*="span"]{margin-left:30px;} +input.span12,textarea.span12,.uneditable-input.span12{width:1156px;}input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} +input.span10,textarea.span10,.uneditable-input.span10{width:956px;}input.span9,textarea.span9,.uneditable-input.span9{width:856px;} +input.span8,textarea.span8,.uneditable-input.span8{width:756px;}input.span7,textarea.span7,.uneditable-input.span7{width:656px;} +input.span6,textarea.span6,.uneditable-input.span6{width:556px;}input.span5,textarea.span5,.uneditable-input.span5{width:456px;} +input.span4,textarea.span4,.uneditable-input.span4{width:356px;}input.span3,textarea.span3,.uneditable-input.span3{width:256px;} +input.span2,textarea.span2,.uneditable-input.span2{width:156px;}input.span1,textarea.span1,.uneditable-input.span1{width:56px;} +.thumbnails{margin-left:-30px;}.thumbnails>li{margin-left:30px;}.row-fluid .thumbnails{margin-left:0;} +}@media(min-width:768px) and(max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} +.row:after{clear:both;}[class*="span"]{float:left;min-height:1px;margin-left:20px;} +.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} +.span12{width:724px;}.span11{width:662px;}.span10{width:600px;}.span9{width:538px;} +.span8{width:476px;}.span7{width:414px;}.span6{width:352px;}.span5{width:290px;} +.span4{width:228px;}.span3{width:166px;}.span2{width:104px;}.span1{width:42px;}.offset12{margin-left:764px;} +.offset11{margin-left:702px;}.offset10{margin-left:640px;}.offset9{margin-left:578px;} +.offset8{margin-left:516px;}.offset7{margin-left:454px;}.offset6{margin-left:392px;} +.offset5{margin-left:330px;}.offset4{margin-left:268px;}.offset3{margin-left:206px;} +.offset2{margin-left:144px;}.offset1{margin-left:82px;}.row-fluid{width:100%;*zoom:1;} +.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}.row-fluid:after{clear:both;} +.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} +.row-fluid [class*="span"]:first-child{margin-left:0;}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} +.row-fluid .span12{width:100%;*width:99.94680851063829%;}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} +.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} +.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} +.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} +.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} +.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} +.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} +.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} +.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} +.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} +.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} +.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} +.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} +.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} +.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} +.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} +.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} +.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} +.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} +.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} +.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} +.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} +.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} +.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} +.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} +.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} +.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} +.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} +.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} +.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} +input,textarea,.uneditable-input{margin-left:0;}.controls-row [class*="span"]+[class*="span"]{margin-left:20px;} +input.span12,textarea.span12,.uneditable-input.span12{width:710px;}input.span11,textarea.span11,.uneditable-input.span11{width:648px;} +input.span10,textarea.span10,.uneditable-input.span10{width:586px;}input.span9,textarea.span9,.uneditable-input.span9{width:524px;} +input.span8,textarea.span8,.uneditable-input.span8{width:462px;}input.span7,textarea.span7,.uneditable-input.span7{width:400px;} +input.span6,textarea.span6,.uneditable-input.span6{width:338px;}input.span5,textarea.span5,.uneditable-input.span5{width:276px;} +input.span4,textarea.span4,.uneditable-input.span4{width:214px;}input.span3,textarea.span3,.uneditable-input.span3{width:152px;} +input.span2,textarea.span2,.uneditable-input.span2{width:90px;}input.span1,textarea.span1,.uneditable-input.span1{width:28px;} +}@media(max-width:767px){body{padding-left:20px;padding-right:20px;}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;} +.container-fluid{padding:0;}.dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} +.dl-horizontal dd{margin-left:0;}.container{width:auto;}.row-fluid{width:100%;}.row,.thumbnails{margin-left:0;} +.thumbnails>li{float:none;margin-left:0;}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.row-fluid [class*="offset"]:first-child{margin-left:0;}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;} +.controls-row [class*="span"]+[class*="span"]{margin-left:0;}.modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;} +.modal.fade{top:-100px;}.modal.fade.in{top:20px;}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0);} +.page-header h1 small{display:block;line-height:20px;}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} +.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;} +.form-horizontal .controls{margin-left:0;}.form-horizontal .control-list{padding-top:0;} +.form-horizontal .form-actions{padding-left:10px;padding-right:10px;}.media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;} +.media-object{margin-right:0;margin-left:0;}.modal{top:10px;left:10px;right:10px;} +.modal-header .close{padding:10px;margin:-10px;}.carousel-caption{position:static;} +}@media(max-width:979px){body{padding-top:0;}.navbar-fixed-top,.navbar-fixed-bottom{position:static;} +.navbar-fixed-top{margin-bottom:20px;}.navbar-fixed-bottom{margin-top:20px;}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;} +.navbar .container{width:auto;padding:0;}.navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} +.nav-collapse{clear:both;}.nav-collapse .nav{float:none;margin:0 0 10px;}.nav-collapse .nav>li{float:none;} +.nav-collapse .nav>li>a{margin-bottom:2px;}.nav-collapse .nav>.divider-vertical{display:none;} +.nav-collapse .nav .nav-header{color:#777;text-shadow:none;}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;} +.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px;} +.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2;} +.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999;} +.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111;} +.nav-collapse.in .btn-group{margin-top:5px;padding:0;}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;} +.nav-collapse .open>.dropdown-menu{display:block;}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none;} +.nav-collapse .dropdown-menu .divider{display:none;}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none;} +.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;} +.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111;} +.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0;}.nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0;} +.navbar .btn-navbar{display:block;}.navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} +}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important;}} \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap.css b/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap.css new file mode 100644 index 00000000..c44f882f --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap.css @@ -0,0 +1,5971 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, +a:active { + outline: 0; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + /* Responsive images (ensure images don't scale beyond their parents) */ + + max-width: 100%; + /* Part 1: Set a maxium relative to the parent */ + + width: auto\9; + /* IE7-8 need help adjusting responsive images */ + + height: auto; + /* Part 2: Scale the height according to the width, otherwise you get stretching */ + + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} +#map_canvas img, +.google-maps img { + max-width: none; +} +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, +input { + *overflow: visible; + line-height: normal; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +@media print { + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} +a { + color: #0088cc; + text-decoration: none; +} +a:hover, +a:focus { + color: #005580; + text-decoration: underline; +} +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); +} +.row { + margin-left: -20px; + *zoom: 1; +} +.row:before, +.row:after { + display: table; + content: ""; + line-height: 0; +} +.row:after { + clear: both; +} +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} +.span12 { + width: 940px; +} +.span11 { + width: 860px; +} +.span10 { + width: 780px; +} +.span9 { + width: 700px; +} +.span8 { + width: 620px; +} +.span7 { + width: 540px; +} +.span6 { + width: 460px; +} +.span5 { + width: 380px; +} +.span4 { + width: 300px; +} +.span3 { + width: 220px; +} +.span2 { + width: 140px; +} +.span1 { + width: 60px; +} +.offset12 { + margin-left: 980px; +} +.offset11 { + margin-left: 900px; +} +.offset10 { + margin-left: 820px; +} +.offset9 { + margin-left: 740px; +} +.offset8 { + margin-left: 660px; +} +.offset7 { + margin-left: 580px; +} +.offset6 { + margin-left: 500px; +} +.offset5 { + margin-left: 420px; +} +.offset4 { + margin-left: 340px; +} +.offset3 { + margin-left: 260px; +} +.offset2 { + margin-left: 180px; +} +.offset1 { + margin-left: 100px; +} +.row-fluid { + width: 100%; + *zoom: 1; +} +.row-fluid:before, +.row-fluid:after { + display: table; + content: ""; + line-height: 0; +} +.row-fluid:after { + clear: both; +} +.row-fluid [class*="span"] { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + float: left; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; +} +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} +.container:before, +.container:after { + display: table; + content: ""; + line-height: 0; +} +.container:after { + clear: both; +} +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} +.container-fluid:before, +.container-fluid:after { + display: table; + content: ""; + line-height: 0; +} +.container-fluid:after { + clear: both; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} +small { + font-size: 85%; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +cite { + font-style: normal; +} +.muted { + color: #999999; +} +a.muted:hover, +a.muted:focus { + color: #808080; +} +.text-warning { + color: #c09853; +} +a.text-warning:hover, +a.text-warning:focus { + color: #a47e3c; +} +.text-error { + color: #b94a48; +} +a.text-error:hover, +a.text-error:focus { + color: #953b39; +} +.text-info { + color: #3a87ad; +} +a.text-info:hover, +a.text-info:focus { + color: #2d6987; +} +.text-success { + color: #468847; +} +a.text-success:hover, +a.text-success:focus { + color: #356635; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} +h1, +h2, +h3 { + line-height: 40px; +} +h1 { + font-size: 38.5px; +} +h2 { + font-size: 31.5px; +} +h3 { + font-size: 24.5px; +} +h4 { + font-size: 17.5px; +} +h5 { + font-size: 14px; +} +h6 { + font-size: 11.9px; +} +h1 small { + font-size: 24.5px; +} +h2 small { + font-size: 17.5px; +} +h3 small { + font-size: 14px; +} +h4 small { + font-size: 14px; +} +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +li { + line-height: 20px; +} +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + padding-left: 5px; + padding-right: 5px; +} +dl { + margin-bottom: 20px; +} +dt, +dd { + line-height: 20px; +} +dt { + font-weight: bold; +} +dd { + margin-left: 10px; +} +.dl-horizontal { + *zoom: 1; +} +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + content: ""; + line-height: 0; +} +.dl-horizontal:after { + clear: both; +} +.dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.dl-horizontal dd { + margin-left: 180px; +} +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} +blockquote.pull-right small:before { + content: ''; +} +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; +} +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; + white-space: nowrap; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); +} +pre.prettyprint { + margin-bottom: 20px; +} +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +form { + margin: 0 0 20px; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +legend small { + font-size: 15px; + color: #999999; +} +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +label { + display: block; + margin-bottom: 5px; +} +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; +} +input, +textarea, +.uneditable-input { + width: 206px; +} +textarea { + height: auto; +} +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-transition: border linear .2s, box-shadow linear .2s; + -moz-transition: border linear .2s, box-shadow linear .2s; + -o-transition: border linear .2s, box-shadow linear .2s; + transition: border linear .2s, box-shadow linear .2s; +} +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + *margin-top: 0; + /* IE7 */ + + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} +select { + width: 220px; + border: 1px solid #cccccc; + background-color: #ffffff; +} +select[multiple], +select[size] { + height: auto; +} +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.uneditable-input, +.uneditable-textarea { + color: #999999; + background-color: #fcfcfc; + border-color: #cccccc; + cursor: not-allowed; +} +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} +.uneditable-textarea { + width: auto; + height: auto; +} +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} +input, +textarea, +.uneditable-input { + margin-left: 0; +} +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} +.controls-row { + *zoom: 1; +} +.controls-row:before, +.controls-row:after { + display: table; + content: ""; + line-height: 0; +} +.controls-row:after { + clear: both; +} +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; +} +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} +.form-actions:before, +.form-actions:after { + display: table; + content: ""; + line-height: 0; +} +.form-actions:after { + clear: both; +} +.help-block, +.help-inline { + color: #595959; +} +.help-block { + display: block; + margin-bottom: 10px; +} +.help-inline { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + vertical-align: middle; + padding-left: 5px; +} +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + vertical-align: middle; + font-size: 0; + white-space: nowrap; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; +} +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; +} +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; +} +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; +} +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; +} +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} +.control-group { + margin-bottom: 10px; +} +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + content: ""; + line-height: 0; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} +.form-horizontal .controls:first-child { + *padding-left: 180px; +} +.form-horizontal .help-block { + margin-bottom: 0; +} +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} +.form-horizontal .form-actions { + padding-left: 180px; +} +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} +.table { + width: 100%; + margin-bottom: 20px; +} +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table th { + font-weight: bold; +} +.table thead th { + vertical-align: bottom; +} +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #dddddd; +} +.table .table { + background-color: #ffffff; +} +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; +} +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} +.table tbody tr.success > td { + background-color: #dff0d8; +} +.table tbody tr.error > td { + background-color: #f2dede; +} +.table tbody tr.warning > td { + background-color: #fcf8e3; +} +.table tbody tr.info > td { + background-color: #d9edf7; +} +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} +/*! + * Font Awesome 3.0.2 + * the iconic font designed for use with Twitter Bootstrap + * ------------------------------------------------------- + * The full suite of pictographic icons, examples, and documentation + * can be found at: http://fortawesome.github.com/Font-Awesome/ + * + * License + * ------------------------------------------------------- + * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + * http://opensource.org/licenses/mit-license.html + * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + + * Contact + * ------------------------------------------------------- + * Email: dave@davegandy.com + * Twitter: http://twitter.com/fortaweso_me + * Work: Lead Product Designer @ http://kyruus.com + */ +@font-face { + font-family: 'FontAwesome'; + src: url('../font/fontawesome-webfont.eot?v=3.0.1'); + src: url('../font/fontawesome-webfont.eot?#iefix&v=3.0.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.0.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.0.1') format('truetype'); + font-weight: normal; + font-style: normal; +} +/* Font Awesome styles + ------------------------------------------------------- */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + -webkit-font-smoothing: antialiased; + /* sprites.less reset */ + + display: inline; + width: auto; + height: auto; + line-height: normal; + vertical-align: baseline; + background-image: none; + background-position: 0% 0%; + background-repeat: repeat; + margin-top: 0; +} +/* more sprites.less reset */ +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"] { + background-image: none; +} +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} +/* makes sure icons active on rollover in links */ +a [class^="icon-"], +a [class*=" icon-"] { + display: inline-block; +} +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 1.3333333333333333em; +} +.btn [class^="icon-"], +.nav [class^="icon-"], +.btn [class*=" icon-"], +.nav [class*=" icon-"] { + display: inline; + /* keeps button heights with and without icons the same */ + +} +.btn [class^="icon-"].icon-large, +.nav [class^="icon-"].icon-large, +.btn [class*=" icon-"].icon-large, +.nav [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].icon-spin, +.nav [class^="icon-"].icon-spin, +.btn [class*=" icon-"].icon-spin, +.nav [class*=" icon-"].icon-spin { + display: inline-block; +} +.nav-tabs [class^="icon-"], +.nav-pills [class^="icon-"], +.nav-tabs [class*=" icon-"], +.nav-pills [class*=" icon-"] { + /* keeps button heights with and without icons the same */ + +} +.nav-tabs [class^="icon-"], +.nav-pills [class^="icon-"], +.nav-tabs [class*=" icon-"], +.nav-pills [class*=" icon-"], +.nav-tabs [class^="icon-"].icon-large, +.nav-pills [class^="icon-"].icon-large, +.nav-tabs [class*=" icon-"].icon-large, +.nav-pills [class*=" icon-"].icon-large { + line-height: .9em; +} +li [class^="icon-"], +.nav li [class^="icon-"], +li [class*=" icon-"], +.nav li [class*=" icon-"] { + display: inline-block; + width: 1.25em; + text-align: center; +} +li [class^="icon-"].icon-large, +.nav li [class^="icon-"].icon-large, +li [class*=" icon-"].icon-large, +.nav li [class*=" icon-"].icon-large { + /* increased font size for icon-large */ + + width: 1.5625em; +} +ul.icons { + list-style-type: none; + text-indent: -0.75em; +} +ul.icons li [class^="icon-"], +ul.icons li [class*=" icon-"] { + width: .75em; +} +.icon-muted { + color: #eeeeee; +} +.icon-border { + border: solid 1px #eeeeee; + padding: .2em .25em .15em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.icon-2x { + font-size: 2em; +} +.icon-2x.icon-border { + border-width: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.icon-3x { + font-size: 3em; +} +.icon-3x.icon-border { + border-width: 3px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.icon-4x { + font-size: 4em; +} +.icon-4x.icon-border { + border-width: 4px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +[class^="icon-"].pull-left, +[class*=" icon-"].pull-left { + margin-right: .3em; +} +[class^="icon-"].pull-right, +[class*=" icon-"].pull-right { + margin-left: .3em; +} +.btn [class^="icon-"].pull-left.icon-2x, +.btn [class*=" icon-"].pull-left.icon-2x, +.btn [class^="icon-"].pull-right.icon-2x, +.btn [class*=" icon-"].pull-right.icon-2x { + margin-top: .18em; +} +.btn [class^="icon-"].icon-spin.icon-large, +.btn [class*=" icon-"].icon-spin.icon-large { + line-height: .8em; +} +.btn.btn-small [class^="icon-"].pull-left.icon-2x, +.btn.btn-small [class*=" icon-"].pull-left.icon-2x, +.btn.btn-small [class^="icon-"].pull-right.icon-2x, +.btn.btn-small [class*=" icon-"].pull-right.icon-2x { + margin-top: .25em; +} +.btn.btn-large [class^="icon-"], +.btn.btn-large [class*=" icon-"] { + margin-top: 0; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x, +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-top: .05em; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x { + margin-right: .2em; +} +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-left: .2em; +} +.icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + } + 100% { + -moz-transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -o-transform: rotate(0deg); + } + 100% { + -o-transform: rotate(359deg); + } +} +@-ms-keyframes spin { + 0% { + -ms-transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +@-moz-document url-prefix() { + .icon-spin { + height: .9em; + } + .btn .icon-spin { + height: auto; + } + .icon-spin.icon-large { + height: 1.25em; + } + .btn .icon-spin.icon-large { + height: .75em; + } +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-glass:before { + content: "\f000"; +} +.icon-music:before { + content: "\f001"; +} +.icon-search:before { + content: "\f002"; +} +.icon-envelope:before { + content: "\f003"; +} +.icon-heart:before { + content: "\f004"; +} +.icon-star:before { + content: "\f005"; +} +.icon-star-empty:before { + content: "\f006"; +} +.icon-user:before { + content: "\f007"; +} +.icon-film:before { + content: "\f008"; +} +.icon-th-large:before { + content: "\f009"; +} +.icon-th:before { + content: "\f00a"; +} +.icon-th-list:before { + content: "\f00b"; +} +.icon-ok:before { + content: "\f00c"; +} +.icon-remove:before { + content: "\f00d"; +} +.icon-zoom-in:before { + content: "\f00e"; +} +.icon-zoom-out:before { + content: "\f010"; +} +.icon-off:before { + content: "\f011"; +} +.icon-signal:before { + content: "\f012"; +} +.icon-cog:before { + content: "\f013"; +} +.icon-trash:before { + content: "\f014"; +} +.icon-home:before { + content: "\f015"; +} +.icon-file:before { + content: "\f016"; +} +.icon-time:before { + content: "\f017"; +} +.icon-road:before { + content: "\f018"; +} +.icon-download-alt:before { + content: "\f019"; +} +.icon-download:before { + content: "\f01a"; +} +.icon-upload:before { + content: "\f01b"; +} +.icon-inbox:before { + content: "\f01c"; +} +.icon-play-circle:before { + content: "\f01d"; +} +.icon-repeat:before { + content: "\f01e"; +} +/* \f020 doesn't work in Safari. all shifted one down */ +.icon-refresh:before { + content: "\f021"; +} +.icon-list-alt:before { + content: "\f022"; +} +.icon-lock:before { + content: "\f023"; +} +.icon-flag:before { + content: "\f024"; +} +.icon-headphones:before { + content: "\f025"; +} +.icon-volume-off:before { + content: "\f026"; +} +.icon-volume-down:before { + content: "\f027"; +} +.icon-volume-up:before { + content: "\f028"; +} +.icon-qrcode:before { + content: "\f029"; +} +.icon-barcode:before { + content: "\f02a"; +} +.icon-tag:before { + content: "\f02b"; +} +.icon-tags:before { + content: "\f02c"; +} +.icon-book:before { + content: "\f02d"; +} +.icon-bookmark:before { + content: "\f02e"; +} +.icon-print:before { + content: "\f02f"; +} +.icon-camera:before { + content: "\f030"; +} +.icon-font:before { + content: "\f031"; +} +.icon-bold:before { + content: "\f032"; +} +.icon-italic:before { + content: "\f033"; +} +.icon-text-height:before { + content: "\f034"; +} +.icon-text-width:before { + content: "\f035"; +} +.icon-align-left:before { + content: "\f036"; +} +.icon-align-center:before { + content: "\f037"; +} +.icon-align-right:before { + content: "\f038"; +} +.icon-align-justify:before { + content: "\f039"; +} +.icon-list:before { + content: "\f03a"; +} +.icon-indent-left:before { + content: "\f03b"; +} +.icon-indent-right:before { + content: "\f03c"; +} +.icon-facetime-video:before { + content: "\f03d"; +} +.icon-picture:before { + content: "\f03e"; +} +.icon-pencil:before { + content: "\f040"; +} +.icon-map-marker:before { + content: "\f041"; +} +.icon-adjust:before { + content: "\f042"; +} +.icon-tint:before { + content: "\f043"; +} +.icon-edit:before { + content: "\f044"; +} +.icon-share:before { + content: "\f045"; +} +.icon-check:before { + content: "\f046"; +} +.icon-move:before { + content: "\f047"; +} +.icon-step-backward:before { + content: "\f048"; +} +.icon-fast-backward:before { + content: "\f049"; +} +.icon-backward:before { + content: "\f04a"; +} +.icon-play:before { + content: "\f04b"; +} +.icon-pause:before { + content: "\f04c"; +} +.icon-stop:before { + content: "\f04d"; +} +.icon-forward:before { + content: "\f04e"; +} +.icon-fast-forward:before { + content: "\f050"; +} +.icon-step-forward:before { + content: "\f051"; +} +.icon-eject:before { + content: "\f052"; +} +.icon-chevron-left:before { + content: "\f053"; +} +.icon-chevron-right:before { + content: "\f054"; +} +.icon-plus-sign:before { + content: "\f055"; +} +.icon-minus-sign:before { + content: "\f056"; +} +.icon-remove-sign:before { + content: "\f057"; +} +.icon-ok-sign:before { + content: "\f058"; +} +.icon-question-sign:before { + content: "\f059"; +} +.icon-info-sign:before { + content: "\f05a"; +} +.icon-screenshot:before { + content: "\f05b"; +} +.icon-remove-circle:before { + content: "\f05c"; +} +.icon-ok-circle:before { + content: "\f05d"; +} +.icon-ban-circle:before { + content: "\f05e"; +} +.icon-arrow-left:before { + content: "\f060"; +} +.icon-arrow-right:before { + content: "\f061"; +} +.icon-arrow-up:before { + content: "\f062"; +} +.icon-arrow-down:before { + content: "\f063"; +} +.icon-share-alt:before { + content: "\f064"; +} +.icon-resize-full:before { + content: "\f065"; +} +.icon-resize-small:before { + content: "\f066"; +} +.icon-plus:before { + content: "\f067"; +} +.icon-minus:before { + content: "\f068"; +} +.icon-asterisk:before { + content: "\f069"; +} +.icon-exclamation-sign:before { + content: "\f06a"; +} +.icon-gift:before { + content: "\f06b"; +} +.icon-leaf:before { + content: "\f06c"; +} +.icon-fire:before { + content: "\f06d"; +} +.icon-eye-open:before { + content: "\f06e"; +} +.icon-eye-close:before { + content: "\f070"; +} +.icon-warning-sign:before { + content: "\f071"; +} +.icon-plane:before { + content: "\f072"; +} +.icon-calendar:before { + content: "\f073"; +} +.icon-random:before { + content: "\f074"; +} +.icon-comment:before { + content: "\f075"; +} +.icon-magnet:before { + content: "\f076"; +} +.icon-chevron-up:before { + content: "\f077"; +} +.icon-chevron-down:before { + content: "\f078"; +} +.icon-retweet:before { + content: "\f079"; +} +.icon-shopping-cart:before { + content: "\f07a"; +} +.icon-folder-close:before { + content: "\f07b"; +} +.icon-folder-open:before { + content: "\f07c"; +} +.icon-resize-vertical:before { + content: "\f07d"; +} +.icon-resize-horizontal:before { + content: "\f07e"; +} +.icon-bar-chart:before { + content: "\f080"; +} +.icon-twitter-sign:before { + content: "\f081"; +} +.icon-facebook-sign:before { + content: "\f082"; +} +.icon-camera-retro:before { + content: "\f083"; +} +.icon-key:before { + content: "\f084"; +} +.icon-cogs:before { + content: "\f085"; +} +.icon-comments:before { + content: "\f086"; +} +.icon-thumbs-up:before { + content: "\f087"; +} +.icon-thumbs-down:before { + content: "\f088"; +} +.icon-star-half:before { + content: "\f089"; +} +.icon-heart-empty:before { + content: "\f08a"; +} +.icon-signout:before { + content: "\f08b"; +} +.icon-linkedin-sign:before { + content: "\f08c"; +} +.icon-pushpin:before { + content: "\f08d"; +} +.icon-external-link:before { + content: "\f08e"; +} +.icon-signin:before { + content: "\f090"; +} +.icon-trophy:before { + content: "\f091"; +} +.icon-github-sign:before { + content: "\f092"; +} +.icon-upload-alt:before { + content: "\f093"; +} +.icon-lemon:before { + content: "\f094"; +} +.icon-phone:before { + content: "\f095"; +} +.icon-check-empty:before { + content: "\f096"; +} +.icon-bookmark-empty:before { + content: "\f097"; +} +.icon-phone-sign:before { + content: "\f098"; +} +.icon-twitter:before { + content: "\f099"; +} +.icon-facebook:before { + content: "\f09a"; +} +.icon-github:before { + content: "\f09b"; +} +.icon-unlock:before { + content: "\f09c"; +} +.icon-credit-card:before { + content: "\f09d"; +} +.icon-rss:before { + content: "\f09e"; +} +.icon-hdd:before { + content: "\f0a0"; +} +.icon-bullhorn:before { + content: "\f0a1"; +} +.icon-bell:before { + content: "\f0a2"; +} +.icon-certificate:before { + content: "\f0a3"; +} +.icon-hand-right:before { + content: "\f0a4"; +} +.icon-hand-left:before { + content: "\f0a5"; +} +.icon-hand-up:before { + content: "\f0a6"; +} +.icon-hand-down:before { + content: "\f0a7"; +} +.icon-circle-arrow-left:before { + content: "\f0a8"; +} +.icon-circle-arrow-right:before { + content: "\f0a9"; +} +.icon-circle-arrow-up:before { + content: "\f0aa"; +} +.icon-circle-arrow-down:before { + content: "\f0ab"; +} +.icon-globe:before { + content: "\f0ac"; +} +.icon-wrench:before { + content: "\f0ad"; +} +.icon-tasks:before { + content: "\f0ae"; +} +.icon-filter:before { + content: "\f0b0"; +} +.icon-briefcase:before { + content: "\f0b1"; +} +.icon-fullscreen:before { + content: "\f0b2"; +} +.icon-group:before { + content: "\f0c0"; +} +.icon-link:before { + content: "\f0c1"; +} +.icon-cloud:before { + content: "\f0c2"; +} +.icon-beaker:before { + content: "\f0c3"; +} +.icon-cut:before { + content: "\f0c4"; +} +.icon-copy:before { + content: "\f0c5"; +} +.icon-paper-clip:before { + content: "\f0c6"; +} +.icon-save:before { + content: "\f0c7"; +} +.icon-sign-blank:before { + content: "\f0c8"; +} +.icon-reorder:before { + content: "\f0c9"; +} +.icon-list-ul:before { + content: "\f0ca"; +} +.icon-list-ol:before { + content: "\f0cb"; +} +.icon-strikethrough:before { + content: "\f0cc"; +} +.icon-underline:before { + content: "\f0cd"; +} +.icon-table:before { + content: "\f0ce"; +} +.icon-magic:before { + content: "\f0d0"; +} +.icon-truck:before { + content: "\f0d1"; +} +.icon-pinterest:before { + content: "\f0d2"; +} +.icon-pinterest-sign:before { + content: "\f0d3"; +} +.icon-google-plus-sign:before { + content: "\f0d4"; +} +.icon-google-plus:before { + content: "\f0d5"; +} +.icon-money:before { + content: "\f0d6"; +} +.icon-caret-down:before { + content: "\f0d7"; +} +.icon-caret-up:before { + content: "\f0d8"; +} +.icon-caret-left:before { + content: "\f0d9"; +} +.icon-caret-right:before { + content: "\f0da"; +} +.icon-columns:before { + content: "\f0db"; +} +.icon-sort:before { + content: "\f0dc"; +} +.icon-sort-down:before { + content: "\f0dd"; +} +.icon-sort-up:before { + content: "\f0de"; +} +.icon-envelope-alt:before { + content: "\f0e0"; +} +.icon-linkedin:before { + content: "\f0e1"; +} +.icon-undo:before { + content: "\f0e2"; +} +.icon-legal:before { + content: "\f0e3"; +} +.icon-dashboard:before { + content: "\f0e4"; +} +.icon-comment-alt:before { + content: "\f0e5"; +} +.icon-comments-alt:before { + content: "\f0e6"; +} +.icon-bolt:before { + content: "\f0e7"; +} +.icon-sitemap:before { + content: "\f0e8"; +} +.icon-umbrella:before { + content: "\f0e9"; +} +.icon-paste:before { + content: "\f0ea"; +} +.icon-lightbulb:before { + content: "\f0eb"; +} +.icon-exchange:before { + content: "\f0ec"; +} +.icon-cloud-download:before { + content: "\f0ed"; +} +.icon-cloud-upload:before { + content: "\f0ee"; +} +.icon-user-md:before { + content: "\f0f0"; +} +.icon-stethoscope:before { + content: "\f0f1"; +} +.icon-suitcase:before { + content: "\f0f2"; +} +.icon-bell-alt:before { + content: "\f0f3"; +} +.icon-coffee:before { + content: "\f0f4"; +} +.icon-food:before { + content: "\f0f5"; +} +.icon-file-alt:before { + content: "\f0f6"; +} +.icon-building:before { + content: "\f0f7"; +} +.icon-hospital:before { + content: "\f0f8"; +} +.icon-ambulance:before { + content: "\f0f9"; +} +.icon-medkit:before { + content: "\f0fa"; +} +.icon-fighter-jet:before { + content: "\f0fb"; +} +.icon-beer:before { + content: "\f0fc"; +} +.icon-h-sign:before { + content: "\f0fd"; +} +.icon-plus-sign-alt:before { + content: "\f0fe"; +} +.icon-double-angle-left:before { + content: "\f100"; +} +.icon-double-angle-right:before { + content: "\f101"; +} +.icon-double-angle-up:before { + content: "\f102"; +} +.icon-double-angle-down:before { + content: "\f103"; +} +.icon-angle-left:before { + content: "\f104"; +} +.icon-angle-right:before { + content: "\f105"; +} +.icon-angle-up:before { + content: "\f106"; +} +.icon-angle-down:before { + content: "\f107"; +} +.icon-desktop:before { + content: "\f108"; +} +.icon-laptop:before { + content: "\f109"; +} +.icon-tablet:before { + content: "\f10a"; +} +.icon-mobile-phone:before { + content: "\f10b"; +} +.icon-circle-blank:before { + content: "\f10c"; +} +.icon-quote-left:before { + content: "\f10d"; +} +.icon-quote-right:before { + content: "\f10e"; +} +.icon-spinner:before { + content: "\f110"; +} +.icon-circle:before { + content: "\f111"; +} +.icon-reply:before { + content: "\f112"; +} +.icon-github-alt:before { + content: "\f113"; +} +.icon-folder-close-alt:before { + content: "\f114"; +} +.icon-folder-open-alt:before { + content: "\f115"; +} +/*! + * Font Awesome 3.0.2 + * the iconic font designed for use with Twitter Bootstrap + * ------------------------------------------------------- + * The full suite of pictographic icons, examples, and documentation + * can be found at: http://fortawesome.github.com/Font-Awesome/ + * + * License + * ------------------------------------------------------- + * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - + * http://opensource.org/licenses/mit-license.html + * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" + + * Contact + * ------------------------------------------------------- + * Email: dave@davegandy.com + * Twitter: http://twitter.com/fortaweso_me + * Work: Lead Product Designer @ http://kyruus.com + */ +.icon-large { + font-size: 1.3333333333333333em; + margin-top: -4px; + padding-top: 3px; + margin-bottom: -4px; + padding-bottom: 3px; + vertical-align: middle; +} +.nav [class^="icon-"], +.nav [class*=" icon-"] { + vertical-align: inherit; + margin-top: -4px; + padding-top: 3px; + margin-bottom: -4px; + padding-bottom: 3px; +} +.nav [class^="icon-"].icon-large, +.nav [class*=" icon-"].icon-large { + vertical-align: -25%; +} +.nav-pills [class^="icon-"].icon-large, +.nav-tabs [class^="icon-"].icon-large, +.nav-pills [class*=" icon-"].icon-large, +.nav-tabs [class*=" icon-"].icon-large { + line-height: .75em; + margin-top: -7px; + padding-top: 5px; + margin-bottom: -5px; + padding-bottom: 4px; +} +.btn [class^="icon-"].pull-left, +.btn [class*=" icon-"].pull-left, +.btn [class^="icon-"].pull-right, +.btn [class*=" icon-"].pull-right { + vertical-align: inherit; +} +.btn [class^="icon-"].icon-large, +.btn [class*=" icon-"].icon-large { + margin-top: -0.5em; +} +a [class^="icon-"], +a [class*=" icon-"] { + cursor: pointer; +} +ul.icons { + text-indent: -1.5em; + margin-left: 3em; +} +.icon-glass { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-music { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-search { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-envelope { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-heart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-user { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-film { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th-large { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-th-list { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-zoom-in { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-zoom-out { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cog { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-trash { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-home { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-file { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-time { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-road { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-download-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-download { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-upload { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-inbox { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-play-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-repeat { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-refresh { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lock { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-flag { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-headphones { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-off { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-volume-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-qrcode { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-barcode { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tag { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tags { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-book { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bookmark { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-print { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-camera { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-font { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bold { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-italic { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-text-height { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-text-width { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-center { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-align-justify { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-indent-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-indent-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facetime-video { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-picture { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pencil { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-map-marker { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-adjust { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tint { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-edit { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-share { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-move { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-step-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fast-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-backward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-play { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pause { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-stop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fast-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-step-forward { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eject { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-minus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-question-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-info-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-screenshot { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-remove-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ok-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ban-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-arrow-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-share-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-full { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-small { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-minus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-asterisk { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-exclamation-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-gift { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-leaf { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fire { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eye-open { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-eye-close { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-warning-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plane { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-calendar { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-random { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comment { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-magnet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-chevron-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-retweet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-shopping-cart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-close { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-open { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-vertical { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-resize-horizontal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bar-chart { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-twitter-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facebook-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-camera-retro { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-key { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cogs { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comments { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-thumbs-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-thumbs-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-star-half { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-heart-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signout { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-linkedin-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pushpin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-external-link { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-signin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-trophy { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-github-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-upload-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lemon { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-phone { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-check-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bookmark-empty { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-phone-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-twitter { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-facebook { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-github { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-unlock { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-credit-card { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-rss { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hdd { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bullhorn { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bell { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-certificate { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hand-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-arrow-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-globe { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-wrench { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tasks { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-filter { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-briefcase { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fullscreen { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-group { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-link { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-beaker { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cut { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-copy { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-paper-clip { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-save { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sign-blank { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-reorder { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-ul { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-list-ol { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-strikethrough { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-underline { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-table { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-magic { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-truck { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pinterest { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-pinterest-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-google-plus-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-google-plus { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-money { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-caret-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-columns { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sort-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-envelope-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-linkedin { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-undo { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-legal { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-dashboard { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comment-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-comments-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bolt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-sitemap { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-umbrella { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-paste { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-lightbulb { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-exchange { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud-download { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-cloud-upload { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-user-md { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-stethoscope { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-suitcase { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-bell-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-coffee { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-food { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-file-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-building { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-hospital { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-ambulance { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-medkit { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-fighter-jet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-beer { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-h-sign { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-plus-sign-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-double-angle-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-up { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-angle-down { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-desktop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-laptop { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-tablet { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-mobile-phone { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle-blank { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-quote-left { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-quote-right { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-spinner { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-circle { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-reply { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-github-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-close-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.icon-folder-open-alt { + *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ''); +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle { + *margin-bottom: -3px; +} +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + text-decoration: none; + color: #ffffff; + background-color: #0081c2; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #0081c2; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: default; +} +.open { + *z-index: 1000; +} +.open > .dropdown-menu { + display: block; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; +} +.dropdown-submenu > a:after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #cccccc; + margin-top: 5px; + margin-right: -10px; +} +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} +.dropdown-submenu.pull-left { + float: none; +} +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; +} +.dropdown .dropdown-menu .nav-header { + padding-left: 20px; + padding-right: 20px; +} +.typeahead { + z-index: 1051; + margin-top: 2px; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-large { + padding: 24px; +} +.well-small { + padding: 9px; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} +.collapse.in { + height: auto; +} +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.btn { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + padding: 4px 12px; + margin-bottom: 0; + font-size: 14px; + line-height: 20px; + text-align: center; + vertical-align: middle; + cursor: pointer; + color: #333333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #f5f5f5; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #e6e6e6; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + border: 1px solid #cccccc; + *border: 0; + border-bottom-color: #b3b3b3; + *margin-left: .3em; +} +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} +.btn:active, +.btn.active { + background-color: #cccccc \9; +} +.btn:first-child { + *margin-left: 0; +} +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; +} +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, +.btn:active { + background-image: none; + outline: 0; +} +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); +} +.btn-large { + padding: 11px 19px; + font-size: 17.5px; +} +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} +.btn-small { + padding: 2px 10px; + font-size: 11.9px; +} +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} +.btn-mini { + padding: 0 6px; + font-size: 10.5px; +} +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #0044cc; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #f89406; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #bd362f; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #51a351; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #2f96b4; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #222222; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; +} +.btn-link { + border-color: transparent; + cursor: pointer; + color: #0088cc; +} +.btn-link:hover, +.btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} +.btn-group { + position: relative; + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + font-size: 0; + vertical-align: middle; + white-space: nowrap; + *margin-left: .3em; +} +.btn-group:first-child { + *margin-left: 0; +} +.btn-group + .btn-group { + margin-left: 5px; +} +.btn-toolbar { + font-size: 0; + margin-top: 10px; + margin-bottom: 10px; +} +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} +.btn-group > .btn { + position: relative; +} +.btn-group > .btn + .btn { + margin-left: -1px; +} +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} +.btn-group > .btn-mini { + font-size: 10.5px; +} +.btn-group > .btn-small { + font-size: 11.9px; +} +.btn-group > .btn-large { + font-size: 17.5px; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn.large:first-child { + margin-left: 0; +} +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + *padding-top: 5px; + *padding-bottom: 5px; +} +.btn-group > .btn-mini + .dropdown-toggle { + padding-left: 5px; + padding-right: 5px; + *padding-top: 2px; + *padding-bottom: 2px; +} +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} +.btn-group > .btn-large + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; + *padding-top: 7px; + *padding-bottom: 7px; +} +.btn-group.open .dropdown-toggle { + background-image: none; +} +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} +.btn .caret { + margin-top: 8px; + margin-left: 0; +} +.btn-large .caret { + margin-top: 6px; +} +.btn-large .caret { + border-left-width: 5px; + border-right-width: 5px; + border-top-width: 5px; +} +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} +.dropup .btn-large .caret { + border-bottom-width: 5px; +} +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; +} +.btn-group-vertical > .btn + .btn { + margin-left: 0; + margin-top: -1px; +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; +} +.alert, +.alert h4 { + color: #c09853; +} +.alert h4 { + margin: 0; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.alert-success h4 { + color: #468847; +} +.alert-danger, +.alert-error { + background-color: #f2dede; + border-color: #eed3d7; + color: #b94a48; +} +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.alert-info h4 { + color: #3a87ad; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} +.nav { + margin-left: 0; + margin-bottom: 20px; + list-style: none; +} +.nav > li > a { + display: block; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.nav > li > a > img { + max-width: none; +} +.nav > .pull-right { + float: right; +} +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} +.nav li + .nav-header { + margin-top: 9px; +} +.nav-list { + padding-left: 15px; + padding-right: 15px; + margin-bottom: 0; +} +.nav-list > li > a, +.nav-list .nav-header { + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.nav-list > li > a { + padding: 3px 15px; +} +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} +.nav-tabs, +.nav-pills { + *zoom: 1; +} +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; + line-height: 0; +} +.nav-tabs:after, +.nav-pills:after { + clear: both; +} +.nav-tabs > li, +.nav-pills > li { + float: left; +} +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + margin-bottom: -1px; +} +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; +} +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; +} +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #0088cc; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; +} +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + border-color: #ddd; + z-index: 2; +} +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} +.nav .dropdown-toggle .caret { + border-top-color: #0088cc; + border-bottom-color: #0088cc; + margin-top: 6px; +} +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} +/* move down carets for tabs */ +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} +.tabbable { + *zoom: 1; +} +.tabbable:before, +.tabbable:after { + display: table; + content: ""; + line-height: 0; +} +.tabbable:after { + clear: both; +} +.tab-content { + overflow: auto; +} +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .active, +.pill-content > .active { + display: block; +} +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; +} +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; +} +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} +.nav > .disabled > a { + color: #999999; +} +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + cursor: default; +} +.navbar { + overflow: visible; + margin-bottom: 20px; + *position: relative; + *z-index: 2; +} +.navbar-inner { + min-height: 40px; + padding-left: 20px; + padding-right: 20px; + background-color: #fafafa; + border: 1px solid #d4d4d4; + *zoom: 1; +} +.navbar-inner:before, +.navbar-inner:after { + display: table; + content: ""; + line-height: 0; +} +.navbar-inner:after { + clear: both; +} +.navbar .container { + width: auto; +} +.nav-collapse.collapse { + height: auto; + overflow: visible; +} +.navbar .brand { + float: left; + display: block; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} +.navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #777777; +} +.navbar-link { + color: #777777; +} +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} +.navbar .divider-vertical { + height: 50px; + margin: 0 9px; + border-left: 1px solid #f2f2f2; + border-right: 1px solid #ffffff; +} +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} +.navbar-form:before, +.navbar-form:after { + display: table; + content: ""; + line-height: 0; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} +.navbar-search .search-query { + margin-bottom: 0; + padding: 4px 14px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; +} +.navbar-static-top { + position: static; + margin-bottom: 0; +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-left: 0; + padding-right: 0; +} +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-bottom { + bottom: 0; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; + padding-top:35px; +} +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} +.navbar .nav > li { + float: left; +} +.navbar .nav > li > a { + float: none; + padding: 16px 6px 14px; + color: #ffffff; + font-family: 'Telex', sans-serif; + text-decoration: none; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2); +} +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + background-color: transparent; + color: #333333; + text-decoration: none; +} +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; +} +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #e5e5e5; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} +.navbar .nav > li > .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.navbar .nav > li > .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + border-top: 7px solid #ccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; + bottom: -7px; + top: auto; +} +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + border-top: 6px solid #ffffff; + border-bottom: 0; + bottom: -6px; + top: auto; +} +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #e5e5e5; + color: #555555; +} +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + left: auto; + right: 12px; +} +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + left: auto; + right: 13px; +} +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + left: auto; + right: 100%; + margin-left: 0; + margin-right: -1px; +} +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + border-color: #252525; +} +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} +.navbar-inverse .brand { + color: #999999; +} +.navbar-inverse .navbar-text { + color: #999999; +} +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + background-color: transparent; + color: #ffffff; +} +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} +.navbar-inverse .navbar-link { + color: #999999; +} +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} +.navbar-inverse .divider-vertical { + border-left-color: #111111; + border-right-color: #222222; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #111111; + color: #ffffff; +} +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; +} +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #040404; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; +} +.breadcrumb > li { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} +.breadcrumb > .active { + color: #999999; +} +.pagination { + margin: 20px 0; +} +.pagination ul { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; + margin-left: 0; + margin-bottom: 0; +} +.pagination ul > li { + display: inline; +} +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + background-color: transparent; + cursor: default; +} +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} +.pager { + margin: 20px 0; + list-style: none; + text-align: center; + *zoom: 1; +} +.pager:before, +.pager:after { + display: table; + content: ""; + line-height: 0; +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + background-color: #fff; + cursor: default; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; + outline: none; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 10%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-header h3 { + margin: 0; + line-height: 30px; +} +.modal-body { + position: relative; + overflow-y: auto; + max-height: 400px; + padding: 15px; +} +.modal-form { + margin-bottom: 0; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + *zoom: 1; +} +.modal-footer:before, +.modal-footer:after { + display: table; + content: ""; + line-height: 0; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.tooltip { + position: absolute; + z-index: 1030; + display: block; + visibility: visible; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #ffffff; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; +} +.popover-title:empty { + display: none; +} +.popover-content { + padding: 9px 14px; +} +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow { + border-width: 11px; +} +.popover .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right .arrow:after { + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.popover.bottom .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left .arrow:after { + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; +} +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} +.thumbnails:before, +.thumbnails:after { + display: table; + content: ""; + line-height: 0; +} +.thumbnails:after { + clear: both; +} +.row-fluid .thumbnails { + margin-left: 0; +} +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #0088cc; +} +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; + color: #555555; +} +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} +.media, +.media .media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media-object { + display: block; +} +.media-heading { + margin: 0 0 5px; +} +.media > .pull-left { + margin-right: 10px; +} +.media > .pull-right { + margin-left: 10px; +} +.media-list { + margin-left: 0; + list-style: none; +} +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + vertical-align: baseline; + white-space: nowrap; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #999999; +} +.badge { + padding-left: 9px; + padding-right: 9px; +} +.label:empty, +.badge:empty { + display: none; +} +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.label-important, +.badge-important { + background-color: #b94a48; +} +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} +.label-warning, +.badge-warning { + background-color: #f89406; +} +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} +.label-success, +.badge-success { + background-color: #468847; +} +.label-success[href], +.badge-success[href] { + background-color: #356635; +} +.label-info, +.badge-info { + background-color: #3a87ad; +} +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} +.label-inverse, +.badge-inverse { + background-color: #333333; +} +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} +.btn-mini .label, +.btn-mini .badge { + top: 0; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f7f7f7; +} +.progress .bar { + width: 0%; + height: 100%; + color: #ffffff; + float: left; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .bar { + background-color: #149bdf; + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; +} +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; +} +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; +} +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; +} +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; +} +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; +} +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; +} +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; +} +.accordion { + margin-bottom: 20px; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-toggle { + cursor: pointer; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.carousel-inner > .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + left: auto; + right: 15px; +} +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); +} +.carousel-indicators .active { + background-color: #fff; +} +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, +.carousel-caption p { + color: #ffffff; + line-height: 20px; +} +.carousel-caption h4 { + margin: 0 0 5px; +} +.carousel-caption p { + margin-bottom: 0; +} +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + color: inherit; + letter-spacing: -1px; +} +.hero-unit li { + line-height: 30px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} +.affix { + position: fixed; +} diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap.min.css b/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap.min.css new file mode 100644 index 00000000..47caebbb --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_flat/bootstrap.min.css @@ -0,0 +1,858 @@ +/*!* Bootstrap v2.3.1 * * Copyright 2012 Twitter,Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */ .clearfix{*zoom:1;} +.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}audio:not([controls]){display:none;} +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +a:hover,a:active{outline:0;}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} +sup{top:-0.5em;}sub{bottom:-0.25em;}img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;} +#map_canvas img,.google-maps img{max-width:none;}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} +button,input{*overflow:visible;line-height:normal;}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} +button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;} +label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer;} +input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;} +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important;} +a,a:visited{text-decoration:underline;}a[href]:after{content:"(" attr(href) ")";} +abbr[title]:after{content:"(" attr(title) ")";}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} +pre,blockquote{border:1px solid #999;page-break-inside:avoid;}thead{display:table-header-group;} +tr,img{page-break-inside:avoid;}img{max-width:100%!important;}@page{margin:.5cm;} +p,h2,h3{orphans:3;widows:3;}h2,h3{page-break-after:avoid;}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff;} +a{color:#08c;text-decoration:none;}a:hover,a:focus{color:#005580;text-decoration:underline;} +.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);} +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} +.row:after{clear:both;}[class*="span"]{float:left;min-height:1px;margin-left:20px;} +.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.span12{width:940px;}.span11{width:860px;}.span10{width:780px;}.span9{width:700px;} +.span8{width:620px;}.span7{width:540px;}.span6{width:460px;}.span5{width:380px;} +.span4{width:300px;}.span3{width:220px;}.span2{width:140px;}.span1{width:60px;}.offset12{margin-left:980px;} +.offset11{margin-left:900px;}.offset10{margin-left:820px;}.offset9{margin-left:740px;} +.offset8{margin-left:660px;}.offset7{margin-left:580px;}.offset6{margin-left:500px;} +.offset5{margin-left:420px;}.offset4{margin-left:340px;}.offset3{margin-left:260px;} +.offset2{margin-left:180px;}.offset1{margin-left:100px;}.row-fluid{width:100%;*zoom:1;} +.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}.row-fluid:after{clear:both;} +.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;} +.row-fluid [class*="span"]:first-child{margin-left:0;}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;} +.row-fluid .span12{width:100%;*width:99.94680851063829%;}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;} +.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;} +.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;} +.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;} +.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;} +.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;} +.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;} +.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;} +.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;} +.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;} +.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;} +.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;} +.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;} +.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;} +.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;} +.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;} +.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;} +.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;} +.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;} +.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;} +.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;} +.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;} +.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;} +.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;} +.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;} +.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;} +.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;} +.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;} +.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;} +.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;} +[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;} +.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;} +.container:after{clear:both;}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;} +.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;} +.container-fluid:after{clear:both;}p{margin:0 0 10px;}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px;} +small{font-size:85%;}strong{font-weight:bold;}em{font-style:italic;}cite{font-style:normal;} +.muted{color:#999;}a.muted:hover,a.muted:focus{color:#808080;}.text-warning{color:#c09853;} +a.text-warning:hover,a.text-warning:focus{color:#a47e3c;}.text-error{color:#b94a48;} +a.text-error:hover,a.text-error:focus{color:#953b39;}.text-info{color:#3a87ad;}a.text-info:hover,a.text-info:focus{color:#2d6987;} +.text-success{color:#468847;}a.text-success:hover,a.text-success:focus{color:#356635;} +.text-left{text-align:left;}.text-right{text-align:right;}.text-center{text-align:center;} +h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;} +h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999;} +h1,h2,h3{line-height:40px;}h1{font-size:38.5px;}h2{font-size:31.5px;}h3{font-size:24.5px;} +h4{font-size:17.5px;}h5{font-size:14px;}h6{font-size:11.9px;}h1 small{font-size:24.5px;} +h2 small{font-size:17.5px;}h3 small{font-size:14px;}h4 small{font-size:14px;}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee;} +ul,ol{padding:0;margin:0 0 10px 25px;}ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}li{line-height:20px;} +ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}ul.inline,ol.inline{margin-left:0;list-style:none;} +ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px;} +dl{margin-bottom:20px;}dt,dd{line-height:20px;}dt{font-weight:bold;}dd{margin-left:10px;} +.dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;} +.dl-horizontal:after{clear:both;}.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} +.dl-horizontal dd{margin-left:180px;}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff;} +abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999;} +abbr.initialism{font-size:90%;text-transform:uppercase;}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee;} +blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25;} +blockquote small{display:block;line-height:20px;color:#999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;} +blockquote.pull-right p,blockquote.pull-right small{text-align:right;}blockquote.pull-right small:before{content:'';} +blockquote.pull-right small:after{content:'\00A0 \2014';}q:before,q:after,blockquote:before,blockquote:after{content:"";} +address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;} +code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;} +pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);} +pre.prettyprint{margin-bottom:20px;}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;} +.pre-scrollable{max-height:340px;overflow-y:scroll;}form{margin:0 0 20px;}fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5;} +legend small{font-size:15px;color:#999;}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px;} +input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;} +label{display:block;margin-bottom:5px;}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;} +input,textarea,.uneditable-input{width:206px;}textarea{height:auto;}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;} +textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;} +input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;} +input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;} +select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;}select{width:220px;border:1px solid #ccc;background-color:#fff;} +select[multiple],select[size]{height:auto;}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;cursor:not-allowed;} +.uneditable-input{overflow:hidden;white-space:nowrap;}.uneditable-textarea{width:auto;height:auto;} +input:-moz-placeholder,textarea:-moz-placeholder{color:#999;}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999;} +input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999;} +.radio,.checkbox{min-height:20px;padding-left:20px;}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;} +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;} +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} +.input-mini{width:60px;}.input-small{width:90px;}.input-medium{width:150px;}.input-large{width:210px;} +.input-xlarge{width:270px;}.input-xxlarge{width:530px;}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;} +.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;} +input,textarea,.uneditable-input{margin-left:0;}.controls-row [class*="span"]+[class*="span"]{margin-left:20px;} +input.span12,textarea.span12,.uneditable-input.span12{width:926px;}input.span11,textarea.span11,.uneditable-input.span11{width:846px;} +input.span10,textarea.span10,.uneditable-input.span10{width:766px;}input.span9,textarea.span9,.uneditable-input.span9{width:686px;} +input.span8,textarea.span8,.uneditable-input.span8{width:606px;}input.span7,textarea.span7,.uneditable-input.span7{width:526px;} +input.span6,textarea.span6,.uneditable-input.span6{width:446px;}input.span5,textarea.span5,.uneditable-input.span5{width:366px;} +input.span4,textarea.span4,.uneditable-input.span4{width:286px;}input.span3,textarea.span3,.uneditable-input.span3{width:206px;} +input.span2,textarea.span2,.uneditable-input.span2{width:126px;}input.span1,textarea.span1,.uneditable-input.span1{width:46px;} +.controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;} +.controls-row:after{clear:both;}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;} +.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee;} +input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;} +.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} +.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;} +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} +.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} +.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;} +.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} +.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} +.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;} +.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} +.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;} +.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;} +.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;} +input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b;} +input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;} +.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;} +.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;} +.form-actions:after{clear:both;}.help-block,.help-inline{color:#595959;}.help-block{display:block;margin-bottom:10px;} +.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;} +.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap;} +.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px;} +.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;} +.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;} +.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc;} +.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;} +.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;} +.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;} +.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;} +.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;} +.input-prepend.input-append .btn-group:first-child{margin-left:0;}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;} +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;} +.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;} +.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;} +.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;} +.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;} +.control-group{margin-bottom:10px;}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;} +.form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;} +.form-horizontal .control-group:after{clear:both;}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;} +.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;} +.form-horizontal .controls:first-child{*padding-left:180px;}.form-horizontal .help-block{margin-bottom:0;} +.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px;} +.form-horizontal .form-actions{padding-left:180px;}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;} +.table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd;} +.table th{font-weight:bold;}.table thead th{vertical-align:bottom;}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;} +.table tbody+tbody{border-top:2px solid #ddd;}.table .table{background-color:#fff;} +.table-condensed th,.table-condensed td{padding:4px 5px;}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;} +.table-bordered th,.table-bordered td{border-left:1px solid #ddd;}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;} +.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5;} +table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;} +.table td.span1,.table th.span1{float:none;width:44px;margin-left:0;}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0;} +.table td.span3,.table th.span3{float:none;width:204px;margin-left:0;}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0;} +.table td.span5,.table th.span5{float:none;width:364px;margin-left:0;}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0;} +.table td.span7,.table th.span7{float:none;width:524px;margin-left:0;}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0;} +.table td.span9,.table th.span9{float:none;width:684px;margin-left:0;}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0;} +.table td.span11,.table th.span11{float:none;width:844px;margin-left:0;}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0;} +.table tbody tr.success>td{background-color:#dff0d8;}.table tbody tr.error>td{background-color:#f2dede;} +.table tbody tr.warning>td{background-color:#fcf8e3;}.table tbody tr.info>td{background-color:#d9edf7;} +.table-hover tbody tr.success:hover>td{background-color:#d0e9c6;}.table-hover tbody tr.error:hover>td{background-color:#ebcccc;} +.table-hover tbody tr.warning:hover>td{background-color:#faf2cc;}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3;} +/*!* Font Awesome 3.0.2 * the iconic font designed for use with Twitter Bootstrap * ------------------------------------------------------- * The full suite of pictographic icons,examples,and documentation * can be found at:http://fortawesome.github.com/Font-Awesome/ * * License * ------------------------------------------------------- * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL * - Font Awesome CSS,LESS,and SASS files are licensed under the MIT License - * http://opensource.org/licenses/mit-license.html * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ * - Attribution is no longer required in Font Awesome 3.0,but much appreciated:* "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" * Contact * ------------------------------------------------------- * Email:dave@davegandy.com * Twitter:http://twitter.com/fortaweso_me * Work:Lead Product Designer @ http://kyruus.com */ @font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.0.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.0.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.0.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.0.1') format('truetype');font-weight:normal;font-style:normal;} +[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat;margin-top:0;} +.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;} +[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;} +a [class^="icon-"],a [class*=" icon-"]{display:inline-block;}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;} +.btn [class^="icon-"],.nav [class^="icon-"],.btn [class*=" icon-"],.nav [class*=" icon-"]{display:inline;} +.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;} +.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;} +.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;} +li [class^="icon-"],.nav li [class^="icon-"],li [class*=" icon-"],.nav li [class*=" icon-"]{display:inline-block;width:1.25em;text-align:center;} +li [class^="icon-"].icon-large,.nav li [class^="icon-"].icon-large,li [class*=" icon-"].icon-large,.nav li [class*=" icon-"].icon-large{width:1.5625em;} +ul.icons{list-style-type:none;text-indent:-0.75em;}ul.icons li [class^="icon-"],ul.icons li [class*=" icon-"]{width:.75em;} +.icon-muted{color:#eee;}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.pull-right{float:right;}.pull-left{float:left;}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;} +[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;}.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;} +.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;} +.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;} +.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;} +.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;} +.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;} +.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;} +@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);}100%{-moz-transform:rotate(359deg);} +}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);} +}@-o-keyframes spin{0%{-o-transform:rotate(0deg);}100%{-o-transform:rotate(359deg);} +}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);}100%{-ms-transform:rotate(359deg);} +}@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(359deg);}}@-moz-document url-prefix(){.icon-spin{height:.9em;} +.btn .icon-spin{height:auto;}.icon-spin.icon-large{height:1.25em;}.btn .icon-spin.icon-large{height:.75em;} +}.icon-glass:before{content:"\f000";}.icon-music:before{content:"\f001";}.icon-search:before{content:"\f002";} +.icon-envelope:before{content:"\f003";}.icon-heart:before{content:"\f004";}.icon-star:before{content:"\f005";} +.icon-star-empty:before{content:"\f006";}.icon-user:before{content:"\f007";}.icon-film:before{content:"\f008";} +.icon-th-large:before{content:"\f009";}.icon-th:before{content:"\f00a";}.icon-th-list:before{content:"\f00b";} +.icon-ok:before{content:"\f00c";}.icon-remove:before{content:"\f00d";}.icon-zoom-in:before{content:"\f00e";} +.icon-zoom-out:before{content:"\f010";}.icon-off:before{content:"\f011";}.icon-signal:before{content:"\f012";} +.icon-cog:before{content:"\f013";}.icon-trash:before{content:"\f014";}.icon-home:before{content:"\f015";} +.icon-file:before{content:"\f016";}.icon-time:before{content:"\f017";}.icon-road:before{content:"\f018";} +.icon-download-alt:before{content:"\f019";}.icon-download:before{content:"\f01a";} +.icon-upload:before{content:"\f01b";}.icon-inbox:before{content:"\f01c";}.icon-play-circle:before{content:"\f01d";} +.icon-repeat:before{content:"\f01e";}.icon-refresh:before{content:"\f021";}.icon-list-alt:before{content:"\f022";} +.icon-lock:before{content:"\f023";}.icon-flag:before{content:"\f024";}.icon-headphones:before{content:"\f025";} +.icon-volume-off:before{content:"\f026";}.icon-volume-down:before{content:"\f027";} +.icon-volume-up:before{content:"\f028";}.icon-qrcode:before{content:"\f029";}.icon-barcode:before{content:"\f02a";} +.icon-tag:before{content:"\f02b";}.icon-tags:before{content:"\f02c";}.icon-book:before{content:"\f02d";} +.icon-bookmark:before{content:"\f02e";}.icon-print:before{content:"\f02f";}.icon-camera:before{content:"\f030";} +.icon-font:before{content:"\f031";}.icon-bold:before{content:"\f032";}.icon-italic:before{content:"\f033";} +.icon-text-height:before{content:"\f034";}.icon-text-width:before{content:"\f035";} +.icon-align-left:before{content:"\f036";}.icon-align-center:before{content:"\f037";} +.icon-align-right:before{content:"\f038";}.icon-align-justify:before{content:"\f039";} +.icon-list:before{content:"\f03a";}.icon-indent-left:before{content:"\f03b";}.icon-indent-right:before{content:"\f03c";} +.icon-facetime-video:before{content:"\f03d";}.icon-picture:before{content:"\f03e";} +.icon-pencil:before{content:"\f040";}.icon-map-marker:before{content:"\f041";}.icon-adjust:before{content:"\f042";} +.icon-tint:before{content:"\f043";}.icon-edit:before{content:"\f044";}.icon-share:before{content:"\f045";} +.icon-check:before{content:"\f046";}.icon-move:before{content:"\f047";}.icon-step-backward:before{content:"\f048";} +.icon-fast-backward:before{content:"\f049";}.icon-backward:before{content:"\f04a";} +.icon-play:before{content:"\f04b";}.icon-pause:before{content:"\f04c";}.icon-stop:before{content:"\f04d";} +.icon-forward:before{content:"\f04e";}.icon-fast-forward:before{content:"\f050";} +.icon-step-forward:before{content:"\f051";}.icon-eject:before{content:"\f052";}.icon-chevron-left:before{content:"\f053";} +.icon-chevron-right:before{content:"\f054";}.icon-plus-sign:before{content:"\f055";} +.icon-minus-sign:before{content:"\f056";}.icon-remove-sign:before{content:"\f057";} +.icon-ok-sign:before{content:"\f058";}.icon-question-sign:before{content:"\f059";} +.icon-info-sign:before{content:"\f05a";}.icon-screenshot:before{content:"\f05b";} +.icon-remove-circle:before{content:"\f05c";}.icon-ok-circle:before{content:"\f05d";} +.icon-ban-circle:before{content:"\f05e";}.icon-arrow-left:before{content:"\f060";} +.icon-arrow-right:before{content:"\f061";}.icon-arrow-up:before{content:"\f062";} +.icon-arrow-down:before{content:"\f063";}.icon-share-alt:before{content:"\f064";} +.icon-resize-full:before{content:"\f065";}.icon-resize-small:before{content:"\f066";} +.icon-plus:before{content:"\f067";}.icon-minus:before{content:"\f068";}.icon-asterisk:before{content:"\f069";} +.icon-exclamation-sign:before{content:"\f06a";}.icon-gift:before{content:"\f06b";} +.icon-leaf:before{content:"\f06c";}.icon-fire:before{content:"\f06d";}.icon-eye-open:before{content:"\f06e";} +.icon-eye-close:before{content:"\f070";}.icon-warning-sign:before{content:"\f071";} +.icon-plane:before{content:"\f072";}.icon-calendar:before{content:"\f073";}.icon-random:before{content:"\f074";} +.icon-comment:before{content:"\f075";}.icon-magnet:before{content:"\f076";}.icon-chevron-up:before{content:"\f077";} +.icon-chevron-down:before{content:"\f078";}.icon-retweet:before{content:"\f079";} +.icon-shopping-cart:before{content:"\f07a";}.icon-folder-close:before{content:"\f07b";} +.icon-folder-open:before{content:"\f07c";}.icon-resize-vertical:before{content:"\f07d";} +.icon-resize-horizontal:before{content:"\f07e";}.icon-bar-chart:before{content:"\f080";} +.icon-twitter-sign:before{content:"\f081";}.icon-facebook-sign:before{content:"\f082";} +.icon-camera-retro:before{content:"\f083";}.icon-key:before{content:"\f084";}.icon-cogs:before{content:"\f085";} +.icon-comments:before{content:"\f086";}.icon-thumbs-up:before{content:"\f087";}.icon-thumbs-down:before{content:"\f088";} +.icon-star-half:before{content:"\f089";}.icon-heart-empty:before{content:"\f08a";} +.icon-signout:before{content:"\f08b";}.icon-linkedin-sign:before{content:"\f08c";} +.icon-pushpin:before{content:"\f08d";}.icon-external-link:before{content:"\f08e";} +.icon-signin:before{content:"\f090";}.icon-trophy:before{content:"\f091";}.icon-github-sign:before{content:"\f092";} +.icon-upload-alt:before{content:"\f093";}.icon-lemon:before{content:"\f094";}.icon-phone:before{content:"\f095";} +.icon-check-empty:before{content:"\f096";}.icon-bookmark-empty:before{content:"\f097";} +.icon-phone-sign:before{content:"\f098";}.icon-twitter:before{content:"\f099";}.icon-facebook:before{content:"\f09a";} +.icon-github:before{content:"\f09b";}.icon-unlock:before{content:"\f09c";}.icon-credit-card:before{content:"\f09d";} +.icon-rss:before{content:"\f09e";}.icon-hdd:before{content:"\f0a0";}.icon-bullhorn:before{content:"\f0a1";} +.icon-bell:before{content:"\f0a2";}.icon-certificate:before{content:"\f0a3";}.icon-hand-right:before{content:"\f0a4";} +.icon-hand-left:before{content:"\f0a5";}.icon-hand-up:before{content:"\f0a6";}.icon-hand-down:before{content:"\f0a7";} +.icon-circle-arrow-left:before{content:"\f0a8";}.icon-circle-arrow-right:before{content:"\f0a9";} +.icon-circle-arrow-up:before{content:"\f0aa";}.icon-circle-arrow-down:before{content:"\f0ab";} +.icon-globe:before{content:"\f0ac";}.icon-wrench:before{content:"\f0ad";}.icon-tasks:before{content:"\f0ae";} +.icon-filter:before{content:"\f0b0";}.icon-briefcase:before{content:"\f0b1";}.icon-fullscreen:before{content:"\f0b2";} +.icon-group:before{content:"\f0c0";}.icon-link:before{content:"\f0c1";}.icon-cloud:before{content:"\f0c2";} +.icon-beaker:before{content:"\f0c3";}.icon-cut:before{content:"\f0c4";}.icon-copy:before{content:"\f0c5";} +.icon-paper-clip:before{content:"\f0c6";}.icon-save:before{content:"\f0c7";}.icon-sign-blank:before{content:"\f0c8";} +.icon-reorder:before{content:"\f0c9";}.icon-list-ul:before{content:"\f0ca";}.icon-list-ol:before{content:"\f0cb";} +.icon-strikethrough:before{content:"\f0cc";}.icon-underline:before{content:"\f0cd";} +.icon-table:before{content:"\f0ce";}.icon-magic:before{content:"\f0d0";}.icon-truck:before{content:"\f0d1";} +.icon-pinterest:before{content:"\f0d2";}.icon-pinterest-sign:before{content:"\f0d3";} +.icon-google-plus-sign:before{content:"\f0d4";}.icon-google-plus:before{content:"\f0d5";} +.icon-money:before{content:"\f0d6";}.icon-caret-down:before{content:"\f0d7";}.icon-caret-up:before{content:"\f0d8";} +.icon-caret-left:before{content:"\f0d9";}.icon-caret-right:before{content:"\f0da";} +.icon-columns:before{content:"\f0db";}.icon-sort:before{content:"\f0dc";}.icon-sort-down:before{content:"\f0dd";} +.icon-sort-up:before{content:"\f0de";}.icon-envelope-alt:before{content:"\f0e0";} +.icon-linkedin:before{content:"\f0e1";}.icon-undo:before{content:"\f0e2";}.icon-legal:before{content:"\f0e3";} +.icon-dashboard:before{content:"\f0e4";}.icon-comment-alt:before{content:"\f0e5";} +.icon-comments-alt:before{content:"\f0e6";}.icon-bolt:before{content:"\f0e7";}.icon-sitemap:before{content:"\f0e8";} +.icon-umbrella:before{content:"\f0e9";}.icon-paste:before{content:"\f0ea";}.icon-lightbulb:before{content:"\f0eb";} +.icon-exchange:before{content:"\f0ec";}.icon-cloud-download:before{content:"\f0ed";} +.icon-cloud-upload:before{content:"\f0ee";}.icon-user-md:before{content:"\f0f0";} +.icon-stethoscope:before{content:"\f0f1";}.icon-suitcase:before{content:"\f0f2";} +.icon-bell-alt:before{content:"\f0f3";}.icon-coffee:before{content:"\f0f4";}.icon-food:before{content:"\f0f5";} +.icon-file-alt:before{content:"\f0f6";}.icon-building:before{content:"\f0f7";}.icon-hospital:before{content:"\f0f8";} +.icon-ambulance:before{content:"\f0f9";}.icon-medkit:before{content:"\f0fa";}.icon-fighter-jet:before{content:"\f0fb";} +.icon-beer:before{content:"\f0fc";}.icon-h-sign:before{content:"\f0fd";}.icon-plus-sign-alt:before{content:"\f0fe";} +.icon-double-angle-left:before{content:"\f100";}.icon-double-angle-right:before{content:"\f101";} +.icon-double-angle-up:before{content:"\f102";}.icon-double-angle-down:before{content:"\f103";} +.icon-angle-left:before{content:"\f104";}.icon-angle-right:before{content:"\f105";} +.icon-angle-up:before{content:"\f106";}.icon-angle-down:before{content:"\f107";} +.icon-desktop:before{content:"\f108";}.icon-laptop:before{content:"\f109";}.icon-tablet:before{content:"\f10a";} +.icon-mobile-phone:before{content:"\f10b";}.icon-circle-blank:before{content:"\f10c";} +.icon-quote-left:before{content:"\f10d";}.icon-quote-right:before{content:"\f10e";} +.icon-spinner:before{content:"\f110";}.icon-circle:before{content:"\f111";}.icon-reply:before{content:"\f112";} +.icon-github-alt:before{content:"\f113";}.icon-folder-close-alt:before{content:"\f114";} +.icon-folder-open-alt:before{content:"\f115";}/*!* Font Awesome 3.0.2 * the iconic font designed for use with Twitter Bootstrap * ------------------------------------------------------- * The full suite of pictographic icons,examples,and documentation * can be found at:http://fortawesome.github.com/Font-Awesome/ * * License * ------------------------------------------------------- * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL * - Font Awesome CSS,LESS,and SASS files are licensed under the MIT License - * http://opensource.org/licenses/mit-license.html * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/ * - Attribution is no longer required in Font Awesome 3.0,but much appreciated:* "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome" * Contact * ------------------------------------------------------- * Email:dave@davegandy.com * Twitter:http://twitter.com/fortaweso_me * Work:Lead Product Designer @ http://kyruus.com */ .icon-large{font-size:1.3333333333333333em;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px;vertical-align:middle;} +.nav [class^="icon-"],.nav [class*=" icon-"]{vertical-align:inherit;margin-top:-4px;padding-top:3px;margin-bottom:-4px;padding-bottom:3px;} +.nav [class^="icon-"].icon-large,.nav [class*=" icon-"].icon-large{vertical-align:-25%;} +.nav-pills [class^="icon-"].icon-large,.nav-tabs [class^="icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large{line-height:.75em;margin-top:-7px;padding-top:5px;margin-bottom:-5px;padding-bottom:4px;} +.btn [class^="icon-"].pull-left,.btn [class*=" icon-"].pull-left,.btn [class^="icon-"].pull-right,.btn [class*=" icon-"].pull-right{vertical-align:inherit;} +.btn [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large{margin-top:-0.5em;} +a [class^="icon-"],a [class*=" icon-"]{cursor:pointer;}ul.icons{text-indent:-1.5em;margin-left:3em;} +.icon-glass{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-music{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-search{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-envelope{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-heart{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-star{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-star-empty{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-user{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-film{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-th-large{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-th{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-th-list{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-ok{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-remove{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-zoom-in{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-zoom-out{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-off{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-signal{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-cog{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-trash{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-home{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-file{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-time{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-road{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-download-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-download{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-upload{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-inbox{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-play-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-repeat{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-refresh{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-list-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-lock{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-flag{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-headphones{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-volume-off{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-volume-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-volume-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-qrcode{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-barcode{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-tag{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-tags{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-book{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-bookmark{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-print{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-camera{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-font{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-bold{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-italic{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-text-height{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-text-width{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-align-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-align-center{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-align-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-align-justify{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-list{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-indent-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-indent-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-facetime-video{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-picture{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-pencil{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-map-marker{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-adjust{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-tint{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-edit{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-share{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-check{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-move{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-step-backward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-fast-backward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-backward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-play{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-pause{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-stop{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-forward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-fast-forward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-step-forward{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-eject{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-chevron-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-chevron-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-plus-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-minus-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-remove-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-ok-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-question-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-info-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-screenshot{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-remove-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-ok-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-ban-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-arrow-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-arrow-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-arrow-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-arrow-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-share-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-resize-full{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-resize-small{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-plus{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-minus{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-asterisk{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-exclamation-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-gift{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-leaf{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-fire{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-eye-open{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-eye-close{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-warning-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-plane{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-calendar{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-random{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-comment{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-magnet{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-chevron-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-chevron-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-retweet{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-shopping-cart{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-folder-close{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-folder-open{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-resize-vertical{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-resize-horizontal{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-bar-chart{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-twitter-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-facebook-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-camera-retro{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-key{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-cogs{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-comments{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-thumbs-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-thumbs-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-star-half{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-heart-empty{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-signout{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-linkedin-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-pushpin{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-external-link{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-signin{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-trophy{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-github-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-upload-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-lemon{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-phone{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-check-empty{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-bookmark-empty{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-phone-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-twitter{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-facebook{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-github{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-unlock{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-credit-card{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-rss{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-hdd{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-bullhorn{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-bell{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-certificate{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-hand-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-hand-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-hand-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-hand-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-circle-arrow-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-circle-arrow-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-circle-arrow-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-circle-arrow-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-globe{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-wrench{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-tasks{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-filter{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-briefcase{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-fullscreen{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-group{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-link{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-cloud{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-beaker{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-cut{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-copy{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-paper-clip{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-save{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-sign-blank{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-reorder{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-list-ul{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-list-ol{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-strikethrough{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-underline{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-table{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-magic{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-truck{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-pinterest{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-pinterest-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-google-plus-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-google-plus{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-money{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-caret-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-caret-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-caret-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-caret-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-columns{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-sort{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-sort-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-sort-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-envelope-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-linkedin{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-undo{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-legal{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-dashboard{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-comment-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-comments-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-bolt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-sitemap{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-umbrella{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-paste{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-lightbulb{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-exchange{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-cloud-download{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-cloud-upload{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-user-md{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-stethoscope{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-suitcase{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-bell-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-coffee{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-food{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-file-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-building{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-hospital{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-ambulance{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-medkit{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-fighter-jet{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-beer{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-h-sign{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-plus-sign-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-double-angle-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-double-angle-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-double-angle-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-double-angle-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-angle-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-angle-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-angle-up{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-angle-down{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-desktop{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-laptop{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-tablet{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-mobile-phone{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-circle-blank{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-quote-left{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-quote-right{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-spinner{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-circle{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-reply{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-github-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-folder-close-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.icon-folder-open-alt{*zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = '');} +.dropup,.dropdown{position:relative;}.dropdown-toggle{*margin-bottom:-3px;}.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} +.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";} +.dropdown .caret{margin-top:8px;margin-left:2px;}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;} +.dropdown-menu.pull-right{right:0;left:auto;}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;} +.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;} +.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{text-decoration:none;color:#fff;background-color:#0081c2;} +.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#0081c2;} +.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999;} +.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;} +.open{*z-index:1000;}.open>.dropdown-menu{display:block;}.pull-right>.dropdown-menu{right:0;left:auto;} +.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"";} +.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;} +.dropdown-submenu{position:relative;}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;} +.dropdown-submenu:hover>.dropdown-menu{display:block;}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;} +.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px;} +.dropdown-submenu:hover>a:after{border-left-color:#fff;}.dropdown-submenu.pull-left{float:none;} +.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;}.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;} +.typeahead{z-index:1051;margin-top:2px;}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;} +.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15);}.well-large{padding:24px;} +.well-small{padding:9px;}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear;} +.fade.in{opacity:1;}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease;} +.collapse.in{height:auto;}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20);} +.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40);} +button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;} +.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #ccc;*border:0;border-bottom-color:#b3b3b3;*margin-left:.3em;} +.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9;} +.btn:active,.btn.active{background-color:#ccc \9;}.btn:first-child{*margin-left:0;} +.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;} +.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn.active,.btn:active{background-image:none;outline:0;}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);} +.btn-large{padding:11px 19px;font-size:17.5px;}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px;} +.btn-small{padding:2px 10px;font-size:11.9px;}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;} +.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px;}.btn-mini{padding:0 6px;font-size:10.5px;} +.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.btn-block+.btn-block{margin-top:5px;}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;} +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75);} +.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;border-color:#04c #0044cc #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);} +.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3;} +.btn-primary:active,.btn-primary.active{background-color:#039 \9;}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);} +.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505;} +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);} +.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a;} +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);} +.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249;} +.btn-success:active,.btn-success.active{background-color:#408140 \9;}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);} +.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0;} +.btn-info:active,.btn-info.active{background-color:#24748c \9;}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;border-color:#222 #222222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);} +.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515;} +.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;} +button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} +button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;} +button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;} +button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;} +.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;} +.btn-link{border-color:transparent;cursor:pointer;color:#08c;}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent;} +.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none;} +.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;} +.btn-group:first-child{*margin-left:0;}.btn-group+.btn-group{margin-left:5px;}.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;} +.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px;} +.btn-group>.btn{position:relative;}.btn-group>.btn+.btn{margin-left:-1px;}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px;} +.btn-group>.btn-mini{font-size:10.5px;}.btn-group>.btn-small{font-size:11.9px;}.btn-group>.btn-large{font-size:17.5px;} +.btn-group>.btn:first-child{margin-left:0;}.btn-group>.btn.large:first-child{margin-left:0;} +.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;} +.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;} +.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;}.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;} +.btn-group.open .dropdown-toggle{background-image:none;}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;} +.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c;}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;} +.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;} +.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222;} +.btn .caret{margin-top:8px;margin-left:0;}.btn-large .caret{margin-top:6px;}.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;} +.btn-mini .caret,.btn-small .caret{margin-top:8px;}.dropup .btn-large .caret{border-bottom-width:5px;} +.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff;} +.btn-group-vertical{display:inline-block;*display:inline;*zoom:1;}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;} +.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px;}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;} +.alert,.alert h4{color:#c09853;}.alert h4{margin:0;}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}.alert-success h4{color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;} +.alert-danger h4,.alert-error h4{color:#b94a48;}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;} +.alert-info h4{color:#3a87ad;}.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;}.alert-block p+p{margin-top:5px;} +.nav{margin-left:0;margin-bottom:20px;list-style:none;}.nav>li>a{display:block;} +.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee;}.nav>li>a>img{max-width:none;} +.nav>.pull-right{float:right;}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase;} +.nav li+.nav-header{margin-top:9px;}.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5);} +.nav-list>li>a{padding:3px 15px;}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c;} +.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;} +.nav-tabs:after,.nav-pills:after{clear:both;}.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;}.nav-tabs>li{margin-bottom:-1px;}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;} +.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eeeeee #ddd;}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;} +.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c;} +.nav-stacked>li{float:none;}.nav-stacked>li>a{margin-right:0;}.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav .dropdown-toggle .caret{border-top-color:#08c;border-bottom-color:#08c;margin-top:6px;} +.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580;} +.nav-tabs .dropdown-toggle .caret{margin-top:8px;}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;} +.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555;} +.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer;}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999;} +.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999;}.tabbable{*zoom:1;} +.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}.tabbable:after{clear:both;} +.tab-content{overflow:auto;}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below>.nav-tabs{border-top:1px solid #ddd;}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd;} +.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}.tabs-left>.nav-tabs>li>a{margin-right:-1px;} +.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #dddddd #eee #eeeeee;} +.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff;} +.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}.tabs-right>.nav-tabs>li>a{margin-left:-1px;} +.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eeeeee #eee #dddddd;} +.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff;} +.nav>.disabled>a{color:#999;}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default;} +.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;}.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;border:1px solid #d4d4d4;*zoom:1;} +.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;} +.navbar-inner:after{clear:both;}.navbar .container{width:auto;}.nav-collapse.collapse{height:auto;overflow:visible;} +.navbar .brand{float:left;display:block;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;} +.navbar .brand:hover,.navbar .brand:focus{text-decoration:none;}.navbar-text{margin-bottom:0;line-height:40px;color:#777;} +.navbar-link{color:#777;}.navbar-link:hover,.navbar-link:focus{color:#333;}.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #fff;} +.navbar .btn,.navbar .btn-group{margin-top:5px;}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;} +.navbar-form:after{clear:both;}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;} +.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;} +.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;} +.navbar-static-top{position:static;margin-bottom:0;}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;} +.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;} +.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.navbar-fixed-top{top:0;}.navbar-fixed-bottom{bottom:0;}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;margin-right:0;}.navbar .nav>li{float:left;} +.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff;} +.navbar .nav .dropdown-toggle .caret{margin-top:8px;}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333;text-decoration:none;} +.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;} +.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);} +.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9;} +.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9;} +.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute;top:-7px;left:9px;} +.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:10px;} +.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);border-bottom:0;bottom:-7px;top:auto;} +.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #fff;border-bottom:0;bottom:-6px;top:auto;} +.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333;} +.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555;} +.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777;} +.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555;} +.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;} +.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;} +.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;} +.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;} +.navbar-inverse .navbar-inner{background-color:#1b1b1b;border-color:#252525;}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25);} +.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff;} +.navbar-inverse .brand{color:#999;}.navbar-inverse .navbar-text{color:#999;}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#fff;} +.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111;} +.navbar-inverse .navbar-link{color:#999;}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff;} +.navbar-inverse .divider-vertical{border-left-color:#111;border-right-color:#222;} +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111;color:#fff;} +.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;} +.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999;} +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;} +.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;} +.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc;}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc;} +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc;} +.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;} +.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);} +.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000;} +.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9;} +.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;} +.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #fff;} +.breadcrumb>li>.divider{padding:0 5px;color:#ccc;}.breadcrumb>.active{color:#999;} +.pagination{margin:20px 0;}.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;} +.pagination ul>li{display:inline;}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0;} +.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;} +.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default;} +.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;background-color:transparent;cursor:default;} +.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;} +.pagination-centered{text-align:center;}.pagination-right{text-align:right;}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px;} +.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px;} +.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px;} +.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;} +.pager:after{clear:both;}.pager li{display:inline;}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;} +.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5;} +.pager .next>a,.pager .next>span{float:right;}.pager .previous>a,.pager .previous>span{float:left;} +.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:default;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;} +.modal-backdrop.fade{opacity:0;}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80);} +.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;} +.modal.fade{-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%;} +.modal.fade.in{top:10%;}.modal-header{padding:9px 15px;border-bottom:1px solid #eee;} +.modal-header .close{margin-top:2px;}.modal-header h3{margin:0;line-height:30px;} +.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;}.modal-form{margin-bottom:0;} +.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;*zoom:1;} +.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;} +.modal-footer:after{clear:both;}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;} +.modal-footer .btn-group .btn+.btn{margin-left:-1px;}.modal-footer .btn-block+.btn-block{margin-left:0;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);} +.tooltip.in{opacity:.8;filter:alpha(opacity=80);}.tooltip.top{margin-top:-3px;padding:5px 0;} +.tooltip.right{margin-left:3px;padding:0 5px;}.tooltip.bottom{margin-top:3px;padding:5px 0;} +.tooltip.left{margin-left:-3px;padding:0 5px;}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);white-space:normal;} +.popover.top{margin-top:-10px;}.popover.right{margin-left:10px;}.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;} +.popover-title:empty{display:none;}.popover-content{padding:9px 14px;}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow{border-width:11px;}.popover .arrow:after{border-width:10px;content:"";} +.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px;} +.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff;} +.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);} +.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff;} +.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px;} +.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff;} +.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);} +.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px;} +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;} +.thumbnails:after{clear:both;}.row-fluid .thumbnails{margin-left:0;}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;} +.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;} +a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;}.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} +.thumbnail .caption{padding:9px;color:#555;}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1;} +.media,.media .media{margin-top:15px;}.media:first-child{margin-top:0;}.media-object{display:block;} +.media-heading{margin:0 0 5px;}.media>.pull-left{margin-right:10px;}.media>.pull-right{margin-left:10px;} +.media-list{margin-left:0;list-style:none;}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999;} +.badge{padding-left:9px;padding-right:9px;}.label:empty,.badge:empty{display:none;} +a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer;} +.label-important,.badge-important{background-color:#b94a48;}.label-important[href],.badge-important[href]{background-color:#953b39;} +.label-warning,.badge-warning{background-color:#f89406;}.label-warning[href],.badge-warning[href]{background-color:#c67605;} +.label-success,.badge-success{background-color:#468847;}.label-success[href],.badge-success[href]{background-color:#356635;} +.label-info,.badge-info{background-color:#3a87ad;}.label-info[href],.badge-info[href]{background-color:#2d6987;} +.label-inverse,.badge-inverse{background-color:#333;}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;} +.btn .label,.btn .badge{position:relative;top:-1px;}.btn-mini .label,.btn-mini .badge{top:0;} +@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;}to{background-position:0 0;} +}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;}to{background-position:0 0;} +}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;}to{background-position:0 0;} +}@-o-keyframes progress-bar-stripes{from{background-position:0 0;}to{background-position:40px 0;} +}@keyframes progress-bar-stripes{from{background-position:40px 0;}to{background-position:0 0;} +}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;} +.progress .bar{width:0;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease;} +.progress-striped .bar{background-color:#149bdf;-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} +.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;} +.progress-success .bar,.progress .bar-success{background-color:#5eb95e;}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;} +.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;} +.progress-warning .bar,.progress .bar-warning{background-color:#faa732;}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;} +.accordion{margin-bottom:20px;}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;} +.accordion-heading{border-bottom:0;}.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} +.accordion-toggle{cursor:pointer;}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} +.carousel{position:relative;margin-bottom:20px;line-height:1;}.carousel-inner{overflow:hidden;width:100%;position:relative;} +.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left;} +.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1;} +.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;} +.carousel-inner>.active{left:0;}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;} +.carousel-inner>.next{left:100%;}.carousel-inner>.prev{left:-100%;}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;} +.carousel-inner>.active.left{left:-100%;}.carousel-inner>.active.right{left:100%;} +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;opacity:.5;filter:alpha(opacity=50);} +.carousel-control.right{left:auto;right:15px;}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90);} +.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none;} +.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);} +.carousel-indicators .active{background-color:#fff;}.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333;background:rgba(0,0,0,0.75);} +.carousel-caption h4,.carousel-caption p{color:#fff;line-height:20px;}.carousel-caption h4{margin:0 0 5px;} +.carousel-caption p{margin-bottom:0;}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;} +.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;} +.hero-unit li{line-height:30px;}.pull-right{float:right;}.pull-left{float:left;} +.hide{display:none;}.show{display:block;}.invisible{visibility:hidden;}.affix{position:fixed;} \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_readable/bootstrap.css b/src/main/webapp/static/bootstrap/2.3.1/css_readable/bootstrap.css new file mode 100644 index 00000000..e90b07e3 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_readable/bootstrap.css @@ -0,0 +1,6204 @@ +/*!@import url('//fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic'); + +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 36px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family:"Microsoft Yahei","微软雅黑",Helvetica, Arial, sans-serif, "宋体"; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #f6f6f6; +} + +a { + color: #e78b24; + text-decoration: none; +} + +a:hover, +a:focus { + color: #da7e18; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 36px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 13px; +} + +.lead { + margin-bottom: 26px; + font-size: 25.5px; + font-weight: 200; + line-height: 39px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #e78b24; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #c37115; +} + +.text-error { + color: #9c0001; +} + +a.text-error:hover, +a.text-error:focus { + color: #690001; +} + +.text-info { + color: #0063ac; +} + +a.text-info:hover, +a.text-info:focus { + color: #004679; +} + +.text-success { + color: #1c9b47; +} + +a.text-success:hover, +a.text-success:focus { + color: #147033; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 13px 0; + font-family: inherit; + font-weight: bold; + line-height: 26px; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 52px; +} + +h1 { + font-size: 46.75px; +} + +h2 { + font-size: 38.25px; +} + +h3 { + font-size: 29.75px; +} + +h4 { + font-size: 21.25px; +} + +h5 { + font-size: 17px; +} + +h6 { + font-size: 14.45px; +} + +h1 small { + font-size: 29.75px; +} + +h2 small { + font-size: 21.25px; +} + +h3 small { + font-size: 17px; +} + +h4 small { + font-size: 17px; +} + +.page-header { + padding-bottom: 12px; + margin: 26px 0 39px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 13px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 26px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 26px; +} + +dt, +dd { + line-height: 26px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 13px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 26px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 26px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 21.25px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 26px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 26px; + font-style: normal; + line-height: 26px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 15px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 12.5px; + margin: 0 0 13px; + font-size: 16px; + line-height: 26px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 26px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 26px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 26px; + font-size: 25.5px; + line-height: 52px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 19.5px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 17px; + font-weight: normal; + line-height: 26px; +} + +input, +button, +select, +textarea { + font-family: "Lora", Georgia, "Times New Roman", Times, serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 26px; + padding: 4px 6px; + margin-bottom: 13px; + font-size: 17px; + line-height: 26px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 36px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 36px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 26px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #e78b24; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #e78b24; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #e78b24; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #c37115; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f1bc80; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f1bc80; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f1bc80; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #e78b24; + background-color: #fcf8e3; + border-color: #e78b24; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #9c0001; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #9c0001; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #9c0001; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #690001; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ff0305; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ff0305; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ff0305; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #9c0001; + background-color: #f2dede; + border-color: #9c0001; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #1c9b47; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #1c9b47; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #1c9b47; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #147033; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #40dd75; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #40dd75; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #40dd75; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #1c9b47; + background-color: #dff0d8; + border-color: #1c9b47; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #0063ac; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #0063ac; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #0063ac; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #004679; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #139bff; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #139bff; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #139bff; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #0063ac; + background-color: #d9edf7; + border-color: #0063ac; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 25px 20px 26px; + margin-top: 26px; + margin-bottom: 26px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 13px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 13px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 17px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 26px; + min-width: 16px; + padding: 4px 5px; + font-size: 17px; + font-weight: normal; + line-height: 26px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #6ce495; + border-color: #1c9b47; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 13px; +} + +legend + .control-group { + margin-top: 26px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 26px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 13px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 26px; +} + +.table th, +.table td { + padding: 8px; + line-height: 26px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #f6f6f6; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #dff0d8; +} + +.table tbody tr.error > td { + background-color: #f2dede; +} + +.table tbody tr.warning > td { + background-color: #fcf8e3; +} + +.table tbody tr.info > td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #f6f6f6; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 12px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 26px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #e2861f; + background-image: -moz-linear-gradient(top, #e78b24, #da7e18); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#e78b24), to(#da7e18)); + background-image: -webkit-linear-gradient(top, #e78b24, #da7e18); + background-image: -o-linear-gradient(top, #e78b24, #da7e18); + background-image: linear-gradient(to bottom, #e78b24, #da7e18); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe78b24', endColorstr='#ffda7e18', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #e2861f; + background-image: -moz-linear-gradient(top, #e78b24, #da7e18); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#e78b24), to(#da7e18)); + background-image: -webkit-linear-gradient(top, #e78b24, #da7e18); + background-image: -o-linear-gradient(top, #e78b24, #da7e18); + background-image: linear-gradient(to bottom, #e78b24, #da7e18); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe78b24', endColorstr='#ffda7e18', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #c3c3c3; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #fefefe; + border: 1px solid #ececec; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 26px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 17px; + line-height: 26px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #e9e9e9; + *background-color: #e1e1e1; + background-image: -moz-linear-gradient(top, #eeeeee, #e1e1e1); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#e1e1e1)); + background-image: -webkit-linear-gradient(top, #eeeeee, #e1e1e1); + background-image: -o-linear-gradient(top, #eeeeee, #e1e1e1); + background-image: linear-gradient(to bottom, #eeeeee, #e1e1e1); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e1e1e1 #e1e1e1 #bbbbbb; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee', endColorstr='#ffe1e1e1', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e1e1e1; + *background-color: #d4d4d4; +} + +.btn:active, +.btn.active { + background-color: #c8c8c8 \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 21.25px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 14.45px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 12.75px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #e99232; + *background-color: #e78b24; + background-image: -moz-linear-gradient(top, #ea973b, #e78b24); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ea973b), to(#e78b24)); + background-image: -webkit-linear-gradient(top, #ea973b, #e78b24); + background-image: -o-linear-gradient(top, #ea973b, #e78b24); + background-image: linear-gradient(to bottom, #ea973b, #e78b24); + background-repeat: repeat-x; + border-color: #e78b24 #e78b24 #ac6413; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffea973b', endColorstr='#ffe78b24', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #e78b24; + *background-color: #da7e18; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #c37115 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #f8d91c; + *background-color: #f8d60d; + background-image: -moz-linear-gradient(top, #f9da26, #f8d60d); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9da26), to(#f8d60d)); + background-image: -webkit-linear-gradient(top, #f9da26, #f8d60d); + background-image: -o-linear-gradient(top, #f9da26, #f8d60d); + background-image: linear-gradient(to bottom, #f9da26, #f8d60d); + background-repeat: repeat-x; + border-color: #f8d60d #f8d60d #b39a05; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9da26', endColorstr='#fff8d60d', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f8d60d; + *background-color: #e5c507; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #ccaf06 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ab0001; + *background-color: #9c0001; + background-image: -moz-linear-gradient(top, #b60001, #9c0001); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b60001), to(#9c0001)); + background-image: -webkit-linear-gradient(top, #b60001, #9c0001); + background-image: -o-linear-gradient(top, #b60001, #9c0001); + background-image: linear-gradient(to bottom, #b60001, #9c0001); + background-repeat: repeat-x; + border-color: #9c0001 #9c0001 #500001; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb60001', endColorstr='#ff9c0001', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #9c0001; + *background-color: #830001; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #690001 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #1ea84d; + *background-color: #1c9b47; + background-image: -moz-linear-gradient(top, #20b151, #1c9b47); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#20b151), to(#1c9b47)); + background-image: -webkit-linear-gradient(top, #20b151, #1c9b47); + background-image: -o-linear-gradient(top, #20b151, #1c9b47); + background-image: linear-gradient(to bottom, #20b151, #1c9b47); + background-repeat: repeat-x; + border-color: #1c9b47 #1c9b47 #105a29; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff20b151', endColorstr='#ff1c9b47', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #1c9b47; + *background-color: #18853d; +} + +.btn-success:active, +.btn-success.active { + background-color: #147033 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006cbb; + *background-color: #0063ac; + background-image: -moz-linear-gradient(top, #0072c6, #0063ac); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0072c6), to(#0063ac)); + background-image: -webkit-linear-gradient(top, #0072c6, #0063ac); + background-image: -o-linear-gradient(top, #0072c6, #0063ac); + background-image: linear-gradient(to bottom, #0072c6, #0063ac); + background-repeat: repeat-x; + border-color: #0063ac #0063ac #003760; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0072c6', endColorstr='#ff0063ac', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #0063ac; + *background-color: #005493; +} + +.btn-info:active, +.btn-info.active { + background-color: #004679 \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #3b3b3b; + *background-color: #333333; + background-image: -moz-linear-gradient(top, #404040, #333333); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#404040), to(#333333)); + background-image: -webkit-linear-gradient(top, #404040, #333333); + background-image: -o-linear-gradient(top, #404040, #333333); + background-image: linear-gradient(to bottom, #404040, #333333); + background-repeat: repeat-x; + border-color: #333333 #333333 #0d0d0d; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff404040', endColorstr='#ff333333', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #333333; + *background-color: #262626; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #1a1a1a \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #e78b24; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #da7e18; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 13px; + margin-bottom: 13px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 17px; +} + +.btn-group > .btn-mini { + font-size: 12.75px; +} + +.btn-group > .btn-small { + font-size: 14.45px; +} + +.btn-group > .btn-large { + font-size: 21.25px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e1e1e1; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #e78b24; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f8d60d; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #9c0001; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #1c9b47; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #0063ac; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #333333; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 26px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #e78b24; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 26px; +} + +.alert-success { + color: #1c9b47; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success h4 { + color: #1c9b47; +} + +.alert-danger, +.alert-error { + color: #9c0001; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger h4, +.alert-error h4 { + color: #9c0001; +} + +.alert-info { + color: #0063ac; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info h4 { + color: #0063ac; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 26px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 26px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #e78b24; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 12px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 26px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #f6f6f6; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #e78b24; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #e78b24; + border-bottom-color: #e78b24; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #da7e18; + border-bottom-color: #da7e18; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 26px; + overflow: visible; +} + +.navbar-inner { + min-height: 60px; + padding-right: 20px; + padding-left: 20px; + background-color: #f6f6f6; + background-image: -moz-linear-gradient(top, #f6f6f6, #f6f6f6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f6f6f6), to(#f6f6f6)); + background-image: -webkit-linear-gradient(top, #f6f6f6, #f6f6f6); + background-image: -o-linear-gradient(top, #f6f6f6, #f6f6f6); + background-image: linear-gradient(to bottom, #f6f6f6, #f6f6f6); + background-repeat: repeat-x; + border: 1px solid #d7d7d7; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff6f6f6', endColorstr='#fff6f6f6', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 17px 20px 17px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #333333; + text-shadow: 0 1px 0 #f6f6f6; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 60px; + color: #333333; +} + +.navbar-link { + color: #333333; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} + +.navbar .divider-vertical { + height: 55px; + margin: 0 9px; + border-right: 1px solid #0099CC; + border-left: 1px solid #3399CC; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 15px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 15px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 15px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; + padding-top:30px; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 16px 10px 14px; + color: #333333; + text-decoration: none; + text-shadow: 0 1px 0 #f6f6f6; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: #1a99e2; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #2fa4e7; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #e9e9e9; + *background-color: #e9e9e9; + background-image: -moz-linear-gradient(top, #e9e9e9, #e9e9e9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#e9e9e9), to(#e9e9e9)); + background-image: -webkit-linear-gradient(top, #e9e9e9, #e9e9e9); + background-image: -o-linear-gradient(top, #e9e9e9, #e9e9e9); + background-image: linear-gradient(to bottom, #e9e9e9, #e9e9e9); + background-repeat: repeat-x; + border-color: #e9e9e9 #e9e9e9 #c3c3c3; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe9e9e9', endColorstr='#ffe9e9e9', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e9e9e9; + *background-color: #dcdcdc; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #d0d0d0 \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #f6f6f6; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #f6f6f6; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #333333; + background-color: #e9e9e9; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #333333; + background-image: -moz-linear-gradient(top, #333333, #333333); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#333333)); + background-image: -webkit-linear-gradient(top, #333333, #333333); + background-image: -o-linear-gradient(top, #333333, #333333); + background-image: linear-gradient(to bottom, #333333, #333333); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff333333', endColorstr='#ff333333', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #999999; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #333333; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #333333; + border-left-color: #333333; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #333333; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #737373; + border-color: #333333; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #262626; + *background-color: #262626; + background-image: -moz-linear-gradient(top, #262626, #262626); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#262626), to(#262626)); + background-image: -webkit-linear-gradient(top, #262626, #262626); + background-image: -o-linear-gradient(top, #262626, #262626); + background-image: linear-gradient(to bottom, #262626, #262626); + background-repeat: repeat-x; + border-color: #262626 #262626 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff262626', endColorstr='#ff262626', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #262626; + *background-color: #1a1a1a; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #0d0d0d \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 26px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 26px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 26px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 21.25px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 14.45px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 12.75px; +} + +.pager { + margin: 26px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 26px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 26px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #e78b24; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 14.382px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #9c0001; +} + +.label-important[href], +.badge-important[href] { + background-color: #690001; +} + +.label-warning, +.badge-warning { + background-color: #e78b24; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c37115; +} + +.label-success, +.badge-success { + background-color: #1c9b47; +} + +.label-success[href], +.badge-success[href] { + background-color: #147033; +} + +.label-info, +.badge-info { + background-color: #0063ac; +} + +.label-info[href], +.badge-info[href] { + background-color: #004679; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 26px; + margin-bottom: 26px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #eca14d; + background-image: -moz-linear-gradient(top, #efb069, #e78b24); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#efb069), to(#e78b24)); + background-image: -webkit-linear-gradient(top, #efb069, #e78b24); + background-image: -o-linear-gradient(top, #efb069, #e78b24); + background-image: linear-gradient(to bottom, #efb069, #e78b24); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffefb069', endColorstr='#ffe78b24', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #efb069; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 26px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 26px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 26px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 39px; + color: inherit; + background-color: #fefefe; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 39px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} + +div.subnav .nav > li > a, +div.subnav .nav > .active > a, +div.subnav .nav > .active > a:hover { + color: #333333; +} + +div.subnav-fixed { + top: 61px; +} + +.hero-unit h1, +.hero-unit h2, +.hero-unit h3, +.hero-unit h4, +.hero-unit h5, +.hero-unit h6 { + margin: 13px 0; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_readable/bootstrap.min.css b/src/main/webapp/static/bootstrap/2.3.1/css_readable/bootstrap.min.css new file mode 100644 index 00000000..314abf13 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_readable/bootstrap.min.css @@ -0,0 +1,9 @@ +/*!@import url('//fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic');/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:36px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Lora",Georgia,"Times New Roman",Times,serif;font-size:17px;line-height:26px;color:#333;background-color:#f6f6f6}a{color:#e78b24;text-decoration:none}a:hover,a:focus{color:#da7e18;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:36px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 13px}.lead{margin-bottom:26px;font-size:25.5px;font-weight:200;line-height:39px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#e78b24}a.text-warning:hover,a.text-warning:focus{color:#c37115}.text-error{color:#9c0001}a.text-error:hover,a.text-error:focus{color:#690001}.text-info{color:#0063ac}a.text-info:hover,a.text-info:focus{color:#004679}.text-success{color:#1c9b47}a.text-success:hover,a.text-success:focus{color:#147033}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:13px 0;font-family:inherit;font-weight:bold;line-height:26px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:52px}h1{font-size:46.75px}h2{font-size:38.25px}h3{font-size:29.75px}h4{font-size:21.25px}h5{font-size:17px}h6{font-size:14.45px}h1 small{font-size:29.75px}h2 small{font-size:21.25px}h3 small{font-size:17px}h4 small{font-size:17px}.page-header{padding-bottom:12px;margin:26px 0 39px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 13px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:26px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:26px}dt,dd{line-height:26px}dt{font-weight:bold}dd{margin-left:13px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:26px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 26px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:21.25px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:26px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:26px;font-style:normal;line-height:26px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:15px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:12.5px;margin:0 0 13px;font-size:16px;line-height:26px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:26px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 26px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:26px;font-size:25.5px;line-height:52px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:19.5px;color:#999}label,input,button,select,textarea{font-size:17px;font-weight:normal;line-height:26px}input,button,select,textarea{font-family:"Lora",Georgia,"Times New Roman",Times,serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:26px;padding:4px 6px;margin-bottom:13px;font-size:17px;line-height:26px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:36px;*margin-top:4px;line-height:36px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:26px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#e78b24}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#e78b24}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#e78b24;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#c37115;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f1bc80;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f1bc80;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f1bc80}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#e78b24;background-color:#fcf8e3;border-color:#e78b24}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#9c0001}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#9c0001}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#9c0001;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#690001;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ff0305;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ff0305;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ff0305}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#9c0001;background-color:#f2dede;border-color:#9c0001}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#1c9b47}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#1c9b47}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#1c9b47;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#147033;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #40dd75;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #40dd75;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #40dd75}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#1c9b47;background-color:#dff0d8;border-color:#1c9b47}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#0063ac}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#0063ac}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#0063ac;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#004679;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #139bff;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #139bff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #139bff}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#0063ac;background-color:#d9edf7;border-color:#0063ac}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:25px 20px 26px;margin-top:26px;margin-bottom:26px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:13px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:13px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:17px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:26px;min-width:16px;padding:4px 5px;font-size:17px;font-weight:normal;line-height:26px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#6ce495;border-color:#1c9b47}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:13px}legend+.control-group{margin-top:26px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:26px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:13px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:26px}.table th,.table td{padding:8px;line-height:26px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#f6f6f6}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#f6f6f6;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:12px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:26px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#e2861f;background-image:-moz-linear-gradient(top,#e78b24,#da7e18);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e78b24),to(#da7e18));background-image:-webkit-linear-gradient(top,#e78b24,#da7e18);background-image:-o-linear-gradient(top,#e78b24,#da7e18);background-image:linear-gradient(to bottom,#e78b24,#da7e18);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe78b24',endColorstr='#ffda7e18',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#e2861f;background-image:-moz-linear-gradient(top,#e78b24,#da7e18);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e78b24),to(#da7e18));background-image:-webkit-linear-gradient(top,#e78b24,#da7e18);background-image:-o-linear-gradient(top,#e78b24,#da7e18);background-image:linear-gradient(to bottom,#e78b24,#da7e18);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe78b24',endColorstr='#ffda7e18',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#c3c3c3;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#fefefe;border:1px solid #ececec;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:26px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:17px;line-height:26px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#e9e9e9;*background-color:#e1e1e1;background-image:-moz-linear-gradient(top,#eee,#e1e1e1);background-image:-webkit-gradient(linear,0 0,0 100%,from(#eee),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#eee,#e1e1e1);background-image:-o-linear-gradient(top,#eee,#e1e1e1);background-image:linear-gradient(to bottom,#eee,#e1e1e1);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e1e1e1 #e1e1e1 #bbb;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee',endColorstr='#ffe1e1e1',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e1e1e1;*background-color:#d4d4d4}.btn:active,.btn.active{background-color:#c8c8c8 \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:21.25px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:14.45px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:12.75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#e99232;*background-color:#e78b24;background-image:-moz-linear-gradient(top,#ea973b,#e78b24);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ea973b),to(#e78b24));background-image:-webkit-linear-gradient(top,#ea973b,#e78b24);background-image:-o-linear-gradient(top,#ea973b,#e78b24);background-image:linear-gradient(to bottom,#ea973b,#e78b24);background-repeat:repeat-x;border-color:#e78b24 #e78b24 #ac6413;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffea973b',endColorstr='#ffe78b24',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#e78b24;*background-color:#da7e18}.btn-primary:active,.btn-primary.active{background-color:#c37115 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#f8d91c;*background-color:#f8d60d;background-image:-moz-linear-gradient(top,#f9da26,#f8d60d);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f9da26),to(#f8d60d));background-image:-webkit-linear-gradient(top,#f9da26,#f8d60d);background-image:-o-linear-gradient(top,#f9da26,#f8d60d);background-image:linear-gradient(to bottom,#f9da26,#f8d60d);background-repeat:repeat-x;border-color:#f8d60d #f8d60d #b39a05;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9da26',endColorstr='#fff8d60d',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f8d60d;*background-color:#e5c507}.btn-warning:active,.btn-warning.active{background-color:#ccaf06 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ab0001;*background-color:#9c0001;background-image:-moz-linear-gradient(top,#b60001,#9c0001);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b60001),to(#9c0001));background-image:-webkit-linear-gradient(top,#b60001,#9c0001);background-image:-o-linear-gradient(top,#b60001,#9c0001);background-image:linear-gradient(to bottom,#b60001,#9c0001);background-repeat:repeat-x;border-color:#9c0001 #9c0001 #500001;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb60001',endColorstr='#ff9c0001',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#9c0001;*background-color:#830001}.btn-danger:active,.btn-danger.active{background-color:#690001 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#1ea84d;*background-color:#1c9b47;background-image:-moz-linear-gradient(top,#20b151,#1c9b47);background-image:-webkit-gradient(linear,0 0,0 100%,from(#20b151),to(#1c9b47));background-image:-webkit-linear-gradient(top,#20b151,#1c9b47);background-image:-o-linear-gradient(top,#20b151,#1c9b47);background-image:linear-gradient(to bottom,#20b151,#1c9b47);background-repeat:repeat-x;border-color:#1c9b47 #1c9b47 #105a29;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff20b151',endColorstr='#ff1c9b47',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#1c9b47;*background-color:#18853d}.btn-success:active,.btn-success.active{background-color:#147033 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006cbb;*background-color:#0063ac;background-image:-moz-linear-gradient(top,#0072c6,#0063ac);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0072c6),to(#0063ac));background-image:-webkit-linear-gradient(top,#0072c6,#0063ac);background-image:-o-linear-gradient(top,#0072c6,#0063ac);background-image:linear-gradient(to bottom,#0072c6,#0063ac);background-repeat:repeat-x;border-color:#0063ac #0063ac #003760;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0072c6',endColorstr='#ff0063ac',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#0063ac;*background-color:#005493}.btn-info:active,.btn-info.active{background-color:#004679 \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#3b3b3b;*background-color:#333;background-image:-moz-linear-gradient(top,#404040,#333);background-image:-webkit-gradient(linear,0 0,0 100%,from(#404040),to(#333));background-image:-webkit-linear-gradient(top,#404040,#333);background-image:-o-linear-gradient(top,#404040,#333);background-image:linear-gradient(to bottom,#404040,#333);background-repeat:repeat-x;border-color:#333 #333 #0d0d0d;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff404040',endColorstr='#ff333333',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#333;*background-color:#262626}.btn-inverse:active,.btn-inverse.active{background-color:#1a1a1a \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#e78b24;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#da7e18;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:13px;margin-bottom:13px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:17px}.btn-group>.btn-mini{font-size:12.75px}.btn-group>.btn-small{font-size:14.45px}.btn-group>.btn-large{font-size:21.25px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e1e1e1}.btn-group.open .btn-primary.dropdown-toggle{background-color:#e78b24}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f8d60d}.btn-group.open .btn-danger.dropdown-toggle{background-color:#9c0001}.btn-group.open .btn-success.dropdown-toggle{background-color:#1c9b47}.btn-group.open .btn-info.dropdown-toggle{background-color:#0063ac}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#333}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:26px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#e78b24}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:26px}.alert-success{color:#1c9b47;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#1c9b47}.alert-danger,.alert-error{color:#9c0001;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#9c0001}.alert-info{color:#0063ac;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#0063ac}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:26px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:26px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#e78b24}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:12px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:26px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#f6f6f6;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#e78b24}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#e78b24;border-bottom-color:#e78b24}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#da7e18;border-bottom-color:#da7e18}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:26px;overflow:visible}.navbar-inner{min-height:60px;padding-right:20px;padding-left:20px;background-color:#f6f6f6;background-image:-moz-linear-gradient(top,#f6f6f6,#f6f6f6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f6f6f6),to(#f6f6f6));background-image:-webkit-linear-gradient(top,#f6f6f6,#f6f6f6);background-image:-o-linear-gradient(top,#f6f6f6,#f6f6f6);background-image:linear-gradient(to bottom,#f6f6f6,#f6f6f6);background-repeat:repeat-x;border:1px solid #d7d7d7;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff6f6f6',endColorstr='#fff6f6f6',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:17px 20px 17px;margin-left:-20px;font-size:20px;font-weight:200;color:#333;text-shadow:0 1px 0 #f6f6f6}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:60px;color:#333}.navbar-link{color:#333}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:60px;margin:0 9px;border-right:1px solid #f6f6f6;border-left:1px solid #f6f6f6}.navbar .btn,.navbar .btn-group{margin-top:15px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:15px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:15px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:17px 15px 17px;color:#333;text-decoration:none;text-shadow:0 1px 0 #f6f6f6}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#333;text-decoration:none;background-color:#e9e9e9;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#e9e9e9;*background-color:#e9e9e9;background-image:-moz-linear-gradient(top,#e9e9e9,#e9e9e9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e9e9e9),to(#e9e9e9));background-image:-webkit-linear-gradient(top,#e9e9e9,#e9e9e9);background-image:-o-linear-gradient(top,#e9e9e9,#e9e9e9);background-image:linear-gradient(to bottom,#e9e9e9,#e9e9e9);background-repeat:repeat-x;border-color:#e9e9e9 #e9e9e9 #c3c3c3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe9e9e9',endColorstr='#ffe9e9e9',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e9e9e9;*background-color:#dcdcdc}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#d0d0d0 \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #f6f6f6;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #f6f6f6;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#333;background-color:#e9e9e9}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#333;border-bottom-color:#333}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#333;background-image:-moz-linear-gradient(top,#333,#333);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#333));background-image:-webkit-linear-gradient(top,#333,#333);background-image:-o-linear-gradient(top,#333,#333);background-image:linear-gradient(to bottom,#333,#333);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff333333',endColorstr='#ff333333',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#333}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#333;border-left-color:#333}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#333}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#737373;border-color:#333;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#262626;*background-color:#262626;background-image:-moz-linear-gradient(top,#262626,#262626);background-image:-webkit-gradient(linear,0 0,0 100%,from(#262626),to(#262626));background-image:-webkit-linear-gradient(top,#262626,#262626);background-image:-o-linear-gradient(top,#262626,#262626);background-image:linear-gradient(to bottom,#262626,#262626);background-repeat:repeat-x;border-color:#262626 #262626 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff262626',endColorstr='#ff262626',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#262626;*background-color:#1a1a1a}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#0d0d0d \9}.breadcrumb{padding:8px 15px;margin:0 0 26px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:26px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:26px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:21.25px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:14.45px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:12.75px}.pager{margin:26px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:26px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:26px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#e78b24;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:14.382px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#9c0001}.label-important[href],.badge-important[href]{background-color:#690001}.label-warning,.badge-warning{background-color:#e78b24}.label-warning[href],.badge-warning[href]{background-color:#c37115}.label-success,.badge-success{background-color:#1c9b47}.label-success[href],.badge-success[href]{background-color:#147033}.label-info,.badge-info{background-color:#0063ac}.label-info[href],.badge-info[href]{background-color:#004679}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:26px;margin-bottom:26px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#eca14d;background-image:-moz-linear-gradient(top,#efb069,#e78b24);background-image:-webkit-gradient(linear,0 0,0 100%,from(#efb069),to(#e78b24));background-image:-webkit-linear-gradient(top,#efb069,#e78b24);background-image:-o-linear-gradient(top,#efb069,#e78b24);background-image:linear-gradient(to bottom,#efb069,#e78b24);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffefb069',endColorstr='#ffe78b24',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#efb069;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:26px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:26px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:26px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:39px;color:inherit;background-color:#fefefe;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:39px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}div.subnav .nav>li>a,div.subnav .nav>.active>a,div.subnav .nav>.active>a:hover{color:#333}div.subnav-fixed{top:61px}.hero-unit h1,.hero-unit h2,.hero-unit h3,.hero-unit h4,.hero-unit h5,.hero-unit h6{margin:13px 0}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_readable/thumbnail.png b/src/main/webapp/static/bootstrap/2.3.1/css_readable/thumbnail.png new file mode 100644 index 00000000..83ce2f04 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/css_readable/thumbnail.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_united/bootstrap.css b/src/main/webapp/static/bootstrap/2.3.1/css_united/bootstrap.css new file mode 100644 index 00000000..129709a9 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_united/bootstrap.css @@ -0,0 +1,6326 @@ +/*!@import url(//fonts.googleapis.com/css?family=Ubuntu); + +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family: 'Ubuntu', Tahoma, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #dd4814; + text-decoration: none; +} + +a:hover, +a:focus { + color: #97310e; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #eca918; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #c18910; +} + +.text-error { + color: #df382c; +} + +a.text-error:hover, +a.text-error:focus { + color: #bc271c; +} + +.text-info { + color: #772953; +} + +a.text-info:hover, +a.text-info:focus { + color: #511c39; +} + +.text-success { + color: #38b44a; +} + +a.text-success:hover, +a.text-success:focus { + color: #2c8d3a; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 40px; +} + +h1 { + font-size: 38.5px; +} + +h2 { + font-size: 31.5px; +} + +h3 { + font-size: 24.5px; +} + +h4 { + font-size: 17.5px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 11.9px; +} + +h1 small { + font-size: 24.5px; +} + +h2 small { + font-size: 17.5px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #f5f5f5; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #f5f5f5; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #f5f5f5; +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #f5f5f5; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: 'Ubuntu', Tahoma, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #f5f5f5; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #eca918; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #eca918; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #eca918; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #c18910; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f4cc76; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f4cc76; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f4cc76; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #eca918; + background-color: #fcefd4; + border-color: #eca918; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #df382c; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #df382c; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #df382c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #bc271c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ec8c85; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ec8c85; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ec8c85; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #df382c; + background-color: #fadfdd; + border-color: #df382c; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #38b44a; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #38b44a; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #38b44a; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #2c8d3a; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7cd689; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7cd689; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7cd689; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #38b44a; + background-color: #caeecf; + border-color: #38b44a; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #772953; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #772953; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #772953; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #511c39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #bf4788; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #bf4788; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #bf4788; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #772953; + background-color: #e7b8d1; + border-color: #772953; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: transparent; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #f5f5f5; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a3e2ac; + border-color: #38b44a; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #caeecf; +} + +.table tbody tr.error > td { + background-color: #fadfdd; +} + +.table tbody tr.warning > td { + background-color: #fcefd4; +} + +.table tbody tr.info > td { + background-color: #e7b8d1; +} + +.table-hover tbody tr.success:hover > td { + background-color: #b6e8bd; +} + +.table-hover tbody tr.error:hover > td { + background-color: #f7cac7; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #fae6bd; +} + +.table-hover tbody tr.info:hover > td { + background-color: #e0a5c5; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #dd4814; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #d44513; + background-image: -moz-linear-gradient(top, #dd4814, #c64012); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dd4814), to(#c64012)); + background-image: -webkit-linear-gradient(top, #dd4814, #c64012); + background-image: -o-linear-gradient(top, #dd4814, #c64012); + background-image: linear-gradient(to bottom, #dd4814, #c64012); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd4814', endColorstr='#ffc64012', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #d44513; + background-image: -moz-linear-gradient(top, #dd4814, #c64012); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dd4814), to(#c64012)); + background-image: -webkit-linear-gradient(top, #dd4814, #c64012); + background-image: -o-linear-gradient(top, #dd4814, #c64012); + background-image: linear-gradient(to bottom, #dd4814, #c64012); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd4814', endColorstr='#ffc64012', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #dd5c14; + *background-color: #dd7a14; + background-image: -moz-linear-gradient(top, #dd4814, #dd7a14); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dd4814), to(#dd7a14)); + background-image: -webkit-linear-gradient(top, #dd4814, #dd7a14); + background-image: -o-linear-gradient(top, #dd4814, #dd7a14); + background-image: linear-gradient(to bottom, #dd4814, #dd7a14); + background-repeat: repeat-x; + border-color: #dd7a14 #dd7a14 #97530e; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd4814', endColorstr='#ffdd7a14', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #dd7a14; + *background-color: #c66d12; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #ae6010 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #e86537; + *background-color: #dd4814; + background-image: -moz-linear-gradient(top, #ef784e, #dd4814); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ef784e), to(#dd4814)); + background-image: -webkit-linear-gradient(top, #ef784e, #dd4814); + background-image: -o-linear-gradient(top, #ef784e, #dd4814); + background-image: linear-gradient(to bottom, #ef784e, #dd4814); + background-repeat: repeat-x; + border-color: #dd4814 #dd4814 #97310e; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffef784e', endColorstr='#ffdd4814', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #dd4814; + *background-color: #c64012; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #ae3910 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #99356b; + *background-color: #772953; + background-image: -moz-linear-gradient(top, #b03d7b, #772953); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b03d7b), to(#772953)); + background-image: -webkit-linear-gradient(top, #b03d7b, #772953); + background-image: -o-linear-gradient(top, #b03d7b, #772953); + background-image: linear-gradient(to bottom, #b03d7b, #772953); + background-repeat: repeat-x; + border-color: #772953 #772953 #3e152b; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb03d7b', endColorstr='#ff772953', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #772953; + *background-color: #642246; +} + +.btn-info:active, +.btn-info.active { + background-color: #511c39 \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #414141; + *background-color: #222222; + background-image: -moz-linear-gradient(top, #555555, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222)); + background-image: -webkit-linear-gradient(top, #555555, #222222); + background-image: -o-linear-gradient(top, #555555, #222222); + background-image: linear-gradient(to bottom, #555555, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #dd4814; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #97310e; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 10.5px; +} + +.btn-group > .btn-small { + font-size: 11.9px; +} + +.btn-group > .btn-large { + font-size: 17.5px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #dd7a14; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #dd4814; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #772953; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcefd4; + border: 1px solid #fae1c6; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #eca918; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #38b44a; + background-color: #caeecf; + border-color: #b7e8b6; +} + +.alert-success h4 { + color: #38b44a; +} + +.alert-danger, +.alert-error { + color: #df382c; + background-color: #fadfdd; + border-color: #f8d0d4; +} + +.alert-danger h4, +.alert-error h4 { + color: #df382c; +} + +.alert-info { + color: #772953; + background-color: #e7b8d1; + border-color: #de9ecb; +} + +.alert-info h4 { + color: #772953; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #dd4814; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #f5f5f5 #f5f5f5 #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #dd4814; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #dd4814; + border-bottom-color: #dd4814; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #97310e; + border-bottom-color: #97310e; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #f5f5f5 #dddddd #f5f5f5 #f5f5f5; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #f5f5f5 #f5f5f5 #f5f5f5 #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #d44413; + background-image: -moz-linear-gradient(top, #ce4213, #dd4814); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ce4213), to(#dd4814)); + background-image: -webkit-linear-gradient(top, #ce4213, #dd4814); + background-image: -o-linear-gradient(top, #ce4213, #dd4814); + background-image: linear-gradient(to bottom, #ce4213, #dd4814); + background-repeat: repeat-x; + border: 1px solid #c64012; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffce4213', endColorstr='#ffdd4814', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #ffffff; + text-shadow: 0 1px 0 #ce4213; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #ffffff; +} + +.navbar-link { + color: #ffffff; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #ffffff; +} + +.navbar .divider-vertical { + height: 53px; + margin: 0 9px; + border-right: 1px solid #ce4213; + border-left: 1px solid #dd4814; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: 'Ubuntu', Tahoma, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; + padding-top:33px; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 16px 10px 14px; + color: #ffffff; + text-decoration: none; + text-shadow: 0 1px 0 #ce4213; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #1a99e2; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #2fa4e7; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #bd3d11; + *background-color: #c64012; + background-image: -moz-linear-gradient(top, #b73b11, #c64012); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b73b11), to(#c64012)); + background-image: -webkit-linear-gradient(top, #b73b11, #c64012); + background-image: -o-linear-gradient(top, #b73b11, #c64012); + background-image: linear-gradient(to bottom, #b73b11, #c64012); + background-repeat: repeat-x; + border-color: #c64012 #c64012 #7f2a0c; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb73b11', endColorstr='#ffc64012', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #c64012; + *background-color: #ae3910; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #97310e \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #a5360f; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #802c59; + background-image: -moz-linear-gradient(top, #862e5e, #772953); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#862e5e), to(#772953)); + background-image: -webkit-linear-gradient(top, #862e5e, #772953); + background-image: -o-linear-gradient(top, #862e5e, #772953); + background-image: linear-gradient(to bottom, #862e5e, #772953); + background-repeat: repeat-x; + border-color: #642246; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff862e5e', endColorstr='#ff772953', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #ffffff; +} + +.navbar-inverse .navbar-text { + color: #ffffff; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: #591f3e; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #591f3e; +} + +.navbar-inverse .navbar-link { + color: #ffffff; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #862e5e; + border-left-color: #772953; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #591f3e; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #c65a94; + border-color: #772953; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #eeeeee; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #eeeeee; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #eeeeee; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #6d264c; + *background-color: #642246; + background-image: -moz-linear-gradient(top, #732850, #642246); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#732850), to(#642246)); + background-image: -webkit-linear-gradient(top, #732850, #642246); + background-image: -o-linear-gradient(top, #732850, #642246); + background-image: linear-gradient(to bottom, #732850, #642246); + background-repeat: repeat-x; + border-color: #642246 #642246 #2b0f1e; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff732850', endColorstr='#ff642246', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #642246; + *background-color: #511c39; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #3e152b \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #dd4814; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #df382c; +} + +.label-important[href], +.badge-important[href] { + background-color: #bc271c; +} + +.label-warning, +.badge-warning { + background-color: #dd4814; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #ae3910; +} + +.label-success, +.badge-success { + background-color: #38b44a; +} + +.label-success[href], +.badge-success[href] { + background-color: #2c8d3a; +} + +.label-info, +.badge-info { + background-color: #772953; +} + +.label-info[href], +.badge-info[href] { + background-color: #511c39; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #e86537; + background-image: -moz-linear-gradient(top, #ef784e, #dd4814); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ef784e), to(#dd4814)); + background-image: -webkit-linear-gradient(top, #ef784e, #dd4814); + background-image: -o-linear-gradient(top, #ef784e, #dd4814); + background-image: linear-gradient(to bottom, #ef784e, #dd4814); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffef784e', endColorstr='#ffdd4814', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #ef784e; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #f5f5f5; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 30px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} + +.navbar .nav > li > a { + border-right: 1px solid rgba(0, 0, 0, 0.2); + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +.navbar .nav > li > a:hover { + border-left: 1px solid rgba(0, 0, 0, 0.2); +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover { + border-left: 1px solid rgba(0, 0, 0, 0.2); +} + +.navbar .divider-vertical { + background-color: inherit; + border-right: 1px solid rgba(0, 0, 0, 0.2); +} + +.navbar .navbar-text { + padding: 9px 10px 11px; + line-height: 19px; + color: #ffffff; +} + +.navbar .navbar-search .search-query { + margin-bottom: 3px; + border: 1px solid #97310e; +} + +@media (max-width: 979px) { + .navbar .nav-collapse .nav li > a { + color: #ffffff; + border-right: 0px solid #dd4814; + border-left: 0px solid #dd4814; + } + .navbar .nav-collapse .nav li > a:hover { + background-color: rgba(0, 0, 0, 0.3) !important; + background-image: none; + } + .navbar .nav-collapse .navbar-form, + .navbar .nav-collapse .navbar-search { + border-top: 0px solid #dd4814; + border-bottom: 0px solid #dd4814; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .navbar .nav-collapse .nav-header { + color: #f5f5f5; + } +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover { + border-right: 1px solid #C03D14; + border-left: 1px solid #E6633A; +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #e86537; + *background-color: #dd4814; + background-image: -moz-linear-gradient(top, #ef784e, #dd4814); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ef784e), to(#dd4814)); + background-image: -webkit-linear-gradient(top, #ef784e, #dd4814); + background-image: -o-linear-gradient(top, #ef784e, #dd4814); + background-image: linear-gradient(to bottom, #ef784e, #dd4814); + background-repeat: repeat-x; + border-color: #dd4814 #dd4814 #97310e; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffef784e', endColorstr='#ffdd4814', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #dd4814; + *background-color: #c64012; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #ae3910 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #f3c768; + *background-color: #efb73e; + background-image: -moz-linear-gradient(top, #f5d185, #efb73e); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5d185), to(#efb73e)); + background-image: -webkit-linear-gradient(top, #f5d185, #efb73e); + background-image: -o-linear-gradient(top, #f5d185, #efb73e); + background-image: linear-gradient(to bottom, #f5d185, #efb73e); + background-repeat: repeat-x; + border-color: #efb73e #efb73e #cf9311; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5d185', endColorstr='#ffefb73e', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #efb73e; + *background-color: #edae26; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #e7a413 \9; +} + +.alert { + text-shadow: none; +} + +.hero-unit { + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.hero-unit h1 { + line-height: 1.6em; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_united/bootstrap.min.css b/src/main/webapp/static/bootstrap/2.3.1/css_united/bootstrap.min.css new file mode 100644 index 00000000..a060df88 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/css_united/bootstrap.min.css @@ -0,0 +1,9 @@ +/*!@import url(//fonts.googleapis.com/css?family=Ubuntu);/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:'Ubuntu',Tahoma,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#dd4814;text-decoration:none}a:hover,a:focus{color:#97310e;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#eca918}a.text-warning:hover,a.text-warning:focus{color:#c18910}.text-error{color:#df382c}a.text-error:hover,a.text-error:focus{color:#bc271c}.text-info{color:#772953}a.text-info:hover,a.text-info:focus{color:#511c39}.text-success{color:#38b44a}a.text-success:hover,a.text-success:focus{color:#2c8d3a}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #f5f5f5}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #f5f5f5;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #f5f5f5}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #f5f5f5;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:'Ubuntu',Tahoma,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#f5f5f5}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#eca918}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#eca918}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#eca918;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#c18910;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f4cc76;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f4cc76;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f4cc76}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#eca918;background-color:#fcefd4;border-color:#eca918}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#df382c}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#df382c}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#df382c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#bc271c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ec8c85;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ec8c85;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ec8c85}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#df382c;background-color:#fadfdd;border-color:#df382c}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#38b44a}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#38b44a}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#38b44a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#2c8d3a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7cd689;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7cd689;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7cd689}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#38b44a;background-color:#caeecf;border-color:#38b44a}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#772953}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#772953}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#772953;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#511c39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #bf4788;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #bf4788;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #bf4788}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#772953;background-color:#e7b8d1;border-color:#772953}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:transparent;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#f5f5f5;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a3e2ac;border-color:#38b44a}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#caeecf}.table tbody tr.error>td{background-color:#fadfdd}.table tbody tr.warning>td{background-color:#fcefd4}.table tbody tr.info>td{background-color:#e7b8d1}.table-hover tbody tr.success:hover>td{background-color:#b6e8bd}.table-hover tbody tr.error:hover>td{background-color:#f7cac7}.table-hover tbody tr.warning:hover>td{background-color:#fae6bd}.table-hover tbody tr.info:hover>td{background-color:#e0a5c5}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#dd4814;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#d44513;background-image:-moz-linear-gradient(top,#dd4814,#c64012);background-image:-webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#c64012));background-image:-webkit-linear-gradient(top,#dd4814,#c64012);background-image:-o-linear-gradient(top,#dd4814,#c64012);background-image:linear-gradient(to bottom,#dd4814,#c64012);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd4814',endColorstr='#ffc64012',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#d44513;background-image:-moz-linear-gradient(top,#dd4814,#c64012);background-image:-webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#c64012));background-image:-webkit-linear-gradient(top,#dd4814,#c64012);background-image:-o-linear-gradient(top,#dd4814,#c64012);background-image:linear-gradient(to bottom,#dd4814,#c64012);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd4814',endColorstr='#ffc64012',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#dd5c14;*background-color:#dd7a14;background-image:-moz-linear-gradient(top,#dd4814,#dd7a14);background-image:-webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#dd7a14));background-image:-webkit-linear-gradient(top,#dd4814,#dd7a14);background-image:-o-linear-gradient(top,#dd4814,#dd7a14);background-image:linear-gradient(to bottom,#dd4814,#dd7a14);background-repeat:repeat-x;border-color:#dd7a14 #dd7a14 #97530e;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdd4814',endColorstr='#ffdd7a14',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#dd7a14;*background-color:#c66d12}.btn-primary:active,.btn-primary.active{background-color:#ae6010 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#e86537;*background-color:#dd4814;background-image:-moz-linear-gradient(top,#ef784e,#dd4814);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ef784e),to(#dd4814));background-image:-webkit-linear-gradient(top,#ef784e,#dd4814);background-image:-o-linear-gradient(top,#ef784e,#dd4814);background-image:linear-gradient(to bottom,#ef784e,#dd4814);background-repeat:repeat-x;border-color:#dd4814 #dd4814 #97310e;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffef784e',endColorstr='#ffdd4814',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#dd4814;*background-color:#c64012}.btn-warning:active,.btn-warning.active{background-color:#ae3910 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#99356b;*background-color:#772953;background-image:-moz-linear-gradient(top,#b03d7b,#772953);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b03d7b),to(#772953));background-image:-webkit-linear-gradient(top,#b03d7b,#772953);background-image:-o-linear-gradient(top,#b03d7b,#772953);background-image:linear-gradient(to bottom,#b03d7b,#772953);background-repeat:repeat-x;border-color:#772953 #772953 #3e152b;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb03d7b',endColorstr='#ff772953',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#772953;*background-color:#642246}.btn-info:active,.btn-info.active{background-color:#511c39 \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#414141;*background-color:#222;background-image:-moz-linear-gradient(top,#555,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#555),to(#222));background-image:-webkit-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:linear-gradient(to bottom,#555,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff555555',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#dd4814;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#97310e;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#dd7a14}.btn-group.open .btn-warning.dropdown-toggle{background-color:#dd4814}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#772953}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcefd4;border:1px solid #fae1c6;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#eca918}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#38b44a;background-color:#caeecf;border-color:#b7e8b6}.alert-success h4{color:#38b44a}.alert-danger,.alert-error{color:#df382c;background-color:#fadfdd;border-color:#f8d0d4}.alert-danger h4,.alert-error h4{color:#df382c}.alert-info{color:#772953;background-color:#e7b8d1;border-color:#de9ecb}.alert-info h4{color:#772953}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#f5f5f5}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#dd4814}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#f5f5f5 #f5f5f5 #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#dd4814}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#dd4814;border-bottom-color:#dd4814}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#97310e;border-bottom-color:#97310e}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#f5f5f5 #ddd #f5f5f5 #f5f5f5}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#f5f5f5 #f5f5f5 #f5f5f5 #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#d44413;background-image:-moz-linear-gradient(top,#ce4213,#dd4814);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ce4213),to(#dd4814));background-image:-webkit-linear-gradient(top,#ce4213,#dd4814);background-image:-o-linear-gradient(top,#ce4213,#dd4814);background-image:linear-gradient(to bottom,#ce4213,#dd4814);background-repeat:repeat-x;border:1px solid #c64012;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffce4213',endColorstr='#ffdd4814',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#fff;text-shadow:0 1px 0 #ce4213}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#fff}.navbar-link{color:#fff}.navbar-link:hover,.navbar-link:focus{color:#fff}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #ce4213;border-left:1px solid #dd4814}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:'Ubuntu',Tahoma,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#fff;text-decoration:none;text-shadow:0 1px 0 #ce4213}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:#a5360f}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#fff;text-decoration:none;background-color:#a5360f;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#bd3d11;*background-color:#c64012;background-image:-moz-linear-gradient(top,#b73b11,#c64012);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b73b11),to(#c64012));background-image:-webkit-linear-gradient(top,#b73b11,#c64012);background-image:-o-linear-gradient(top,#b73b11,#c64012);background-image:linear-gradient(to bottom,#b73b11,#c64012);background-repeat:repeat-x;border-color:#c64012 #c64012 #7f2a0c;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb73b11',endColorstr='#ffc64012',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#c64012;*background-color:#ae3910}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#97310e \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#a5360f}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#802c59;background-image:-moz-linear-gradient(top,#862e5e,#772953);background-image:-webkit-gradient(linear,0 0,0 100%,from(#862e5e),to(#772953));background-image:-webkit-linear-gradient(top,#862e5e,#772953);background-image:-o-linear-gradient(top,#862e5e,#772953);background-image:linear-gradient(to bottom,#862e5e,#772953);background-repeat:repeat-x;border-color:#642246;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff862e5e',endColorstr='#ff772953',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#fff}.navbar-inverse .navbar-text{color:#fff}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:#591f3e}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#591f3e}.navbar-inverse .navbar-link{color:#fff}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#862e5e;border-left-color:#772953}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#591f3e}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#c65a94;border-color:#772953;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#eee}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#eee}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#eee}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#6d264c;*background-color:#642246;background-image:-moz-linear-gradient(top,#732850,#642246);background-image:-webkit-gradient(linear,0 0,0 100%,from(#732850),to(#642246));background-image:-webkit-linear-gradient(top,#732850,#642246);background-image:-o-linear-gradient(top,#732850,#642246);background-image:linear-gradient(to bottom,#732850,#642246);background-repeat:repeat-x;border-color:#642246 #642246 #2b0f1e;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff732850',endColorstr='#ff642246',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#642246;*background-color:#511c39}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#3e152b \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#dd4814;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#df382c}.label-important[href],.badge-important[href]{background-color:#bc271c}.label-warning,.badge-warning{background-color:#dd4814}.label-warning[href],.badge-warning[href]{background-color:#ae3910}.label-success,.badge-success{background-color:#38b44a}.label-success[href],.badge-success[href]{background-color:#2c8d3a}.label-info,.badge-info{background-color:#772953}.label-info[href],.badge-info[href]{background-color:#511c39}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#e86537;background-image:-moz-linear-gradient(top,#ef784e,#dd4814);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ef784e),to(#dd4814));background-image:-webkit-linear-gradient(top,#ef784e,#dd4814);background-image:-o-linear-gradient(top,#ef784e,#dd4814);background-image:linear-gradient(to bottom,#ef784e,#dd4814);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffef784e',endColorstr='#ffdd4814',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#ef784e;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#f5f5f5;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}.navbar .nav>li>a{border-right:1px solid rgba(0,0,0,0.2);border-left:1px solid rgba(255,255,255,0.1)}.navbar .nav>li>a:hover{border-left:1px solid rgba(0,0,0,0.2)}.navbar .nav>.active>a,.navbar .nav>.active>a:hover{border-left:1px solid rgba(0,0,0,0.2)}.navbar .divider-vertical{background-color:inherit;border-right:1px solid rgba(0,0,0,0.2)}.navbar .navbar-text{padding:9px 10px 11px;line-height:19px;color:#fff}.navbar .navbar-search .search-query{margin-bottom:3px;border:1px solid #97310e}@media(max-width:979px){.navbar .nav-collapse .nav li>a{color:#fff;border-right:0 solid #dd4814;border-left:0 solid #dd4814}.navbar .nav-collapse .nav li>a:hover{background-color:rgba(0,0,0,0.3)!important;background-image:none}.navbar .nav-collapse .navbar-form,.navbar .nav-collapse .navbar-search{border-top:0 solid #dd4814;border-bottom:0 solid #dd4814;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.navbar .nav-collapse .nav-header{color:#f5f5f5}}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{border-right:1px solid #c03d14;border-left:1px solid #e6633a}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#e86537;*background-color:#dd4814;background-image:-moz-linear-gradient(top,#ef784e,#dd4814);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ef784e),to(#dd4814));background-image:-webkit-linear-gradient(top,#ef784e,#dd4814);background-image:-o-linear-gradient(top,#ef784e,#dd4814);background-image:linear-gradient(to bottom,#ef784e,#dd4814);background-repeat:repeat-x;border-color:#dd4814 #dd4814 #97310e;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffef784e',endColorstr='#ffdd4814',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#dd4814;*background-color:#c64012}.btn-primary:active,.btn-primary.active{background-color:#ae3910 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#f3c768;*background-color:#efb73e;background-image:-moz-linear-gradient(top,#f5d185,#efb73e);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5d185),to(#efb73e));background-image:-webkit-linear-gradient(top,#f5d185,#efb73e);background-image:-o-linear-gradient(top,#f5d185,#efb73e);background-image:linear-gradient(to bottom,#f5d185,#efb73e);background-repeat:repeat-x;border-color:#efb73e #efb73e #cf9311;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5d185',endColorstr='#ffefb73e',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#efb73e;*background-color:#edae26}.btn-warning:active,.btn-warning.active{background-color:#e7a413 \9}.alert{text-shadow:none}.hero-unit{border:1px solid rgba(0,0,0,0.05);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.hero-unit h1{line-height:1.6em}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/css_united/thumbnail.png b/src/main/webapp/static/bootstrap/2.3.1/css_united/thumbnail.png new file mode 100644 index 00000000..d3a83778 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/css_united/thumbnail.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/bootstrap-responsive.css b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/bootstrap-responsive.css new file mode 100644 index 00000000..fcd72f7a --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/bootstrap-responsive.css @@ -0,0 +1,1109 @@ +/*! + * Bootstrap Responsive v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@-ms-viewport { + width: device-width; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.564102564102564%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.7624309392265194%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 20px; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .media .pull-left, + .media .pull-right { + display: block; + float: none; + margin-bottom: 10px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 10px; + right: 10px; + left: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #999999; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + background-color: #111111; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: none; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/bootstrap.css b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/bootstrap.css new file mode 100644 index 00000000..2f56af33 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/bootstrap.css @@ -0,0 +1,6158 @@ +/*! + * Bootstrap v2.3.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover, +a:focus { + color: #005580; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #c09853; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #a47e3c; +} + +.text-error { + color: #b94a48; +} + +a.text-error:hover, +a.text-error:focus { + color: #953b39; +} + +.text-info { + color: #3a87ad; +} + +a.text-info:hover, +a.text-info:focus { + color: #2d6987; +} + +.text-success { + color: #468847; +} + +a.text-success:hover, +a.text-success:focus { + color: #356635; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 40px; +} + +h1 { + font-size: 38.5px; +} + +h2 { + font-size: 31.5px; +} + +h3 { + font-size: 24.5px; +} + +h4 { + font-size: 17.5px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 11.9px; +} + +h1 small { + font-size: 24.5px; +} + +h2 small { + font-size: 17.5px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #dff0d8; +} + +.table tbody tr.error > td { + background-color: #f2dede; +} + +.table tbody tr.warning > td { + background-color: #fcf8e3; +} + +.table tbody tr.info > td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + *background-color: #0044cc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + *background-color: #f89406; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + *background-color: #222222; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #0088cc; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 10.5px; +} + +.btn-group > .btn-small { + font-size: 11.9px; +} + +.btn-group > .btn-large { + font-size: 17.5px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #c09853; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success h4 { + color: #468847; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info h4 { + color: #3a87ad; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #777777; +} + +.navbar-link { + color: #777777; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} + +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-right: 1px solid #ffffff; + border-left: 1px solid #f2f2f2; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + *background-color: #e5e5e5; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #e5e5e5; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #999999; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #222222; + border-left-color: #111111; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + *background-color: #040404; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 30px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/docs.css b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/docs.css new file mode 100644 index 00000000..af655409 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/css/docs.css @@ -0,0 +1,1067 @@ +/* Add additional stylesheets below +-------------------------------------------------- */ +/* + Bootstrap's documentation styles + Special styles for presenting Bootstrap's documentation and examples +*/ + + + +/* Body and structure +-------------------------------------------------- */ + +body { + position: relative; + padding-top: 40px; +} + +/* Code in headings */ +h3 code { + font-size: 14px; + font-weight: normal; +} + + + +/* Tweak navbar brand link to be super sleek +-------------------------------------------------- */ + +body > .navbar { + font-size: 13px; +} + +/* Change the docs' brand */ +body > .navbar .brand { + padding-right: 0; + padding-left: 0; + margin-left: 20px; + float: right; + font-weight: bold; + color: #000; + text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.125); + -webkit-transition: all .2s linear; + -moz-transition: all .2s linear; + transition: all .2s linear; +} +body > .navbar .brand:hover { + text-decoration: none; + text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.4); +} + + +/* Sections +-------------------------------------------------- */ + +/* padding for in-page bookmarks and fixed navbar */ +section { + padding-top: 30px; +} +section > .page-header, +section > .lead { + color: #5a5a5a; +} +section > ul li { + margin-bottom: 5px; +} + +/* Separators (hr) */ +.bs-docs-separator { + margin: 40px 0 39px; +} + +/* Faded out hr */ +hr.soften { + height: 1px; + margin: 70px 0; + background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -ms-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -o-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,.1), rgba(0,0,0,0)); + border: 0; +} + + + +/* Jumbotrons +-------------------------------------------------- */ + +/* Base class +------------------------- */ +.jumbotron { + position: relative; + padding: 40px 0; + color: #fff; + text-align: center; + text-shadow: 0 1px 3px rgba(0,0,0,.4), 0 0 30px rgba(0,0,0,.075); + background: #020031; /* Old browsers */ + background: -moz-linear-gradient(45deg, #020031 0%, #6d3353 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left bottom, right top, color-stop(0%,#020031), color-stop(100%,#6d3353)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(45deg, #020031 0%,#6d3353 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(45deg, #020031 0%,#6d3353 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(45deg, #020031 0%,#6d3353 100%); /* IE10+ */ + background: linear-gradient(45deg, #020031 0%,#6d3353 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#020031', endColorstr='#6d3353',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */ + -webkit-box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2); + -moz-box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2); + box-shadow: inset 0 3px 7px rgba(0,0,0,.2), inset 0 -3px 7px rgba(0,0,0,.2); +} +.jumbotron h1 { + font-size: 80px; + font-weight: bold; + letter-spacing: -1px; + line-height: 1; +} +.jumbotron p { + font-size: 24px; + font-weight: 300; + line-height: 1.25; + margin-bottom: 30px; +} + +/* Link styles (used on .masthead-links as well) */ +.jumbotron a { + color: #fff; + color: rgba(255,255,255,.5); + -webkit-transition: all .2s ease-in-out; + -moz-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} +.jumbotron a:hover { + color: #fff; + text-shadow: 0 0 10px rgba(255,255,255,.25); +} + +/* Download button */ +.masthead .btn { + padding: 19px 24px; + font-size: 24px; + font-weight: 200; + color: #fff; /* redeclare to override the `.jumbotron a` */ + border: 0; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25); + box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25); + -webkit-transition: none; + -moz-transition: none; + transition: none; +} +.masthead .btn:hover { + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25); + box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 5px rgba(0,0,0,.25); +} +.masthead .btn:active { + -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1); + -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1); + box-shadow: inset 0 2px 4px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.1); +} + + +/* Pattern overlay +------------------------- */ +.jumbotron .container { + position: relative; + z-index: 2; +} +.jumbotron:after { + content: ''; + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: url(../img/bs-docs-masthead-pattern.png) repeat center center; + opacity: .4; +} +@media +only screen and (-webkit-min-device-pixel-ratio: 2), +only screen and ( min--moz-device-pixel-ratio: 2), +only screen and ( -o-min-device-pixel-ratio: 2/1) { + + .jumbotron:after { + background-size: 150px 150px; + } + +} + +/* Masthead (docs home) +------------------------- */ +.masthead { + padding: 70px 0 80px; + margin-bottom: 0; + color: #fff; +} +.masthead h1 { + font-size: 120px; + line-height: 1; + letter-spacing: -2px; +} +.masthead p { + font-size: 40px; + font-weight: 200; + line-height: 1.25; +} + +/* Textual links in masthead */ +.masthead-links { + margin: 0; + list-style: none; +} +.masthead-links li { + display: inline; + padding: 0 10px; + color: rgba(255,255,255,.25); +} + +/* Social proof buttons from GitHub & Twitter */ +.bs-docs-social { + padding: 15px 0; + text-align: center; + background-color: #f5f5f5; + border-top: 1px solid #fff; + border-bottom: 1px solid #ddd; +} + +/* Quick links on Home */ +.bs-docs-social-buttons { + margin-left: 0; + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.bs-docs-social-buttons li { + display: inline-block; + padding: 5px 8px; + line-height: 1; + *display: inline; + *zoom: 1; +} + +/* Subhead (other pages) +------------------------- */ +.subhead { + text-align: left; + border-bottom: 1px solid #ddd; +} +.subhead h1 { + font-size: 60px; +} +.subhead p { + margin-bottom: 20px; +} +.subhead .navbar { + display: none; +} + + + +/* Marketing section of Overview +-------------------------------------------------- */ + +.marketing { + text-align: center; + color: #5a5a5a; +} +.marketing h1 { + margin: 60px 0 10px; + font-size: 60px; + font-weight: 200; + line-height: 1; + letter-spacing: -1px; +} +.marketing h2 { + font-weight: 200; + margin-bottom: 5px; +} +.marketing p { + font-size: 16px; + line-height: 1.5; +} +.marketing .marketing-byline { + margin-bottom: 40px; + font-size: 20px; + font-weight: 300; + line-height: 1.25; + color: #999; +} +.marketing-img { + display: block; + margin: 0 auto 30px; + max-height: 145px; +} + + + +/* Footer +-------------------------------------------------- */ + +.footer { + text-align: center; + padding: 30px 0; + margin-top: 70px; + border-top: 1px solid #e5e5e5; + background-color: #f5f5f5; +} +.footer p { + margin-bottom: 0; + color: #777; +} +.footer-links { + margin: 10px 0; +} +.footer-links li { + display: inline; + padding: 0 2px; +} +.footer-links li:first-child { + padding-left: 0; +} + + + +/* Special grid styles +-------------------------------------------------- */ + +.show-grid { + margin-top: 10px; + margin-bottom: 20px; +} +.show-grid [class*="span"] { + background-color: #eee; + text-align: center; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + min-height: 40px; + line-height: 40px; +} +.show-grid [class*="span"]:hover { + background-color: #ddd; +} +.show-grid .show-grid { + margin-top: 0; + margin-bottom: 0; +} +.show-grid .show-grid [class*="span"] { + margin-top: 5px; +} +.show-grid [class*="span"] [class*="span"] { + background-color: #ccc; +} +.show-grid [class*="span"] [class*="span"] [class*="span"] { + background-color: #999; +} + + + +/* Mini layout previews +-------------------------------------------------- */ +.mini-layout { + border: 1px solid #ddd; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.075); + -moz-box-shadow: 0 1px 2px rgba(0,0,0,.075); + box-shadow: 0 1px 2px rgba(0,0,0,.075); +} +.mini-layout, +.mini-layout .mini-layout-body, +.mini-layout.fluid .mini-layout-sidebar { + height: 300px; +} +.mini-layout { + margin-bottom: 20px; + padding: 9px; +} +.mini-layout div { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.mini-layout .mini-layout-body { + background-color: #dceaf4; + margin: 0 auto; + width: 70%; +} +.mini-layout.fluid .mini-layout-sidebar, +.mini-layout.fluid .mini-layout-header, +.mini-layout.fluid .mini-layout-body { + float: left; +} +.mini-layout.fluid .mini-layout-sidebar { + background-color: #bbd8e9; + width: 20%; +} +.mini-layout.fluid .mini-layout-body { + width: 77.5%; + margin-left: 2.5%; +} + + + +/* Download page +-------------------------------------------------- */ + +.download .page-header { + margin-top: 36px; +} +.page-header .toggle-all { + margin-top: 5px; +} + +/* Space out h3s when following a section */ +.download h3 { + margin-bottom: 5px; +} +.download-builder input + h3, +.download-builder .checkbox + h3 { + margin-top: 9px; +} + +/* Fields for variables */ +.download-builder input[type=text] { + margin-bottom: 9px; + font-family: Menlo, Monaco, "Courier New", monospace; + font-size: 12px; + color: #d14; +} +.download-builder input[type=text]:focus { + background-color: #fff; +} + +/* Custom, larger checkbox labels */ +.download .checkbox { + padding: 6px 10px 6px 25px; + font-size: 13px; + line-height: 18px; + color: #555; + background-color: #f9f9f9; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + cursor: pointer; +} +.download .checkbox:hover { + color: #333; + background-color: #f5f5f5; +} +.download .checkbox small { + font-size: 12px; + color: #777; +} + +/* Variables section */ +#variables label { + margin-bottom: 0; +} + +/* Giant download button */ +.download-btn { + margin: 36px 0 108px; +} +#download p, +#download h4 { + max-width: 50%; + margin: 0 auto; + color: #999; + text-align: center; +} +#download h4 { + margin-bottom: 0; +} +#download p { + margin-bottom: 18px; +} +.download-btn .btn { + display: block; + width: auto; + padding: 19px 24px; + margin-bottom: 27px; + font-size: 30px; + line-height: 1; + text-align: center; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + + + +/* Misc +-------------------------------------------------- */ + +/* Make tables spaced out a bit more */ +h2 + table, +h3 + table, +h4 + table, +h2 + .row { + margin-top: 5px; +} + +/* Example sites showcase */ +.example-sites { + xmargin-left: 20px; +} +.example-sites img { + max-width: 100%; + margin: 0 auto; +} + +.scrollspy-example { + height: 200px; + overflow: auto; + position: relative; +} + + +/* Fake the :focus state to demo it */ +.focused { + border-color: rgba(82,168,236,.8); + -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6); + -moz-box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6); + box-shadow: inset 0 1px 3px rgba(0,0,0,.1), 0 0 8px rgba(82,168,236,.6); + outline: 0; +} + +/* For input sizes, make them display block */ +.docs-input-sizes select, +.docs-input-sizes input[type=text] { + display: block; + margin-bottom: 9px; +} + +/* Icons +------------------------- */ +.the-icons { + margin-left: 0; + list-style: none; +} +.the-icons li { + float: left; + width: 25%; + line-height: 25px; +} +.the-icons i:hover { + background-color: rgba(255,0,0,.25); +} + +/* Example page +------------------------- */ +.bootstrap-examples h4 { + margin: 10px 0 5px; +} +.bootstrap-examples p { + font-size: 13px; + line-height: 18px; +} +.bootstrap-examples .thumbnail { + margin-bottom: 9px; + background-color: #fff; +} + + + +/* Bootstrap code examples +-------------------------------------------------- */ + +/* Base class */ +.bs-docs-example { + position: relative; + margin: 15px 0; + padding: 39px 19px 14px; + *padding-top: 19px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +/* Echo out a label for the example */ +.bs-docs-example:after { + content: "Example"; + position: absolute; + top: -1px; + left: -1px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + background-color: #f5f5f5; + border: 1px solid #ddd; + color: #9da0a4; + -webkit-border-radius: 4px 0 4px 0; + -moz-border-radius: 4px 0 4px 0; + border-radius: 4px 0 4px 0; +} + +/* Remove spacing between an example and it's code */ +.bs-docs-example + .prettyprint { + margin-top: -20px; + padding-top: 15px; +} + +/* Tweak examples +------------------------- */ +.bs-docs-example > p:last-child { + margin-bottom: 0; +} +.bs-docs-example .table, +.bs-docs-example .progress, +.bs-docs-example .well, +.bs-docs-example .alert, +.bs-docs-example .hero-unit, +.bs-docs-example .pagination, +.bs-docs-example .navbar, +.bs-docs-example > .nav, +.bs-docs-example blockquote { + margin-bottom: 5px; +} +.bs-docs-example .pagination { + margin-top: 0; +} +.bs-navbar-top-example, +.bs-navbar-bottom-example { + z-index: 1; + padding: 0; + height: 90px; + overflow: hidden; /* cut the drop shadows off */ +} +.bs-navbar-top-example .navbar-fixed-top, +.bs-navbar-bottom-example .navbar-fixed-bottom { + margin-left: 0; + margin-right: 0; +} +.bs-navbar-top-example { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.bs-navbar-top-example:after { + top: auto; + bottom: -1px; + -webkit-border-radius: 0 4px 0 4px; + -moz-border-radius: 0 4px 0 4px; + border-radius: 0 4px 0 4px; +} +.bs-navbar-bottom-example { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.bs-navbar-bottom-example .navbar { + margin-bottom: 0; +} +form.bs-docs-example { + padding-bottom: 19px; +} + +/* Images */ +.bs-docs-example-images img { + margin: 10px; + display: inline-block; +} + +/* Tooltips */ +.bs-docs-tooltip-examples { + text-align: center; + margin: 0 0 10px; + list-style: none; +} +.bs-docs-tooltip-examples li { + display: inline; + padding: 0 10px; +} + +/* Popovers */ +.bs-docs-example-popover { + padding-bottom: 24px; + background-color: #f9f9f9; +} +.bs-docs-example-popover .popover { + position: relative; + display: block; + float: left; + width: 260px; + margin: 20px; +} + +/* Dropdowns */ +.bs-docs-example-submenus { + min-height: 180px; +} +.bs-docs-example-submenus > .pull-left + .pull-left { + margin-left: 20px; +} +.bs-docs-example-submenus .dropup > .dropdown-menu, +.bs-docs-example-submenus .dropdown > .dropdown-menu { + display: block; + position: static; + margin-bottom: 5px; + *width: 180px; +} + + + +/* Responsive docs +-------------------------------------------------- */ + +/* Utility classes table +------------------------- */ +.responsive-utilities th small { + display: block; + font-weight: normal; + color: #999; +} +.responsive-utilities tbody th { + font-weight: normal; +} +.responsive-utilities td { + text-align: center; +} +.responsive-utilities td.is-visible { + color: #468847; + background-color: #dff0d8 !important; +} +.responsive-utilities td.is-hidden { + color: #ccc; + background-color: #f9f9f9 !important; +} + +/* Responsive tests +------------------------- */ +.responsive-utilities-test { + margin-top: 5px; + margin-left: 0; + list-style: none; + overflow: hidden; /* clear floats */ +} +.responsive-utilities-test li { + position: relative; + float: left; + width: 25%; + height: 43px; + font-size: 14px; + font-weight: bold; + line-height: 43px; + color: #999; + text-align: center; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.responsive-utilities-test li + li { + margin-left: 10px; +} +.responsive-utilities-test span { + position: absolute; + top: -1px; + left: -1px; + right: -1px; + bottom: -1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.responsive-utilities-test span { + color: #468847; + background-color: #dff0d8; + border: 1px solid #d6e9c6; +} + + + +/* Sidenav for Docs +-------------------------------------------------- */ + +.bs-docs-sidenav { + width: 228px; + margin: 30px 0 0; + padding: 0; + background-color: #fff; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.065); + -moz-box-shadow: 0 1px 4px rgba(0,0,0,.065); + box-shadow: 0 1px 4px rgba(0,0,0,.065); +} +.bs-docs-sidenav > li > a { + display: block; + width: 190px \9; + margin: 0 0 -1px; + padding: 8px 14px; + border: 1px solid #e5e5e5; +} +.bs-docs-sidenav > li:first-child > a { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} +.bs-docs-sidenav > li:last-child > a { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} +.bs-docs-sidenav > .active > a { + position: relative; + z-index: 2; + padding: 9px 15px; + border: 0; + text-shadow: 0 1px 0 rgba(0,0,0,.15); + -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1); + -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1); + box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1); +} +/* Chevrons */ +.bs-docs-sidenav .icon-chevron-right { + float: right; + margin-top: 2px; + margin-right: -6px; + opacity: .25; +} +.bs-docs-sidenav > li > a:hover { + background-color: #f5f5f5; +} +.bs-docs-sidenav a:hover .icon-chevron-right { + opacity: .5; +} +.bs-docs-sidenav .active .icon-chevron-right, +.bs-docs-sidenav .active a:hover .icon-chevron-right { + background-image: url(../img/glyphicons-halflings-white.png); + opacity: 1; +} +.bs-docs-sidenav.affix { + top: 40px; +} +.bs-docs-sidenav.affix-bottom { + position: absolute; + top: auto; + bottom: 270px; +} + + + + +/* Responsive +-------------------------------------------------- */ + +/* Desktop large +------------------------- */ +@media (min-width: 1200px) { + .bs-docs-container { + max-width: 970px; + } + .bs-docs-sidenav { + width: 258px; + } + .bs-docs-sidenav > li > a { + width: 230px \9; /* Override the previous IE8-9 hack */ + } +} + +/* Desktop +------------------------- */ +@media (max-width: 980px) { + /* Unfloat brand */ + body > .navbar-fixed-top .brand { + float: left; + margin-left: 0; + padding-left: 10px; + padding-right: 10px; + } + + /* Inline-block quick links for more spacing */ + .quick-links li { + display: inline-block; + margin: 5px; + } + + /* When affixed, space properly */ + .bs-docs-sidenav { + top: 0; + width: 218px; + margin-top: 30px; + margin-right: 0; + } +} + +/* Tablet to desktop +------------------------- */ +@media (min-width: 768px) and (max-width: 979px) { + /* Remove any padding from the body */ + body { + padding-top: 0; + } + /* Widen masthead and social buttons to fill body padding */ + .jumbotron { + margin-top: -20px; /* Offset bottom margin on .navbar */ + } + /* Adjust sidenav width */ + .bs-docs-sidenav { + width: 166px; + margin-top: 20px; + } + .bs-docs-sidenav.affix { + top: 0; + } +} + +/* Tablet +------------------------- */ +@media (max-width: 767px) { + /* Remove any padding from the body */ + body { + padding-top: 0; + } + + /* Widen masthead and social buttons to fill body padding */ + .jumbotron { + padding: 40px 20px; + margin-top: -20px; /* Offset bottom margin on .navbar */ + margin-right: -20px; + margin-left: -20px; + } + .masthead h1 { + font-size: 90px; + } + .masthead p, + .masthead .btn { + font-size: 24px; + } + .marketing .span4 { + margin-bottom: 40px; + } + .bs-docs-social { + margin: 0 -20px; + } + + /* Space out the show-grid examples */ + .show-grid [class*="span"] { + margin-bottom: 5px; + } + + /* Sidenav */ + .bs-docs-sidenav { + width: auto; + margin-bottom: 20px; + } + .bs-docs-sidenav.affix { + position: static; + width: auto; + top: 0; + } + + /* Unfloat the back to top link in footer */ + .footer { + margin-left: -20px; + margin-right: -20px; + padding-left: 20px; + padding-right: 20px; + } + .footer p { + margin-bottom: 9px; + } +} + +/* Landscape phones +------------------------- */ +@media (max-width: 480px) { + /* Remove padding above jumbotron */ + body { + padding-top: 0; + } + + /* Change up some type stuff */ + h2 small { + display: block; + } + + /* Downsize the jumbotrons */ + .jumbotron h1 { + font-size: 45px; + } + .jumbotron p, + .jumbotron .btn { + font-size: 18px; + } + .jumbotron .btn { + display: block; + margin: 0 auto; + } + + /* center align subhead text like the masthead */ + .subhead h1, + .subhead p { + text-align: center; + } + + /* Marketing on home */ + .marketing h1 { + font-size: 30px; + } + .marketing-byline { + font-size: 18px; + } + + /* center example sites */ + .example-sites { + margin-left: 0; + } + .example-sites > li { + float: none; + display: block; + max-width: 280px; + margin: 0 auto 18px; + text-align: center; + } + .example-sites .thumbnail > img { + max-width: 270px; + } + + /* Do our best to make tables work in narrow viewports */ + table code { + white-space: normal; + word-wrap: break-word; + word-break: break-all; + } + + /* Examples: dropdowns */ + .bs-docs-example-submenus > .pull-left { + float: none; + clear: both; + } + .bs-docs-example-submenus > .pull-left, + .bs-docs-example-submenus > .pull-left + .pull-left { + margin-left: 0; + } + .bs-docs-example-submenus p { + margin-bottom: 0; + } + .bs-docs-example-submenus .dropup > .dropdown-menu, + .bs-docs-example-submenus .dropdown > .dropdown-menu { + margin-bottom: 10px; + float: none; + max-width: 180px; + } + + /* Examples: modal */ + .modal-example .modal { + position: relative; + top: auto; + right: auto; + bottom: auto; + left: auto; + } + + /* Tighten up footer */ + .footer { + padding-top: 20px; + padding-bottom: 20px; + } +} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-114-precomposed.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-114-precomposed.png new file mode 100644 index 00000000..790a64f7 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-114-precomposed.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-144-precomposed.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-144-precomposed.png new file mode 100644 index 00000000..6d0e463f Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-144-precomposed.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-57-precomposed.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-57-precomposed.png new file mode 100644 index 00000000..4936cca8 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-57-precomposed.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-72-precomposed.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-72-precomposed.png new file mode 100644 index 00000000..b1165bdb Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/apple-touch-icon-72-precomposed.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/favicon.ico b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/favicon.ico new file mode 100644 index 00000000..cb8dbdfc Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/favicon.ico differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/favicon.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/favicon.png new file mode 100644 index 00000000..073c13c0 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/ico/favicon.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-docs-readme.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-docs-readme.png new file mode 100644 index 00000000..36603bd3 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-docs-readme.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-01.jpg b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-01.jpg new file mode 100644 index 00000000..2d398982 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-01.jpg differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-02.jpg b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-02.jpg new file mode 100644 index 00000000..7a89371a Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-02.jpg differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-03.jpg b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-03.jpg new file mode 100644 index 00000000..3638f156 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bootstrap-mdo-sfmoma-03.jpg differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-bootstrap-features.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-bootstrap-features.png new file mode 100644 index 00000000..7cd8501a Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-bootstrap-features.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-masthead-pattern.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-masthead-pattern.png new file mode 100644 index 00000000..75c46a15 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-masthead-pattern.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-responsive-illustrations.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-responsive-illustrations.png new file mode 100644 index 00000000..77c8f18f Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-responsive-illustrations.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-twitter-github.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-twitter-github.png new file mode 100644 index 00000000..06100f39 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/bs-docs-twitter-github.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/8020select.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/8020select.png new file mode 100644 index 00000000..e8eeeb22 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/8020select.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/adoptahydrant.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/adoptahydrant.png new file mode 100644 index 00000000..ec918891 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/adoptahydrant.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/breakingnews.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/breakingnews.png new file mode 100644 index 00000000..5a077856 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/breakingnews.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/fleetio.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/fleetio.png new file mode 100644 index 00000000..9207b0cb Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/fleetio.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/gathercontent.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/gathercontent.png new file mode 100644 index 00000000..92cd0ee2 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/gathercontent.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/jshint.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/jshint.png new file mode 100644 index 00000000..ac7086de Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/jshint.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/kippt.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/kippt.png new file mode 100644 index 00000000..7ea1742f Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/kippt.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/soundready.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/soundready.png new file mode 100644 index 00000000..94e0e01b Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/example-sites/soundready.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-carousel.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-carousel.png new file mode 100644 index 00000000..725fe07b Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-carousel.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-fluid.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-fluid.png new file mode 100644 index 00000000..5f49a332 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-fluid.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-justified-nav.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-justified-nav.png new file mode 100644 index 00000000..3d1e2338 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-justified-nav.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-marketing-narrow.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-marketing-narrow.png new file mode 100644 index 00000000..4bca8cda Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-marketing-narrow.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-marketing.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-marketing.png new file mode 100644 index 00000000..206e26e3 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-marketing.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-signin.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-signin.png new file mode 100644 index 00000000..b649a985 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-signin.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-starter.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-starter.png new file mode 100644 index 00000000..1bf4b85e Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-starter.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-sticky-footer.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-sticky-footer.png new file mode 100644 index 00000000..fb80e7b9 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/bootstrap-example-sticky-footer.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-chrome.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-chrome.png new file mode 100644 index 00000000..8c846c54 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-chrome.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-firefox.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-firefox.png new file mode 100644 index 00000000..3dd68b11 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-firefox.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-safari.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-safari.png new file mode 100644 index 00000000..7aaa29a7 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/browser-icon-safari.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-01.jpg b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-01.jpg new file mode 100644 index 00000000..bedab7d8 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-01.jpg differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-02.jpg b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-02.jpg new file mode 100644 index 00000000..4ed12cc0 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-02.jpg differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-03.jpg b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-03.jpg new file mode 100644 index 00000000..37415da3 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/examples/slide-03.jpg differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/glyphicons-halflings-white.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/glyphicons-halflings-white.png new file mode 100644 index 00000000..3bf6484a Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/glyphicons-halflings-white.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/glyphicons-halflings.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/glyphicons-halflings.png new file mode 100644 index 00000000..a9969993 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/glyphicons-halflings.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/grid-baseline-20px.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/grid-baseline-20px.png new file mode 100644 index 00000000..ce8c69ca Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/grid-baseline-20px.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/less-logo-large.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/less-logo-large.png new file mode 100644 index 00000000..8f62ffbe Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/less-logo-large.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/responsive-illustrations.png b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/responsive-illustrations.png new file mode 100644 index 00000000..a4bcbe30 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/img/responsive-illustrations.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/js/README.md b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/js/README.md new file mode 100644 index 00000000..66903c71 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/js/README.md @@ -0,0 +1,106 @@ +## 2.0 BOOTSTRAP JS PHILOSOPHY +These are the high-level design rules which guide the development of Bootstrap's plugin apis. + +--- + +### DATA-ATTRIBUTE API + +We believe you should be able to use all plugins provided by Bootstrap purely through the markup API without writing a single line of javascript. + +We acknowledge that this isn't always the most performant and sometimes it may be desirable to turn this functionality off altogether. Therefore, as of 2.0 we provide the ability to disable the data attribute API by unbinding all events on the body namespaced with `'data-api'`. This looks like this: + + $('body').off('.data-api') + +To target a specific plugin, just include the plugins name as a namespace along with the data-api namespace like this: + + $('body').off('.alert.data-api') + +--- + +### PROGRAMMATIC API + +We also believe you should be able to use all plugins provided by Bootstrap purely through the JS API. + +All public APIs should be single, chainable methods, and return the collection acted upon. + + $(".btn.danger").button("toggle").addClass("fat") + +All methods should accept an optional options object, a string which targets a particular method, or null which initiates the default behavior: + + $("#myModal").modal() // initialized with defaults + $("#myModal").modal({ keyboard: false }) // initialized with now keyboard + $("#myModal").modal('show') // initializes and invokes show immediately afterqwe2 + +--- + +### OPTIONS + +Options should be sparse and add universal value. We should pick the right defaults. + +All plugins should have a default object which can be modified to effect all instance's default options. The defaults object should be available via `$.fn.plugin.defaults`. + + $.fn.modal.defaults = { … } + +An options definition should take the following form: + + *noun*: *adjective* - describes or modifies a quality of an instance + +examples: + + backdrop: true + keyboard: false + placement: 'top' + +--- + +### EVENTS + +All events should have an infinitive and past participle form. The infinitive is fired just before an action takes place, the past participle on completion of the action. + + show | shown + hide | hidden + +--- + +### CONSTRUCTORS + +Each plugin should expose it's raw constructor on a `Constructor` property -- accessed in the following way: + + + $.fn.popover.Constructor + +--- + +### DATA ACCESSOR + +Each plugin stores a copy of the invoked class on an object. This class instance can be accessed directly through jQuery's data API like this: + + $('[rel=popover]').data('popover') instanceof $.fn.popover.Constructor + +--- + +### DATA ATTRIBUTES + +Data attributes should take the following form: + +- data-{{verb}}={{plugin}} - defines main interaction +- data-target || href^=# - defined on "control" element (if element controls an element other than self) +- data-{{noun}} - defines class instance options + +examples: + + // control other targets + data-toggle="modal" data-target="#foo" + data-toggle="collapse" data-target="#foo" data-parent="#bar" + + // defined on element they control + data-spy="scroll" + + data-dismiss="modal" + data-dismiss="alert" + + data-toggle="dropdown" + + data-toggle="button" + data-toggle="buttons-checkbox" + data-toggle="buttons-radio" \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/assets/js/application.js b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/js/application.js new file mode 100644 index 00000000..f880bc05 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/assets/js/application.js @@ -0,0 +1,156 @@ +// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT +// IT'S ALL JUST JUNK FOR OUR DOCS! +// ++++++++++++++++++++++++++++++++++++++++++ + +!function ($) { + + $(function(){ + + var $window = $(window) + + // Disable certain links in docs + $('section [href^=#]').click(function (e) { + e.preventDefault() + }) + + // side bar + setTimeout(function () { + $('.bs-docs-sidenav').affix({ + offset: { + top: function () { return $window.width() <= 980 ? 290 : 210 } + , bottom: 270 + } + }) + }, 100) + + // make code pretty + window.prettyPrint && prettyPrint() + + // add-ons + $('.add-on :checkbox').on('click', function () { + var $this = $(this) + , method = $this.attr('checked') ? 'addClass' : 'removeClass' + $(this).parents('.add-on')[method]('active') + }) + + // add tipsies to grid for scaffolding + if ($('#gridSystem').length) { + $('#gridSystem').tooltip({ + selector: '.show-grid > [class*="span"]' + , title: function () { return $(this).width() + 'px' } + }) + } + + // tooltip demo + $('.tooltip-demo').tooltip({ + selector: "a[data-toggle=tooltip]" + }) + + $('.tooltip-test').tooltip() + $('.popover-test').popover() + + // popover demo + $("a[data-toggle=popover]") + .popover() + .click(function(e) { + e.preventDefault() + }) + + // button state demo + $('#fat-btn') + .click(function () { + var btn = $(this) + btn.button('loading') + setTimeout(function () { + btn.button('reset') + }, 3000) + }) + + // carousel demo + $('#myCarousel').carousel() + + // javascript build logic + var inputsComponent = $("#components.download input") + , inputsPlugin = $("#plugins.download input") + , inputsVariables = $("#variables.download input") + + // toggle all plugin checkboxes + $('#components.download .toggle-all').on('click', function (e) { + e.preventDefault() + inputsComponent.attr('checked', !inputsComponent.is(':checked')) + }) + + $('#plugins.download .toggle-all').on('click', function (e) { + e.preventDefault() + inputsPlugin.attr('checked', !inputsPlugin.is(':checked')) + }) + + $('#variables.download .toggle-all').on('click', function (e) { + e.preventDefault() + inputsVariables.val('') + }) + + // request built javascript + $('.download-btn .btn').on('click', function () { + + var css = $("#components.download input:checked") + .map(function () { return this.value }) + .toArray() + , js = $("#plugins.download input:checked") + .map(function () { return this.value }) + .toArray() + , vars = {} + , img = ['glyphicons-halflings.png', 'glyphicons-halflings-white.png'] + + $("#variables.download input") + .each(function () { + $(this).val() && (vars[ $(this).prev().text() ] = $(this).val()) + }) + + $.ajax({ + type: 'POST' + , url: /\?dev/.test(window.location) ? 'http://localhost:3000' : 'http://bootstrap.herokuapp.com' + , dataType: 'jsonpi' + , params: { + js: js + , css: css + , vars: vars + , img: img + } + }) + }) + }) + +// Modified from the original jsonpi https://github.com/benvinegar/jquery-jsonpi +$.ajaxTransport('jsonpi', function(opts, originalOptions, jqXHR) { + var url = opts.url; + + return { + send: function(_, completeCallback) { + var name = 'jQuery_iframe_' + jQuery.now() + , iframe, form + + iframe = $(' + +
                • + +
                • + +
                • + +
                • + + + + +
                  + +
                  + +

                  Introducing Bootstrap.

                  + + +
                  +
                  + +

                  By nerds, for nerds.

                  +

                  Built at Twitter by @mdo and @fat, Bootstrap utilizes LESS CSS, is compiled via Node, and is managed through GitHub to help nerds do awesome stuff on the web.

                  +
                  +
                  + +

                  Made for everyone.

                  +

                  Bootstrap was made to not only look and behave great in the latest desktop browsers (as well as IE7!), but in tablet and smartphone browsers via responsive CSS as well.

                  +
                  +
                  + +

                  Packed with features.

                  +

                  A 12-column responsive grid, dozens of components, JavaScript plugins, typography, form controls, and even a web-based Customizer to make Bootstrap your own.

                  +
                  +
                  + +
                  + +

                  Built with Bootstrap.

                  + +
                  + +
                  + +
                  + +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/javascript.html b/src/main/webapp/static/bootstrap/2.3.1/docs/javascript.html new file mode 100644 index 00000000..f4957d91 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/javascript.html @@ -0,0 +1,1780 @@ + + + + + Javascript · Bootstrap + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  +
                  +

                  JavaScript

                  +

                  Bring Bootstrap's components to life—now with 13 custom jQuery plugins. +

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

                  Individual or compiled

                  +

                  Plugins can be included individually (though some have required dependencies), or all at once. Both bootstrap.js and bootstrap.min.js contain all plugins in a single file.

                  + +

                  Data attributes

                  +

                  You can use all Bootstrap plugins purely through the markup API without writing a single line of JavaScript. This is Bootstrap's first class API and should be your first consideration when using a plugin.

                  + +

                  That said, in some situations it may be desirable to turn this functionality off. Therefore, we also provide the ability to disable the data attribute API by unbinding all events on the body namespaced with `'data-api'`. This looks like this: +

                  $('body').off('.data-api')
                  + +

                  Alternatively, to target a specific plugin, just include the plugin's name as a namespace along with the data-api namespace like this:

                  +
                  $('body').off('.alert.data-api')
                  + +

                  Programmatic API

                  +

                  We also believe you should be able to use all Bootstrap plugins purely through the JavaScript API. All public APIs are single, chainable methods, and return the collection acted upon.

                  +
                  $(".btn.danger").button("toggle").addClass("fat")
                  +

                  All methods should accept an optional options object, a string which targets a particular method, or nothing (which initiates a plugin with default behavior):

                  +
                  +$("#myModal").modal()                       // initialized with defaults
                  +$("#myModal").modal({ keyboard: false })   // initialized with no keyboard
                  +$("#myModal").modal('show')                // initializes and invokes show immediately

                  +
                  +

                  Each plugin also exposes its raw constructor on a `Constructor` property: $.fn.popover.Constructor. If you'd like to get a particular plugin instance, retrieve it directly from an element: $('[rel=popover]').data('popover').

                  + +

                  No Conflict

                  +

                  Sometimes it is necessary to use Bootstrap plugins with other UI frameworks. In these circumstances, namespace collisions can occasionally occur. If this happens, you may call .noConflict on the plugin you wish to revert the value of.

                  + +
                  +var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
                  +$.fn.bootstrapBtn = bootstrapButton            // give $().bootstrapBtn the bootstrap functionality
                  +
                  + +

                  Events

                  +

                  Bootstrap provides custom events for most plugin's unique actions. Generally, these come in an infinitive and past participle form - where the infinitive (ex. show) is triggered at the start of an event, and its past participle form (ex. shown) is trigger on the completion of an action.

                  +

                  All infinitive events provide preventDefault functionality. This provides the ability to stop the execution of an action before it starts.

                  +
                  +$('#myModal').on('show', function (e) {
                  +    if (!data) return e.preventDefault() // stops modal from being shown
                  +})
                  +
                  +
                  + + + + +
                  + +

                  About transitions

                  +

                  For simple transition effects, include bootstrap-transition.js once alongside the other JS files. If you're using the compiled (or minified) bootstrap.js, there is no need to include this—it's already there.

                  +

                  Use cases

                  +

                  A few examples of the transition plugin:

                  +
                    +
                  • Sliding or fading in modals
                  • +
                  • Fading out tabs
                  • +
                  • Fading out alerts
                  • +
                  • Sliding carousel panes
                  • +
                  + +
                  + + + + +
                  + + + +

                  Examples

                  +

                  Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.

                  + +

                  Static example

                  +

                  A rendered modal with header, body, and set of actions in the footer.

                  +
                  + +
                  +
                  +<div class="modal hide fade">
                  +  <div class="modal-header">
                  +    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                  +    <h3>Modal header</h3>
                  +  </div>
                  +  <div class="modal-body">
                  +    <p>One fine body…</p>
                  +  </div>
                  +  <div class="modal-footer">
                  +    <a href="#" class="btn">Close</a>
                  +    <a href="#" class="btn btn-primary">Save changes</a>
                  +  </div>
                  +</div>
                  +
                  + +

                  Live demo

                  +

                  Toggle a modal via JavaScript by clicking the button below. It will slide down and fade in from the top of the page.

                  + + + +
                  +<!-- Button to trigger modal -->
                  +<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>
                  +
                  +<!-- Modal -->
                  +<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                  +  <div class="modal-header">
                  +    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                  +    <h3 id="myModalLabel">Modal header</h3>
                  +  </div>
                  +  <div class="modal-body">
                  +    <p>One fine body…</p>
                  +  </div>
                  +  <div class="modal-footer">
                  +    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
                  +    <button class="btn btn-primary">Save changes</button>
                  +  </div>
                  +</div>
                  +
                  + + +
                  + + +

                  Usage

                  + +

                  Via data attributes

                  +

                  Activate a modal without writing JavaScript. Set data-toggle="modal" on a controller element, like a button, along with a data-target="#foo" or href="#foo" to target a specific modal to toggle.

                  +
                  <button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
                  + +

                  Via JavaScript

                  +

                  Call a modal with id myModal with a single line of JavaScript:

                  +
                  $('#myModal').modal(options)
                  + +

                  Options

                  +

                  Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-backdrop="".

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  Nametypedefaultdescription
                  backdropbooleantrueIncludes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn't close the modal on click.
                  keyboardbooleantrueCloses the modal when escape key is pressed
                  showbooleantrueShows the modal when initialized.
                  remotepathfalse

                  If a remote url is provided, content will be loaded via jQuery's load method and injected into the .modal-body. If you're using the data api, you may alternatively use the href tag to specify the remote source. An example of this is shown below:

                  +
                  <a data-toggle="modal" href="remote.html" data-target="#modal">click me</a>
                  + +

                  Methods

                  +

                  .modal(options)

                  +

                  Activates your content as a modal. Accepts an optional options object.

                  +
                  +$('#myModal').modal({
                  +  keyboard: false
                  +})
                  +
                  +

                  .modal('toggle')

                  +

                  Manually toggles a modal.

                  +
                  $('#myModal').modal('toggle')
                  +

                  .modal('show')

                  +

                  Manually opens a modal.

                  +
                  $('#myModal').modal('show')
                  +

                  .modal('hide')

                  +

                  Manually hides a modal.

                  +
                  $('#myModal').modal('hide')
                  +

                  Events

                  +

                  Bootstrap's modal class exposes a few events for hooking into modal functionality.

                  + + + + + + + + + + + + + + + + + + + + + + + + + +
                  EventDescription
                  showThis event fires immediately when the show instance method is called.
                  shownThis event is fired when the modal has been made visible to the user (will wait for css transitions to complete).
                  hideThis event is fired immediately when the hide instance method has been called.
                  hiddenThis event is fired when the modal has finished being hidden from the user (will wait for css transitions to complete).
                  +
                  +$('#myModal').on('hidden', function () {
                  +  // do something…
                  +})
                  +
                  +
                  + + + + + + + + + +
                  + + + +

                  Example in navbar

                  +

                  The ScrollSpy plugin is for automatically updating nav targets based on scroll position. Scroll the area below the navbar and watch the active class change. The dropdown sub items will be highlighted as well.

                  +
                  + +
                  +

                  @fat

                  +

                  Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.

                  +

                  @mdo

                  +

                  Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard. Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. Tattooed cosby sweater food truck, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1 sartorial. Carles non aesthetic exercitation quis gentrify. Brooklyn adipisicing craft beer vice keytar deserunt.

                  +

                  one

                  +

                  Occaecat commodo aliqua delectus. Fap craft beer deserunt skateboard ea. Lomo bicycle rights adipisicing banh mi, velit ea sunt next level locavore single-origin coffee in magna veniam. High life id vinyl, echo park consequat quis aliquip banh mi pitchfork. Vero VHS est adipisicing. Consectetur nisi DIY minim messenger bag. Cred ex in, sustainable delectus consectetur fanny pack iphone.

                  +

                  two

                  +

                  In incididunt echo park, officia deserunt mcsweeney's proident master cleanse thundercats sapiente veniam. Excepteur VHS elit, proident shoreditch +1 biodiesel laborum craft beer. Single-origin coffee wayfarers irure four loko, cupidatat terry richardson master cleanse. Assumenda you probably haven't heard of them art party fanny pack, tattooed nulla cardigan tempor ad. Proident wolf nesciunt sartorial keffiyeh eu banh mi sustainable. Elit wolf voluptate, lo-fi ea portland before they sold out four loko. Locavore enim nostrud mlkshk brooklyn nesciunt.

                  +

                  three

                  +

                  Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.

                  +

                  Keytar twee blog, culpa messenger bag marfa whatever delectus food truck. Sapiente synth id assumenda. Locavore sed helvetica cliche irony, thundercats you probably haven't heard of them consequat hoodie gluten-free lo-fi fap aliquip. Labore elit placeat before they sold out, terry richardson proident brunch nesciunt quis cosby sweater pariatur keffiyeh ut helvetica artisan. Cardigan craft beer seitan readymade velit. VHS chambray laboris tempor veniam. Anim mollit minim commodo ullamco thundercats. +

                  +
                  +
                  + + +
                  + + +

                  Usage

                  + +

                  Via data attributes

                  +

                  To easily add scrollspy behavior to your topbar navigation, just add data-spy="scroll" to the element you want to spy on (most typically this would be the body) and data-target=".navbar" to select which nav to use. You'll want to use scrollspy with a .nav component.

                  +
                  <body data-spy="scroll" data-target=".navbar">...</body>
                  + +

                  Via JavaScript

                  +

                  Call the scrollspy via JavaScript:

                  +
                  $('#navbar').scrollspy()
                  + +
                  + Heads up! + Navbar links must have resolvable id targets. For example, a <a href="#home">home</a> must correspond to something in the dom like <div id="home"></div>. +
                  + +

                  Methods

                  +

                  .scrollspy('refresh')

                  +

                  When using scrollspy in conjunction with adding or removing of elements from the DOM, you'll need to call the refresh method like so:

                  +
                  +$('[data-spy="scroll"]').each(function () {
                  +  var $spy = $(this).scrollspy('refresh')
                  +});
                  +
                  + +

                  Options

                  +

                  Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-offset="".

                  + + + + + + + + + + + + + + + + + +
                  Nametypedefaultdescription
                  offsetnumber10Pixels to offset from top when calculating position of scroll.
                  + +

                  Events

                  + + + + + + + + + + + + + +
                  EventDescription
                  activateThis event fires whenever a new item becomes activated by the scrollspy.
                  +
                  + + + + +
                  + + + +

                  Example tabs

                  +

                  Add quick, dynamic tab functionality to transition through panes of local content, even via dropdown menus.

                  +
                  + +
                  +
                  +

                  Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.

                  +
                  +
                  +

                  Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.

                  +
                  + + +
                  +
                  + + +
                  + + +

                  Usage

                  +

                  Enable tabbable tabs via JavaScript (each tab needs to be activated individually):

                  +
                  +$('#myTab a').click(function (e) {
                  +  e.preventDefault();
                  +  $(this).tab('show');
                  +})
                  +

                  You can activate individual tabs in several ways:

                  +
                  +$('#myTab a[href="#profile"]').tab('show'); // Select tab by name
                  +$('#myTab a:first').tab('show'); // Select first tab
                  +$('#myTab a:last').tab('show'); // Select last tab
                  +$('#myTab li:eq(2) a').tab('show'); // Select third tab (0-indexed)
                  +
                  + +

                  Markup

                  +

                  You can activate a tab or pill navigation without writing any JavaScript by simply specifying data-toggle="tab" or data-toggle="pill" on an element. Adding the nav and nav-tabs classes to the tab ul will apply the Bootstrap tab styling.

                  +
                  +<ul class="nav nav-tabs">
                  +  <li><a href="#home" data-toggle="tab">Home</a></li>
                  +  <li><a href="#profile" data-toggle="tab">Profile</a></li>
                  +  <li><a href="#messages" data-toggle="tab">Messages</a></li>
                  +  <li><a href="#settings" data-toggle="tab">Settings</a></li>
                  +</ul>
                  + +

                  Methods

                  +

                  $().tab

                  +

                  + Activates a tab element and content container. Tab should have either a data-target or an href targeting a container node in the DOM. +

                  +
                  +<ul class="nav nav-tabs" id="myTab">
                  +  <li class="active"><a href="#home">Home</a></li>
                  +  <li><a href="#profile">Profile</a></li>
                  +  <li><a href="#messages">Messages</a></li>
                  +  <li><a href="#settings">Settings</a></li>
                  +</ul>
                  +
                  +<div class="tab-content">
                  +  <div class="tab-pane active" id="home">...</div>
                  +  <div class="tab-pane" id="profile">...</div>
                  +  <div class="tab-pane" id="messages">...</div>
                  +  <div class="tab-pane" id="settings">...</div>
                  +</div>
                  +
                  +<script>
                  +  $(function () {
                  +    $('#myTab a:last').tab('show');
                  +  })
                  +</script>
                  +
                  + +

                  Events

                  + + + + + + + + + + + + + + + + + +
                  EventDescription
                  showThis event fires on tab show, but before the new tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively.
                  shownThis event fires on tab show after a tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively.
                  +
                  +$('a[data-toggle="tab"]').on('shown', function (e) {
                  +  e.target // activated tab
                  +  e.relatedTarget // previous tab
                  +})
                  +
                  +
                  + + + +
                  + + + +

                  Examples

                  +

                  Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.

                  +

                  For performance reasons, the tooltip and popover data-apis are opt in, meaning you must initialize them yourself.

                  +

                  Hover over the links below to see tooltips:

                  +
                  +

                  Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral. +

                  +
                  + +

                  Four directions

                  + + + +

                  Tooltips in input groups

                  +

                  When using tooltips and popovers with the Bootstrap input groups, you'll have to set the container (documented below) option to avoid unwanted side effects.

                  + +
                  + + +

                  Usage

                  +

                  Trigger the tooltip via JavaScript:

                  +
                  $('#example').tooltip(options)
                  + +

                  Options

                  +

                  Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-animation="".

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  Nametypedefaultdescription
                  animationbooleantrueapply a css fade transition to the tooltip
                  htmlbooleanfalseInsert html into the tooltip. If false, jquery's text method will be used to insert content into the dom. Use text if you're worried about XSS attacks.
                  placementstring | function'top'how to position the tooltip - top | bottom | left | right
                  selectorstringfalseIf a selector is provided, tooltip objects will be delegated to the specified targets.
                  titlestring | function''default title value if `title` tag isn't present
                  triggerstring'hover focus'how tooltip is triggered - click | hover | focus | manual. Note you case pass trigger mutliple, space seperated, trigger types.
                  delaynumber | object0 +

                  delay showing and hiding the tooltip (ms) - does not apply to manual trigger type

                  +

                  If a number is supplied, delay is applied to both hide/show

                  +

                  Object structure is: delay: { show: 500, hide: 100 }

                  +
                  containerstring | falsefalse +

                  Appends the tooltip to a specific element container: 'body'

                  +
                  +
                  + Heads up! + Options for individual tooltips can alternatively be specified through the use of data attributes. +
                  + +

                  Markup

                  +
                  <a href="#" data-toggle="tooltip" title="first tooltip">hover over me</a>
                  + +

                  Methods

                  +

                  $().tooltip(options)

                  +

                  Attaches a tooltip handler to an element collection.

                  +

                  .tooltip('show')

                  +

                  Reveals an element's tooltip.

                  +
                  $('#element').tooltip('show')
                  +

                  .tooltip('hide')

                  +

                  Hides an element's tooltip.

                  +
                  $('#element').tooltip('hide')
                  +

                  .tooltip('toggle')

                  +

                  Toggles an element's tooltip.

                  +
                  $('#element').tooltip('toggle')
                  +

                  .tooltip('destroy')

                  +

                  Hides and destroys an element's tooltip.

                  +
                  $('#element').tooltip('destroy')
                  +
                  + + + + +
                  + + +

                  Examples

                  +

                  Add small overlays of content, like those on the iPad, to any element for housing secondary information. Hover over the button to trigger the popover. Requires Tooltip to be included.

                  + +

                  Static popover

                  +

                  Four options are available: top, right, bottom, and left aligned.

                  +
                  +
                  +
                  +

                  Popover top

                  +
                  +

                  Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

                  +
                  +
                  + +
                  +
                  +

                  Popover right

                  +
                  +

                  Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

                  +
                  +
                  + +
                  +
                  +

                  Popover bottom

                  +
                  +

                  Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

                  +
                  +
                  + +
                  +
                  +

                  Popover left

                  +
                  +

                  Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

                  +
                  +
                  + +
                  +
                  +

                  No markup shown as popovers are generated from JavaScript and content within a data attribute.

                  + +

                  Live demo

                  + + +

                  Four directions

                  + + + +
                  + + +

                  Usage

                  +

                  Enable popovers via JavaScript:

                  +
                  $('#example').popover(options)
                  + +

                  Options

                  +

                  Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-animation="".

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  Nametypedefaultdescription
                  animationbooleantrueapply a css fade transition to the tooltip
                  htmlbooleanfalseInsert html into the popover. If false, jquery's text method will be used to insert content into the dom. Use text if you're worried about XSS attacks.
                  placementstring | function'right'how to position the popover - top | bottom | left | right
                  selectorstringfalseif a selector is provided, tooltip objects will be delegated to the specified targets
                  triggerstring'click'how popover is triggered - click | hover | focus | manual
                  titlestring | function''default title value if `title` attribute isn't present
                  contentstring | function''default content value if `data-content` attribute isn't present
                  delaynumber | object0 +

                  delay showing and hiding the popover (ms) - does not apply to manual trigger type

                  +

                  If a number is supplied, delay is applied to both hide/show

                  +

                  Object structure is: delay: { show: 500, hide: 100 }

                  +
                  containerstring | falsefalse +

                  Appends the popover to a specific element container: 'body'

                  +
                  +
                  + Heads up! + Options for individual popovers can alternatively be specified through the use of data attributes. +
                  + +

                  Markup

                  +

                  For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.

                  + +

                  Methods

                  +

                  $().popover(options)

                  +

                  Initializes popovers for an element collection.

                  +

                  .popover('show')

                  +

                  Reveals an elements popover.

                  +
                  $('#element').popover('show')
                  +

                  .popover('hide')

                  +

                  Hides an elements popover.

                  +
                  $('#element').popover('hide')
                  +

                  .popover('toggle')

                  +

                  Toggles an elements popover.

                  +
                  $('#element').popover('toggle')
                  +

                  .popover('destroy')

                  +

                  Hides and destroys an element's popover.

                  +
                  $('#element').popover('destroy')
                  +
                  + + + + +
                  + + + +

                  Example alerts

                  +

                  Add dismiss functionality to all alert messages with this plugin.

                  +
                  +
                  + + Holy guacamole! Best check yo self, you're not looking too good. +
                  +
                  + +
                  +
                  + +

                  Oh snap! You got an error!

                  +

                  Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.

                  +

                  + Take this action Or do this +

                  +
                  +
                  + + +
                  + + +

                  Usage

                  +

                  Enable dismissal of an alert via JavaScript:

                  +
                  $(".alert").alert()
                  + +

                  Markup

                  +

                  Just add data-dismiss="alert" to your close button to automatically give an alert close functionality.

                  +
                  <a class="close" data-dismiss="alert" href="#">&times;</a>
                  + +

                  Methods

                  +

                  $().alert()

                  +

                  Wraps all alerts with close functionality. To have your alerts animate out when closed, make sure they have the .fade and .in class already applied to them.

                  +

                  .alert('close')

                  +

                  Closes an alert.

                  +
                  $(".alert").alert('close')
                  + + +

                  Events

                  +

                  Bootstrap's alert class exposes a few events for hooking into alert functionality.

                  + + + + + + + + + + + + + + + + + +
                  EventDescription
                  closeThis event fires immediately when the close instance method is called.
                  closedThis event is fired when the alert has been closed (will wait for css transitions to complete).
                  +
                  +$('#my-alert').bind('closed', function () {
                  +  // do something…
                  +})
                  +
                  +
                  + + + + +
                  + + +

                  Example uses

                  +

                  Do more with buttons. Control button states or create groups of buttons for more components like toolbars.

                  + +

                  Stateful

                  +

                  Add data-loading-text="Loading..." to use a loading state on a button.

                  +
                  + +
                  +
                  <button type="button" class="btn btn-primary" data-loading-text="Loading...">Loading state</button>
                  + +

                  Single toggle

                  +

                  Add data-toggle="button" to activate toggling on a single button.

                  +
                  + +
                  +
                  <button type="button" class="btn btn-primary" data-toggle="button">Single Toggle</button>
                  + +

                  Checkbox

                  +

                  Add data-toggle="buttons-checkbox" for checkbox style toggling on btn-group.

                  +
                  +
                  + + + +
                  +
                  +
                  +<div class="btn-group" data-toggle="buttons-checkbox">
                  +  <button type="button" class="btn btn-primary">Left</button>
                  +  <button type="button" class="btn btn-primary">Middle</button>
                  +  <button type="button" class="btn btn-primary">Right</button>
                  +</div>
                  +
                  + +

                  Radio

                  +

                  Add data-toggle="buttons-radio" for radio style toggling on btn-group.

                  +
                  +
                  + + + +
                  +
                  +
                  +<div class="btn-group" data-toggle="buttons-radio">
                  +  <button type="button" class="btn btn-primary">Left</button>
                  +  <button type="button" class="btn btn-primary">Middle</button>
                  +  <button type="button" class="btn btn-primary">Right</button>
                  +</div>
                  +
                  + + +
                  + + +

                  Usage

                  +

                  Enable buttons via JavaScript:

                  +
                  $('.nav-tabs').button()
                  + +

                  Markup

                  +

                  Data attributes are integral to the button plugin. Check out the example code below for the various markup types.

                  + +

                  Options

                  +

                  None

                  + +

                  Methods

                  +

                  $().button('toggle')

                  +

                  Toggles push state. Gives the button the appearance that it has been activated.

                  +
                  + Heads up! + You can enable auto toggling of a button by using the data-toggle attribute. +
                  +
                  <button type="button" class="btn" data-toggle="button" >…</button>
                  +

                  $().button('loading')

                  +

                  Sets button state to loading - disables button and swaps text to loading text. Loading text should be defined on the button element using the data attribute data-loading-text. +

                  +
                  <button type="button" class="btn" data-loading-text="loading stuff..." >...</button>
                  +
                  + Heads up! + Firefox persists the disabled state across page loads. A workaround for this is to use autocomplete="off". +
                  +

                  $().button('reset')

                  +

                  Resets button state - swaps text to original text.

                  +

                  $().button(string)

                  +

                  Resets button state - swaps text to any data defined text state.

                  +
                  <button type="button" class="btn" data-complete-text="finished!" >...</button>
                  +<script>
                  +  $('.btn').button('complete')
                  +</script>
                  +
                  +
                  + + + + +
                  + + +

                  About

                  +

                  Get base styles and flexible support for collapsible components like accordions and navigation.

                  +

                  * Requires the Transitions plugin to be included.

                  + +

                  Example accordion

                  +

                  Using the collapse plugin, we built a simple accordion style widget:

                  + +
                  +
                  +
                  + +
                  +
                  + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +
                  +
                  +
                  +
                  + +
                  +
                  + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +
                  +
                  +
                  +
                  + +
                  +
                  + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +
                  +
                  +
                  +
                  +
                  +
                  +<div class="accordion" id="accordion2">
                  +  <div class="accordion-group">
                  +    <div class="accordion-heading">
                  +      <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
                  +        Collapsible Group Item #1
                  +      </a>
                  +    </div>
                  +    <div id="collapseOne" class="accordion-body collapse in">
                  +      <div class="accordion-inner">
                  +        Anim pariatur cliche...
                  +      </div>
                  +    </div>
                  +  </div>
                  +  <div class="accordion-group">
                  +    <div class="accordion-heading">
                  +      <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
                  +        Collapsible Group Item #2
                  +      </a>
                  +    </div>
                  +    <div id="collapseTwo" class="accordion-body collapse">
                  +      <div class="accordion-inner">
                  +        Anim pariatur cliche...
                  +      </div>
                  +    </div>
                  +  </div>
                  +</div>
                  +...
                  +
                  +

                  You can also use the plugin without the accordion markup. Make a button toggle the expanding and collapsing of another element.

                  +
                  +<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">
                  +  simple collapsible
                  +</button>
                  +
                  +<div id="demo" class="collapse in"> … </div>
                  +
                  + + +
                  + + +

                  Usage

                  + +

                  Via data attributes

                  +

                  Just add data-toggle="collapse" and a data-target to element to automatically assign control of a collapsible element. The data-target attribute accepts a css selector to apply the collapse to. Be sure to add the class collapse to the collapsible element. If you'd like it to default open, add the additional class in.

                  +

                  To add accordion-like group management to a collapsible control, add the data attribute data-parent="#selector". Refer to the demo to see this in action.

                  + +

                  Via JavaScript

                  +

                  Enable manually with:

                  +
                  $(".collapse").collapse()
                  + +

                  Options

                  +

                  Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-parent="".

                  + + + + + + + + + + + + + + + + + + + + + + + +
                  Nametypedefaultdescription
                  parentselectorfalseIf selector then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior)
                  togglebooleantrueToggles the collapsible element on invocation
                  + + +

                  Methods

                  +

                  .collapse(options)

                  +

                  Activates your content as a collapsible element. Accepts an optional options object. +

                  +$('#myCollapsible').collapse({
                  +  toggle: false
                  +})
                  +
                  +

                  .collapse('toggle')

                  +

                  Toggles a collapsible element to shown or hidden.

                  +

                  .collapse('show')

                  +

                  Shows a collapsible element.

                  +

                  .collapse('hide')

                  +

                  Hides a collapsible element.

                  + +

                  Events

                  +

                  Bootstrap's collapse class exposes a few events for hooking into collapse functionality.

                  + + + + + + + + + + + + + + + + + + + + + + + + + +
                  EventDescription
                  showThis event fires immediately when the show instance method is called.
                  shownThis event is fired when a collapse element has been made visible to the user (will wait for css transitions to complete).
                  hide + This event is fired immediately when the hide method has been called. +
                  hiddenThis event is fired when a collapse element has been hidden from the user (will wait for css transitions to complete).
                  +
                  +$('#myCollapsible').on('hidden', function () {
                  +  // do something…
                  +})
                  +
                  + + + + + + + + + +
                  + + + +

                  Example

                  +

                  A basic, easily extended plugin for quickly creating elegant typeaheads with any form text input.

                  +
                  + +
                  +
                  <input type="text" data-provide="typeahead">
                  +

                  You'll want to set autocomplete="off" to prevent default browser menus from appearing over the Bootstrap typeahead dropdown.

                  + +
                  + + +

                  Usage

                  + +

                  Via data attributes

                  +

                  Add data attributes to register an element with typeahead functionality as shown in the example above.

                  + +

                  Via JavaScript

                  +

                  Call the typeahead manually with:

                  +
                  $('.typeahead').typeahead()
                  + +

                  Options

                  +

                  Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-source="".

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  Nametypedefaultdescription
                  sourcearray, function[ ]The data source to query against. May be an array of strings or a function. The function is passed two arguments, the query value in the input field and the process callback. The function may be used synchronously by returning the data source directly or asynchronously via the process callback's single argument.
                  itemsnumber8The max number of items to display in the dropdown.
                  minLengthnumber1The minimum character length needed before triggering autocomplete suggestions
                  matcherfunctioncase insensitiveThe method used to determine if a query matches an item. Accepts a single argument, the item against which to test the query. Access the current query with this.query. Return a boolean true if query is a match.
                  sorterfunctionexact match,
                  case sensitive,
                  case insensitive
                  Method used to sort autocomplete results. Accepts a single argument items and has the scope of the typeahead instance. Reference the current query with this.query.
                  updaterfunctionreturns selected itemThe method used to return selected item. Accepts a single argument, the item and has the scope of the typeahead instance.
                  highlighterfunctionhighlights all default matchesMethod used to highlight autocomplete results. Accepts a single argument item and has the scope of the typeahead instance. Should return html.
                  + +

                  Methods

                  +

                  .typeahead(options)

                  +

                  Initializes an input with a typeahead.

                  +
                  + + + + +
                  + + +

                  Example

                  +

                  The subnavigation on the left is a live demo of the affix plugin.

                  + +
                  + +

                  Usage

                  + +

                  Via data attributes

                  +

                  To easily add affix behavior to any element, just add data-spy="affix" to the element you want to spy on. Then use offsets to define when to toggle the pinning of an element on and off.

                  + +
                  <div data-spy="affix" data-offset-top="200">...</div>
                  + +
                  + Heads up! + You must manage the position of a pinned element and the behavior of its immediate parent. Position is controlled by affix, affix-top, and affix-bottom. Remember to check for a potentially collapsed parent when the affix kicks in as it's removing content from the normal flow of the page. +
                  + +

                  Via JavaScript

                  +

                  Call the affix plugin via JavaScript:

                  +
                  $('#navbar').affix()
                  + +

                  Options

                  +

                  Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-offset-top="200".

                  + + + + + + + + + + + + + + + + + +
                  Nametypedefaultdescription
                  offsetnumber | function | object10Pixels to offset from screen when calculating position of scroll. If a single number is provided, the offset will be applied in both top and left directions. To listen for a single direction, or multiple unique offsets, just provide an object offset: { x: 10 }. Use a function when you need to dynamically provide an offset (useful for some responsive designs).
                  +
                  + + + +
                  +
                  + +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/scaffolding.html b/src/main/webapp/static/bootstrap/2.3.1/docs/scaffolding.html new file mode 100644 index 00000000..87a9bb00 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/scaffolding.html @@ -0,0 +1,602 @@ + + + + + Scaffolding · Bootstrap + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  +
                  +

                  Scaffolding

                  +

                  Bootstrap is built on responsive 12-column grids, layouts, and components.

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

                  Requires HTML5 doctype

                  +

                  Bootstrap makes use of certain HTML elements and CSS properties that require the use of the HTML5 doctype. Include it at the beginning of all your projects.

                  +
                  +<!DOCTYPE html>
                  +<html lang="en">
                  +  ...
                  +</html>
                  +
                  + +

                  Typography and links

                  +

                  Bootstrap sets basic global display, typography, and link styles. Specifically, we:

                  +
                    +
                  • Remove margin on the body
                  • +
                  • Set background-color: white; on the body
                  • +
                  • Use the @baseFontFamily, @baseFontSize, and @baseLineHeight attributes as our typographic base
                  • +
                  • Set the global link color via @linkColor and apply link underlines only on :hover
                  • +
                  +

                  These styles can be found within scaffolding.less.

                  + +

                  Reset via Normalize

                  +

                  With Bootstrap 2, the old reset block has been dropped in favor of Normalize.css, a project by Nicolas Gallagher and Jonathan Neal that also powers the HTML5 Boilerplate. While we use much of Normalize within our reset.less, we have removed some elements specifically for Bootstrap.

                  + +
                  + + + + + +
                  + + +

                  Live grid example

                  +

                  The default Bootstrap grid system utilizes 12 columns, making for a 940px wide container without responsive features enabled. With the responsive CSS file added, the grid adapts to be 724px and 1170px wide depending on your viewport. Below 767px viewports, the columns become fluid and stack vertically.

                  +
                  +
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  +
                  +
                  2
                  +
                  3
                  +
                  4
                  +
                  +
                  +
                  4
                  +
                  5
                  +
                  +
                  +
                  9
                  +
                  +
                  + +

                  Basic grid HTML

                  +

                  For a simple two column layout, create a .row and add the appropriate number of .span* columns. As this is a 12-column grid, each .span* spans a number of those 12 columns, and should always add up to 12 for each row (or the number of columns in the parent).

                  +
                  +<div class="row">
                  +  <div class="span4">...</div>
                  +  <div class="span8">...</div>
                  +</div>
                  +
                  +

                  Given this example, we have .span4 and .span8, making for 12 total columns and a complete row.

                  + +

                  Offsetting columns

                  +

                  Move columns to the right using .offset* classes. Each class increases the left margin of a column by a whole column. For example, .offset4 moves .span4 over four columns.

                  +
                  +
                  +
                  4
                  +
                  3 offset 2
                  +
                  +
                  +
                  3 offset 1
                  +
                  3 offset 2
                  +
                  +
                  +
                  6 offset 3
                  +
                  +
                  +
                  +<div class="row">
                  +  <div class="span4">...</div>
                  +  <div class="span3 offset2">...</div>
                  +</div>
                  +
                  + +

                  Nesting columns

                  +

                  To nest your content with the default grid, add a new .row and set of .span* columns within an existing .span* column. Nested rows should include a set of columns that add up to the number of columns of its parent.

                  +
                  +
                  + Level 1 column +
                  +
                  + Level 2 +
                  +
                  + Level 2 +
                  +
                  +
                  +
                  +
                  +<div class="row">
                  +  <div class="span9">
                  +    Level 1 column
                  +    <div class="row">
                  +      <div class="span6">Level 2</div>
                  +      <div class="span3">Level 2</div>
                  +    </div>
                  +  </div>
                  +</div>
                  +
                  +
                  + + + + +
                  + + +

                  Live fluid grid example

                  +

                  The fluid grid system uses percents instead of pixels for column widths. It has the same responsive capabilities as our fixed grid system, ensuring proper proportions for key screen resolutions and devices.

                  +
                  +
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  +
                  +
                  4
                  +
                  4
                  +
                  4
                  +
                  +
                  +
                  4
                  +
                  8
                  +
                  +
                  +
                  6
                  +
                  6
                  +
                  +
                  +
                  12
                  +
                  +
                  + +

                  Basic fluid grid HTML

                  +

                  Make any row "fluid" by changing .row to .row-fluid. The column classes stay the exact same, making it easy to flip between fixed and fluid grids.

                  +
                  +<div class="row-fluid">
                  +  <div class="span4">...</div>
                  +  <div class="span8">...</div>
                  +</div>
                  +
                  + +

                  Fluid offsetting

                  +

                  Operates the same way as the fixed grid system offsetting: add .offset* to any column to offset by that many columns.

                  +
                  +
                  +
                  4
                  +
                  4 offset 4
                  +
                  +
                  +
                  3 offset 3
                  +
                  3 offset 3
                  +
                  +
                  +
                  6 offset 6
                  +
                  +
                  +
                  +<div class="row-fluid">
                  +  <div class="span4">...</div>
                  +  <div class="span4 offset2">...</div>
                  +</div>
                  +
                  + +

                  Fluid nesting

                  +

                  Fluid grids utilize nesting differently: each nested level of columns should add up to 12 columns. This is because the fluid grid uses percentages, not pixels, for setting widths.

                  +
                  +
                  + Fluid 12 +
                  +
                  + Fluid 6 +
                  +
                  + Fluid 6 +
                  +
                  + Fluid 6 +
                  +
                  +
                  +
                  + Fluid 6 +
                  +
                  +
                  +
                  +
                  +<div class="row-fluid">
                  +  <div class="span12">
                  +    Fluid 12
                  +    <div class="row-fluid">
                  +      <div class="span6">
                  +        Fluid 6
                  +        <div class="row-fluid">
                  +          <div class="span6">Fluid 6</div>
                  +          <div class="span6">Fluid 6</div>
                  +        </div>
                  +      </div>
                  +      <div class="span6">Fluid 6</div>
                  +    </div>
                  +  </div>
                  +</div>
                  +
                  + +
                  + + + + + +
                  + + +

                  Fixed layout

                  +

                  Provides a common fixed-width (and optionally responsive) layout with only <div class="container"> required.

                  +
                  +
                  +
                  +
                  +<body>
                  +  <div class="container">
                  +    ...
                  +  </div>
                  +</body>
                  +
                  + +

                  Fluid layout

                  +

                  Create a fluid, two-column page with <div class="container-fluid">—great for applications and docs.

                  +
                  +
                  +
                  +
                  +
                  +<div class="container-fluid">
                  +  <div class="row-fluid">
                  +    <div class="span2">
                  +      <!--Sidebar content-->
                  +    </div>
                  +    <div class="span10">
                  +      <!--Body content-->
                  +    </div>
                  +  </div>
                  +</div>
                  +
                  +
                  + + + + + +
                  + + +

                  Enabling responsive features

                  +

                  Turn on responsive CSS in your project by including the proper meta tag and additional stylesheet within the <head> of your document. If you've compiled Bootstrap from the Customize page, you need only include the meta tag.

                  +
                  +<meta name="viewport" content="width=device-width, initial-scale=1.0">
                  +<link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
                  +
                  +

                  Heads up! Bootstrap doesn't include responsive features by default at this time as not everything needs to be responsive. Instead of encouraging developers to remove this feature, we figure it best to enable it as needed.

                  + +

                  About responsive Bootstrap

                  + Responsive devices +

                  Media queries allow for custom CSS based on a number of conditions—ratios, widths, display type, etc—but usually focuses around min-width and max-width.

                  +
                    +
                  • Modify the width of column in our grid
                  • +
                  • Stack elements instead of float wherever necessary
                  • +
                  • Resize headings and text to be more appropriate for devices
                  • +
                  +

                  Use media queries responsibly and only as a start to your mobile audiences. For larger projects, do consider dedicated code bases and not layers of media queries.

                  + +

                  Supported devices

                  +

                  Bootstrap supports a handful of media queries in a single file to help make your projects more appropriate on different devices and screen resolutions. Here's what's included:

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  LabelLayout widthColumn widthGutter width
                  Large display1200px and up70px30px
                  Default980px and up60px20px
                  Portrait tablets768px and above42px20px
                  Phones to tablets767px and belowFluid columns, no fixed widths
                  Phones480px and belowFluid columns, no fixed widths
                  +
                  +/* Large desktop */
                  +@media (min-width: 1200px) { ... }
                  +
                  +/* Portrait tablet to landscape and desktop */
                  +@media (min-width: 768px) and (max-width: 979px) { ... }
                  +
                  +/* Landscape phone to portrait tablet */
                  +@media (max-width: 767px) { ... }
                  +
                  +/* Landscape phones and down */
                  +@media (max-width: 480px) { ... }
                  +
                  + + +

                  Responsive utility classes

                  +

                  For faster mobile-friendly development, use these utility classes for showing and hiding content by device. Below is a table of the available classes and their effect on a given media query layout (labeled by device). They can be found in responsive.less.

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  ClassPhones 767px and belowTablets 979px to 768pxDesktops Default
                  .visible-phoneVisible
                  .visible-tabletVisible
                  .visible-desktopVisible
                  .hidden-phoneVisibleVisible
                  .hidden-tabletVisibleVisible
                  .hidden-desktopVisibleVisible
                  + +

                  When to use

                  +

                  Use on a limited basis and avoid creating entirely different versions of the same site. Instead, use them to complement each device's presentation. Responsive utilities should not be used with tables, and as such are not supported.

                  + +

                  Responsive utilities test case

                  +

                  Resize your browser or load on different devices to test the above classes.

                  +

                  Visible on...

                  +

                  Green checkmarks indicate that class is visible in your current viewport.

                  +
                    +
                  • Phone✔ Phone
                  • +
                  • Tablet✔ Tablet
                  • +
                  • Desktop✔ Desktop
                  • +
                  +

                  Hidden on...

                  +

                  Here, green checkmarks indicate that class is hidden in your current viewport.

                  +
                    +
                  • Phone✔ Phone
                  • +
                  • Tablet✔ Tablet
                  • +
                  • Desktop✔ Desktop
                  • +
                  + +
                  + + + +
                  +
                  + +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/layout.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/layout.mustache new file mode 100644 index 00000000..993b4462 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/layout.mustache @@ -0,0 +1,151 @@ + + + + + {{title}} + + + + + + + + + + + + + + + + + + + + + {{#production}} + + {{/production}} + + + + + + + +{{>body}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{#production}} + + + {{/production}} + + + diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/base-css.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/base-css.mustache new file mode 100644 index 00000000..1f40f371 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/base-css.mustache @@ -0,0 +1,2102 @@ + +
                  +
                  +

                  {{_i}}Base CSS{{/i}}

                  +

                  {{_i}}Fundamental HTML elements styled and enhanced with extensible classes.{{/i}}

                  +
                  +
                  + + +
                  + + +
                  + +
                  + + + + +
                  + + + {{! Headings }} +

                  {{_i}}Headings{{/i}}

                  +

                  {{_i}}All HTML headings, <h1> through <h6> are available.{{/i}}

                  +
                  +

                  h1. {{_i}}Heading 1{{/i}}

                  +

                  h2. {{_i}}Heading 2{{/i}}

                  +

                  h3. {{_i}}Heading 3{{/i}}

                  +

                  h4. {{_i}}Heading 4{{/i}}

                  +
                  h5. {{_i}}Heading 5{{/i}}
                  +
                  h6. {{_i}}Heading 6{{/i}}
                  +
                  + + {{! Body copy }} +

                  {{_i}}Body copy{{/i}}

                  +

                  {{_i}}Bootstrap's global default font-size is 14px, with a line-height of 20px. This is applied to the <body> and all paragraphs. In addition, <p> (paragraphs) receive a bottom margin of half their line-height (10px by default).{{/i}}

                  +
                  +

                  Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.

                  +

                  Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec ullamcorper nulla non metus auctor fringilla. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla.

                  +

                  Maecenas sed diam eget risus varius blandit sit amet non magna. Donec id elit non mi porta gravida at eget metus. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit.

                  +
                  +
                  <p>...</p>
                  + + {{! Body copy .lead }} +

                  {{_i}}Lead body copy{{/i}}

                  +

                  {{_i}}Make a paragraph stand out by adding .lead.{{/i}}

                  +
                  +

                  Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus.

                  +
                  +
                  <p class="lead">...</p>
                  + + {{! Using LESS }} +

                  {{_i}}Built with Less{{/i}}

                  +

                  {{_i}}The typographic scale is based on two LESS variables in variables.less: @baseFontSize and @baseLineHeight. The first is the base font-size used throughout and the second is the base line-height. We use those variables and some simple math to create the margins, paddings, and line-heights of all our type and more. Customize them and Bootstrap adapts.{{/i}}

                  + + +
                  + + + {{! Emphasis }} +

                  {{_i}}Emphasis{{/i}}

                  +

                  {{_i}}Make use of HTML's default emphasis tags with lightweight styles.{{/i}}

                  + +

                  <small>

                  +

                  {{_i}}For de-emphasizing inline or blocks of text, use the small tag.{{/i}}

                  +
                  +

                  This line of text is meant to be treated as fine print.

                  +
                  +
                  +<p>
                  +  <small>This line of text is meant to be treated as fine print.</small>
                  +</p>
                  +
                  + +

                  {{_i}}Bold{{/i}}

                  +

                  {{_i}}For emphasizing a snippet of text with a heavier font-weight.{{/i}}

                  +
                  +

                  The following snippet of text is rendered as bold text.

                  +
                  +
                  <strong>rendered as bold text</strong>
                  + +

                  {{_i}}Italics{{/i}}

                  +

                  {{_i}}For emphasizing a snippet of text with italics.{{/i}}

                  +
                  +

                  The following snippet of text is rendered as italicized text.

                  +
                  +
                  <em>rendered as italicized text</em>
                  + +

                  {{_i}}Heads up!{{/i}} {{_i}}Feel free to use <b> and <i> in HTML5. <b> is meant to highlight words or phrases without conveying additional importance while <i> is mostly for voice, technical terms, etc.{{/i}}

                  + +

                  {{_i}}Alignment classes{{/i}}

                  +

                  {{_i}}Easily realign text to components with text alignment classes.{{/i}}

                  +
                  +

                  Left aligned text.

                  +

                  Center aligned text.

                  +

                  Right aligned text.

                  +
                  +
                  +<p class="text-left">Left aligned text.</p>
                  +<p class="text-center">Center aligned text.</p>
                  +<p class="text-right">Right aligned text.</p>
                  +
                  + +

                  {{_i}}Emphasis classes{{/i}}

                  +

                  {{_i}}Convey meaning through color with a handful of emphasis utility classes.{{/i}}

                  +
                  +

                  Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.

                  +

                  Etiam porta sem malesuada magna mollis euismod.

                  +

                  Donec ullamcorper nulla non metus auctor fringilla.

                  +

                  Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis.

                  +

                  Duis mollis, est non commodo luctus, nisi erat porttitor ligula.

                  +
                  +
                  +<p class="muted">Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.</p>
                  +<p class="text-warning">Etiam porta sem malesuada magna mollis euismod.</p>
                  +<p class="text-error">Donec ullamcorper nulla non metus auctor fringilla.</p>
                  +<p class="text-info">Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis.</p>
                  +<p class="text-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>
                  +
                  + + +
                  + + + {{! Abbreviations }} +

                  {{_i}}Abbreviations{{/i}}

                  +

                  {{_i}}Stylized implementation of HTML's <abbr> element for abbreviations and acronyms to show the expanded version on hover. Abbreviations with a title attribute have a light dotted bottom border and a help cursor on hover, providing additional context on hover.{{/i}}

                  + +

                  <abbr>

                  +

                  {{_i}}For expanded text on long hover of an abbreviation, include the title attribute.{{/i}}

                  +
                  +

                  {{_i}}An abbreviation of the word attribute is attr.{{/i}}

                  +
                  +
                  <abbr title="attribute">attr</abbr>
                  + +

                  <abbr class="initialism">

                  +

                  {{_i}}Add .initialism to an abbreviation for a slightly smaller font-size.{{/i}}

                  +
                  +

                  {{_i}}HTML is the best thing since sliced bread.{{/i}}

                  +
                  +
                  <abbr title="HyperText Markup Language" class="initialism">HTML</abbr>
                  + + +
                  + + + {{! Addresses }} +

                  {{_i}}Addresses{{/i}}

                  +

                  {{_i}}Present contact information for the nearest ancestor or the entire body of work.{{/i}}

                  + +

                  <address>

                  +

                  {{_i}}Preserve formatting by ending all lines with <br>.{{/i}}

                  +
                  +
                  + Twitter, Inc.
                  + 795 Folsom Ave, Suite 600
                  + San Francisco, CA 94107
                  + P: (123) 456-7890 +
                  +
                  + {{_i}}Full Name{{/i}}
                  + {{_i}}first.last@example.com{{/i}} +
                  +
                  +
                  +<address>
                  +  <strong>Twitter, Inc.</strong><br>
                  +  795 Folsom Ave, Suite 600<br>
                  +  San Francisco, CA 94107<br>
                  +  <abbr title="Phone">P:</abbr> (123) 456-7890
                  +</address>
                  +
                  +<address>
                  +  <strong>{{_i}}Full Name{{/i}}</strong><br>
                  +  <a href="mailto:#">{{_i}}first.last@example.com{{/i}}</a>
                  +</address>
                  +
                  + + +
                  + + + {{! Blockquotes }} +

                  {{_i}}Blockquotes{{/i}}

                  +

                  {{_i}}For quoting blocks of content from another source within your document.{{/i}}

                  + +

                  {{_i}}Default blockquote{{/i}}

                  +

                  {{_i}}Wrap <blockquote> around any HTML as the quote. For straight quotes we recommend a <p>.{{/i}}

                  +
                  +
                  +

                  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

                  +
                  +
                  +
                  +<blockquote>
                  +  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
                  +</blockquote>
                  +
                  + +

                  {{_i}}Blockquote options{{/i}}

                  +

                  {{_i}}Style and content changes for simple variations on a standard blockquote.{{/i}}

                  + +

                  {{_i}}Naming a source{{/i}}

                  +

                  {{_i}}Add <small> tag for identifying the source. Wrap the name of the source work in <cite>.{{/i}}

                  +
                  +
                  +

                  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

                  + {{_i}}Someone famous in Source Title{{/i}} +
                  +
                  +
                  +<blockquote>
                  +  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
                  +  <small>{{_i}}Someone famous <cite title="Source Title">Source Title</cite>{{/i}}</small>
                  +</blockquote>
                  +
                  + +

                  {{_i}}Alternate displays{{/i}}

                  +

                  {{_i}}Use .pull-right for a floated, right-aligned blockquote.{{/i}}

                  +
                  +
                  +

                  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

                  + {{_i}}Someone famous in Source Title{{/i}} +
                  +
                  +
                  +<blockquote class="pull-right">
                  +  ...
                  +</blockquote>
                  +
                  + + +
                  + + + +

                  {{_i}}Lists{{/i}}

                  + +

                  {{_i}}Unordered{{/i}}

                  +

                  {{_i}}A list of items in which the order does not explicitly matter.{{/i}}

                  +
                  +
                    +
                  • Lorem ipsum dolor sit amet
                  • +
                  • Consectetur adipiscing elit
                  • +
                  • Integer molestie lorem at massa
                  • +
                  • Facilisis in pretium nisl aliquet
                  • +
                  • Nulla volutpat aliquam velit +
                      +
                    • Phasellus iaculis neque
                    • +
                    • Purus sodales ultricies
                    • +
                    • Vestibulum laoreet porttitor sem
                    • +
                    • Ac tristique libero volutpat at
                    • +
                    +
                  • +
                  • Faucibus porta lacus fringilla vel
                  • +
                  • Aenean sit amet erat nunc
                  • +
                  • Eget porttitor lorem
                  • +
                  +
                  +
                  +<ul>
                  +  <li>...</li>
                  +</ul>
                  +
                  + +

                  {{_i}}Ordered{{/i}}

                  +

                  {{_i}}A list of items in which the order does explicitly matter.{{/i}}

                  +
                  +
                    +
                  1. Lorem ipsum dolor sit amet
                  2. +
                  3. Consectetur adipiscing elit
                  4. +
                  5. Integer molestie lorem at massa
                  6. +
                  7. Facilisis in pretium nisl aliquet
                  8. +
                  9. Nulla volutpat aliquam velit
                  10. +
                  11. Faucibus porta lacus fringilla vel
                  12. +
                  13. Aenean sit amet erat nunc
                  14. +
                  15. Eget porttitor lorem
                  16. +
                  +
                  +
                  +<ol>
                  +  <li>...</li>
                  +</ol>
                  +
                  + +

                  {{_i}}Unstyled{{/i}}

                  +

                  {{_i}}Remove the default list-style and left padding on list items (immediate children only).{{/i}}

                  +
                  +
                    +
                  • Lorem ipsum dolor sit amet
                  • +
                  • Consectetur adipiscing elit
                  • +
                  • Integer molestie lorem at massa
                  • +
                  • Facilisis in pretium nisl aliquet
                  • +
                  • Nulla volutpat aliquam velit +
                      +
                    • Phasellus iaculis neque
                    • +
                    • Purus sodales ultricies
                    • +
                    • Vestibulum laoreet porttitor sem
                    • +
                    • Ac tristique libero volutpat at
                    • +
                    +
                  • +
                  • Faucibus porta lacus fringilla vel
                  • +
                  • Aenean sit amet erat nunc
                  • +
                  • Eget porttitor lorem
                  • +
                  +
                  +
                  +<ul class="unstyled">
                  +  <li>...</li>
                  +</ul>
                  +
                  + +

                  {{_i}}Inline{{/i}}

                  +

                  {{_i}}Place all list items on a single line with inline-block and some light padding.{{/i}}

                  +
                  +
                    +
                  • Lorem ipsum
                  • +
                  • Phasellus iaculis
                  • +
                  • Nulla volutpat
                  • +
                  +
                  +
                  +<ul class="inline">
                  +  <li>...</li>
                  +</ul>
                  +
                  + +

                  {{_i}}Description{{/i}}

                  +

                  {{_i}}A list of terms with their associated descriptions.{{/i}}

                  +
                  +
                  +
                  {{_i}}Description lists{{/i}}
                  +
                  {{_i}}A description list is perfect for defining terms.{{/i}}
                  +
                  Euismod
                  +
                  Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
                  +
                  Donec id elit non mi porta gravida at eget metus.
                  +
                  Malesuada porta
                  +
                  Etiam porta sem malesuada magna mollis euismod.
                  +
                  +
                  +
                  +<dl>
                  +  <dt>...</dt>
                  +  <dd>...</dd>
                  +</dl>
                  +
                  + +

                  {{_i}}Horizontal description{{/i}}

                  +

                  {{_i}}Make terms and descriptions in <dl> line up side-by-side.{{/i}}

                  +
                  +
                  +
                  {{_i}}Description lists{{/i}}
                  +
                  {{_i}}A description list is perfect for defining terms.{{/i}}
                  +
                  Euismod
                  +
                  Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
                  +
                  Donec id elit non mi porta gravida at eget metus.
                  +
                  Malesuada porta
                  +
                  Etiam porta sem malesuada magna mollis euismod.
                  +
                  Felis euismod semper eget lacinia
                  +
                  Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
                  +
                  +
                  +
                  +<dl class="dl-horizontal">
                  +  <dt>...</dt>
                  +  <dd>...</dd>
                  +</dl>
                  +
                  +

                  + {{_i}}Heads up!{{/i}} + {{_i}}Horizontal description lists will truncate terms that are too long to fit in the left column fix text-overflow. In narrower viewports, they will change to the default stacked layout.{{/i}} +

                  +
                  + + + + +
                  + + +

                  Inline

                  +

                  Wrap inline snippets of code with <code>.

                  +
                  + For example, <section> should be wrapped as inline. +
                  +
                  +{{_i}}For example, <code>&lt;section&gt;</code> should be wrapped as inline.{{/i}}
                  +
                  + +

                  Basic block

                  +

                  {{_i}}Use <pre> for multiple lines of code. Be sure to escape any angle brackets in the code for proper rendering.{{/i}}

                  +
                  +
                  <p>{{_i}}Sample text here...{{/i}}</p>
                  +
                  +
                  +<pre>
                  +  &lt;p&gt;{{_i}}Sample text here...{{/i}}&lt;/p&gt;
                  +</pre>
                  +
                  +

                  {{_i}}Heads up!{{/i}} {{_i}}Be sure to keep code within <pre> tags as close to the left as possible; it will render all tabs.{{/i}}

                  +

                  {{_i}}You may optionally add the .pre-scrollable class which will set a max-height of 350px and provide a y-axis scrollbar.{{/i}}

                  +
                  + + + + +
                  + + +

                  {{_i}}Default styles{{/i}}

                  +

                  {{_i}}For basic styling—light padding and only horizontal dividers—add the base class .table to any <table>.{{/i}}

                  +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  #{{_i}}First Name{{/i}}{{_i}}Last Name{{/i}}{{_i}}Username{{/i}}
                  1MarkOtto@mdo
                  2JacobThornton@fat
                  3Larrythe Bird@twitter
                  +
                  {{! /example }} +
                  +<table class="table">
                  +  …
                  +</table>
                  +
                  + + +
                  + + +

                  {{_i}}Optional classes{{/i}}

                  +

                  {{_i}}Add any of the following classes to the .table base class.{{/i}}

                  + +

                  {{_i}}.table-striped{{/i}}

                  +

                  {{_i}}Adds zebra-striping to any table row within the <tbody> via the :nth-child CSS selector (not available in IE7-8).{{/i}}

                  +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  #{{_i}}First Name{{/i}}{{_i}}Last Name{{/i}}{{_i}}Username{{/i}}
                  1MarkOtto@mdo
                  2JacobThornton@fat
                  3Larrythe Bird@twitter
                  +
                  {{! /example }} +
                  +<table class="table table-striped">
                  +  …
                  +</table>
                  +
                  + +

                  {{_i}}.table-bordered{{/i}}

                  +

                  {{_i}}Add borders and rounded corners to the table.{{/i}}

                  +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  #{{_i}}First Name{{/i}}{{_i}}Last Name{{/i}}{{_i}}Username{{/i}}
                  1MarkOtto@mdo
                  MarkOtto@TwBootstrap
                  2JacobThornton@fat
                  3Larry the Bird@twitter
                  +
                  {{! /example }} +
                  +<table class="table table-bordered">
                  +  …
                  +</table>
                  +
                  + +

                  {{_i}}.table-hover{{/i}}

                  +

                  {{_i}}Enable a hover state on table rows within a <tbody>.{{/i}}

                  +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  #{{_i}}First Name{{/i}}{{_i}}Last Name{{/i}}{{_i}}Username{{/i}}
                  1MarkOtto@mdo
                  2JacobThornton@fat
                  3Larry the Bird@twitter
                  +
                  {{! /example }} +
                  +<table class="table table-hover">
                  +  …
                  +</table>
                  +
                  + +

                  {{_i}}.table-condensed{{/i}}

                  +

                  {{_i}}Makes tables more compact by cutting cell padding in half.{{/i}}

                  +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  #{{_i}}First Name{{/i}}{{_i}}Last Name{{/i}}{{_i}}Username{{/i}}
                  1MarkOtto@mdo
                  2JacobThornton@fat
                  3Larry the Bird@twitter
                  +
                  {{! /example }} +
                  +<table class="table table-condensed">
                  +  …
                  +</table>
                  +
                  + + +
                  + + +

                  {{_i}}Optional row classes{{/i}}

                  +

                  {{_i}}Use contextual classes to color table rows.{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Class{{/i}}{{_i}}Description{{/i}}
                  + .success + {{_i}}Indicates a successful or positive action.{{/i}}
                  + .error + {{_i}}Indicates a dangerous or potentially negative action.{{/i}}
                  + .warning + {{_i}}Indicates a warning that might need attention.{{/i}}
                  + .info + {{_i}}Used as an alternative to the default styles.{{/i}}
                  +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  #{{_i}}Product{{/i}}{{_i}}Payment Taken{{/i}}{{_i}}Status{{/i}}
                  1TB - Monthly01/04/2012Approved
                  2TB - Monthly02/04/2012Declined
                  3TB - Monthly03/04/2012Pending
                  4TB - Monthly04/04/2012Call in to confirm
                  +
                  {{! /example }} +
                  +...
                  +  <tr class="success">
                  +    <td>1</td>
                  +    <td>TB - Monthly</td>
                  +    <td>01/04/2012</td>
                  +    <td>Approved</td>
                  +  </tr>
                  +...
                  +
                  + + +
                  + + +

                  {{_i}}Supported table markup{{/i}}

                  +

                  {{_i}}List of supported table HTML elements and how they should be used.{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Tag{{/i}}{{_i}}Description{{/i}}
                  + <table> + + {{_i}}Wrapping element for displaying data in a tabular format{{/i}} +
                  + <thead> + + {{_i}}Container element for table header rows (<tr>) to label table columns{{/i}} +
                  + <tbody> + + {{_i}}Container element for table rows (<tr>) in the body of the table{{/i}} +
                  + <tr> + + {{_i}}Container element for a set of table cells (<td> or <th>) that appears on a single row{{/i}} +
                  + <td> + + {{_i}}Default table cell{{/i}} +
                  + <th> + + {{_i}}Special table cell for column (or row, depending on scope and placement) labels{{/i}} +
                  + <caption> + + {{_i}}Description or summary of what the table holds, especially useful for screen readers{{/i}} +
                  +
                  +<table>
                  +  <caption>...</caption>
                  +  <thead>
                  +    <tr>
                  +      <th>...</th>
                  +      <th>...</th>
                  +    </tr>
                  +  </thead>
                  +  <tbody>
                  +    <tr>
                  +      <td>...</td>
                  +      <td>...</td>
                  +    </tr>
                  +  </tbody>
                  +</table>
                  +
                  + +
                  + + + + +
                  + + +

                  {{_i}}Default styles{{/i}}

                  +

                  {{_i}}Individual form controls receive styling, but without any required base class on the <form> or large changes in markup. Results in stacked, left-aligned labels on top of form controls.{{/i}}

                  +
                  +
                  + Legend + + + {{_i}}Example block-level help text here.{{/i}} + + +
                  +
                  {{! /example }} +
                  +<form>
                  +  <fieldset>
                  +    <legend>{{_i}}Legend{{/i}}</legend>
                  +    <label>{{_i}}Label name{{/i}}</label>
                  +    <input type="text" placeholder="{{_i}}Type something…{{/i}}">
                  +    <span class="help-block">Example block-level help text here.</span>
                  +    <label class="checkbox">
                  +      <input type="checkbox"> {{_i}}Check me out{{/i}}
                  +    </label>
                  +    <button type="submit" class="btn">{{_i}}Submit{{/i}}</button>
                  +  </fieldset>
                  +</form>
                  +
                  + + +
                  + + +

                  {{_i}}Optional layouts{{/i}}

                  +

                  {{_i}}Included with Bootstrap are three optional form layouts for common use cases.{{/i}}

                  + +

                  {{_i}}Search form{{/i}}

                  +

                  {{_i}}Add .form-search to the form and .search-query to the <input> for an extra-rounded text input.{{/i}}

                  + {{! /example }} +
                  +<form class="form-search">
                  +  <input type="text" class="input-medium search-query">
                  +  <button type="submit" class="btn">{{_i}}Search{{/i}}</button>
                  +</form>
                  +
                  + +

                  {{_i}}Inline form{{/i}}

                  +

                  {{_i}}Add .form-inline for left-aligned labels and inline-block controls for a compact layout.{{/i}}

                  +
                  + + + + +
                  {{! /example }} +
                  +<form class="form-inline">
                  +  <input type="text" class="input-small" placeholder="{{_i}}Email{{/i}}">
                  +  <input type="password" class="input-small" placeholder="{{_i}}Password{{/i}}">
                  +  <label class="checkbox">
                  +    <input type="checkbox"> {{_i}}Remember me{{/i}}
                  +  </label>
                  +  <button type="submit" class="btn">{{_i}}Sign in{{/i}}</button>
                  +</form>
                  +
                  + +

                  {{_i}}Horizontal form{{/i}}

                  +

                  {{_i}}Right align labels and float them to the left to make them appear on the same line as controls. Requires the most markup changes from a default form:{{/i}}

                  +
                    +
                  • {{_i}}Add .form-horizontal to the form{{/i}}
                  • +
                  • {{_i}}Wrap labels and controls in .control-group{{/i}}
                  • +
                  • {{_i}}Add .control-label to the label{{/i}}
                  • +
                  • {{_i}}Wrap any associated controls in .controls for proper alignment{{/i}}
                  • +
                  +
                  +
                  + +
                  + +
                  +
                  +
                  + +
                  + +
                  +
                  +
                  +
                  + + +
                  +
                  +
                  +
                  +<form class="form-horizontal">
                  +  <div class="control-group">
                  +    <label class="control-label" for="inputEmail">{{_i}}Email{{/i}}</label>
                  +    <div class="controls">
                  +      <input type="text" id="inputEmail" placeholder="{{_i}}Email{{/i}}">
                  +    </div>
                  +  </div>
                  +  <div class="control-group">
                  +    <label class="control-label" for="inputPassword">{{_i}}Password{{/i}}</label>
                  +    <div class="controls">
                  +      <input type="password" id="inputPassword" placeholder="{{_i}}Password{{/i}}">
                  +    </div>
                  +  </div>
                  +  <div class="control-group">
                  +    <div class="controls">
                  +      <label class="checkbox">
                  +        <input type="checkbox"> {{_i}}Remember me{{/i}}
                  +      </label>
                  +      <button type="submit" class="btn">{{_i}}Sign in{{/i}}</button>
                  +    </div>
                  +  </div>
                  +</form>
                  +
                  + + +
                  + + +

                  {{_i}}Supported form controls{{/i}}

                  +

                  {{_i}}Examples of standard form controls supported in an example form layout.{{/i}}

                  + +

                  {{_i}}Inputs{{/i}}

                  +

                  {{_i}}Most common form control, text-based input fields. Includes support for all HTML5 types: text, password, datetime, datetime-local, date, month, time, week, number, email, url, search, tel, and color.{{/i}}

                  +

                  {{_i}}Requires the use of a specified type at all times.{{/i}}

                  +
                  + +
                  +
                  +<input type="text" placeholder="Text input">
                  +
                  + +

                  {{_i}}Textarea{{/i}}

                  +

                  {{_i}}Form control which supports multiple lines of text. Change rows attribute as necessary.{{/i}}

                  +
                  + +
                  +
                  +<textarea rows="3"></textarea>
                  +
                  + +

                  {{_i}}Checkboxes and radios{{/i}}

                  +

                  {{_i}}Checkboxes are for selecting one or several options in a list while radios are for selecting one option from many.{{/i}}

                  +

                  {{_i}}Default (stacked){{/i}}

                  +
                  + +
                  + + +
                  +
                  +<label class="checkbox">
                  +  <input type="checkbox" value="">
                  +  {{_i}}Option one is this and that—be sure to include why it's great{{/i}}
                  +</label>
                  +
                  +<label class="radio">
                  +  <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>
                  +  {{_i}}Option one is this and that—be sure to include why it's great{{/i}}
                  +</label>
                  +<label class="radio">
                  +  <input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">
                  +  {{_i}}Option two can be something else and selecting it will deselect option one{{/i}}
                  +</label>
                  +
                  + +

                  {{_i}}Inline checkboxes{{/i}}

                  +

                  {{_i}}Add the .inline class to a series of checkboxes or radios for controls appear on the same line.{{/i}}

                  +
                  + + + +
                  +
                  +<label class="checkbox inline">
                  +  <input type="checkbox" id="inlineCheckbox1" value="option1"> 1
                  +</label>
                  +<label class="checkbox inline">
                  +  <input type="checkbox" id="inlineCheckbox2" value="option2"> 2
                  +</label>
                  +<label class="checkbox inline">
                  +  <input type="checkbox" id="inlineCheckbox3" value="option3"> 3
                  +</label>
                  +
                  + +

                  {{_i}}Selects{{/i}}

                  +

                  {{_i}}Use the default option or specify a multiple="multiple" to show multiple options at once.{{/i}}

                  +
                  + +
                  + +
                  +
                  +<select>
                  +  <option>1</option>
                  +  <option>2</option>
                  +  <option>3</option>
                  +  <option>4</option>
                  +  <option>5</option>
                  +</select>
                  +
                  +<select multiple="multiple">
                  +  <option>1</option>
                  +  <option>2</option>
                  +  <option>3</option>
                  +  <option>4</option>
                  +  <option>5</option>
                  +</select>
                  +
                  + + +
                  + + +

                  {{_i}}Extending form controls{{/i}}

                  +

                  {{_i}}Adding on top of existing browser controls, Bootstrap includes other useful form components.{{/i}}

                  + +

                  {{_i}}Prepended and appended inputs{{/i}}

                  +

                  {{_i}}Add text or buttons before or after any text-based input. Do note that select elements are not supported here.{{/i}}

                  + +

                  {{_i}}Default options{{/i}}

                  +

                  {{_i}}Wrap an .add-on and an input with one of two classes to prepend or append text to an input.{{/i}}

                  +
                  +
                  + @ + +
                  +
                  +
                  + + .00 +
                  +
                  +
                  +<div class="input-prepend">
                  +  <span class="add-on">@</span>
                  +  <input class="span2" id="prependedInput" type="text" placeholder="{{_i}}Username{{/i}}">
                  +</div>
                  +<div class="input-append">
                  +  <input class="span2" id="appendedInput" type="text">
                  +  <span class="add-on">.00</span>
                  +</div>
                  +
                  + +

                  {{_i}}Combined{{/i}}

                  +

                  {{_i}}Use both classes and two instances of .add-on to prepend and append an input.{{/i}}

                  +
                  +
                  + $ + + .00 +
                  +
                  +
                  +<div class="input-prepend input-append">
                  +  <span class="add-on">$</span>
                  +  <input class="span2" id="appendedPrependedInput" type="text">
                  +  <span class="add-on">.00</span>
                  +</div>
                  +
                  + +

                  {{_i}}Buttons instead of text{{/i}}

                  +

                  {{_i}}Instead of a <span> with text, use a .btn to attach a button (or two) to an input.{{/i}}

                  +
                  +
                  + + +
                  +
                  +
                  +<div class="input-append">
                  +  <input class="span2" id="appendedInputButton" type="text">
                  +  <button class="btn" type="button">Go!</button>
                  +</div>
                  +
                  +
                  +
                  + + + +
                  +
                  +
                  +<div class="input-append">
                  +  <input class="span2" id="appendedInputButtons" type="text">
                  +  <button class="btn" type="button">Search</button>
                  +  <button class="btn" type="button">Options</button>
                  +</div>
                  +
                  + +

                  {{_i}}Button dropdowns{{/i}}

                  +

                  {{_i}}{{/i}}

                  +
                  + +
                  +
                  +<div class="input-append">
                  +  <input class="span2" id="appendedDropdownButton" type="text">
                  +  <div class="btn-group">
                  +    <button class="btn dropdown-toggle" data-toggle="dropdown">
                  +      {{_i}}Action{{/i}}
                  +      <span class="caret"></span>
                  +    </button>
                  +    <ul class="dropdown-menu">
                  +      ...
                  +    </ul>
                  +  </div>
                  +</div>
                  +
                  + +
                  + +
                  +
                  +<div class="input-prepend">
                  +  <div class="btn-group">
                  +    <button class="btn dropdown-toggle" data-toggle="dropdown">
                  +      {{_i}}Action{{/i}}
                  +      <span class="caret"></span>
                  +    </button>
                  +    <ul class="dropdown-menu">
                  +      ...
                  +    </ul>
                  +  </div>
                  +  <input class="span2" id="prependedDropdownButton" type="text">
                  +</div>
                  +
                  + +
                  + +
                  +
                  +<div class="input-prepend input-append">
                  +  <div class="btn-group">
                  +    <button class="btn dropdown-toggle" data-toggle="dropdown">
                  +      {{_i}}Action{{/i}}
                  +      <span class="caret"></span>
                  +    </button>
                  +    <ul class="dropdown-menu">
                  +      ...
                  +    </ul>
                  +  </div>
                  +  <input class="span2" id="appendedPrependedDropdownButton" type="text">
                  +  <div class="btn-group">
                  +    <button class="btn dropdown-toggle" data-toggle="dropdown">
                  +      {{_i}}Action{{/i}}
                  +      <span class="caret"></span>
                  +    </button>
                  +    <ul class="dropdown-menu">
                  +      ...
                  +    </ul>
                  +  </div>
                  +</div>
                  +
                  + +

                  {{_i}}Segmented dropdown groups{{/i}}

                  +
                  + + +
                  +
                  +<form>
                  +  <div class="input-prepend">
                  +    <div class="btn-group">...</div>
                  +    <input type="text">
                  +  </div>
                  +  <div class="input-append">
                  +    <input type="text">
                  +    <div class="btn-group">...</div>
                  +  </div>
                  +</form>
                  +
                  + +

                  {{_i}}Search form{{/i}}

                  + {{! /example }} +
                  +<form class="form-search">
                  +  <div class="input-append">
                  +    <input type="text" class="span2 search-query">
                  +    <button type="submit" class="btn">{{_i}}Search{{/i}}</button>
                  +  </div>
                  +  <div class="input-prepend">
                  +    <button type="submit" class="btn">{{_i}}Search{{/i}}</button>
                  +    <input type="text" class="span2 search-query">
                  +  </div>
                  +</form>
                  +
                  + +

                  {{_i}}Control sizing{{/i}}

                  +

                  {{_i}}Use relative sizing classes like .input-large or match your inputs to the grid column sizes using .span* classes.{{/i}}

                  + +

                  {{_i}}Block level inputs{{/i}}

                  +

                  {{_i}}Make any <input> or <textarea> element behave like a block level element.{{/i}}

                  +
                  +
                  + +
                  +
                  +
                  +<input class="input-block-level" type="text" placeholder=".input-block-level">
                  +
                  + +

                  {{_i}}Relative sizing{{/i}}

                  +
                  +
                  + + + + + + +
                  +
                  +
                  +<input class="input-mini" type="text" placeholder=".input-mini">
                  +<input class="input-small" type="text" placeholder=".input-small">
                  +<input class="input-medium" type="text" placeholder=".input-medium">
                  +<input class="input-large" type="text" placeholder=".input-large">
                  +<input class="input-xlarge" type="text" placeholder=".input-xlarge">
                  +<input class="input-xxlarge" type="text" placeholder=".input-xxlarge">
                  +
                  +

                  + {{_i}}Heads up!{{/i}} In future versions, we'll be altering the use of these relative input classes to match our button sizes. For example, .input-large will increase the padding and font-size of an input. +

                  + +

                  {{_i}}Grid sizing{{/i}}

                  +

                  {{_i}}Use .span1 to .span12 for inputs that match the same sizes of the grid columns.{{/i}}

                  +
                  +
                  + + + + + + +
                  +
                  +
                  +<input class="span1" type="text" placeholder=".span1">
                  +<input class="span2" type="text" placeholder=".span2">
                  +<input class="span3" type="text" placeholder=".span3">
                  +<select class="span1">
                  +  ...
                  +</select>
                  +<select class="span2">
                  +  ...
                  +</select>
                  +<select class="span3">
                  +  ...
                  +</select>
                  +
                  + +

                  {{_i}}For multiple grid inputs per line, use the .controls-row modifier class for proper spacing. It floats the inputs to collapse white-space, sets the proper margins, and clears the float.{{/i}}

                  +
                  +
                  + +
                  +
                  + + +
                  +
                  + + +
                  +
                  + + +
                  +
                  + + +
                  +
                  +
                  +<div class="controls">
                  +  <input class="span5" type="text" placeholder=".span5">
                  +</div>
                  +<div class="controls controls-row">
                  +  <input class="span4" type="text" placeholder=".span4">
                  +  <input class="span1" type="text" placeholder=".span1">
                  +</div>
                  +...
                  +
                  + +

                  {{_i}}Uneditable inputs{{/i}}

                  +

                  {{_i}}Present data in a form that's not editable without using actual form markup.{{/i}}

                  +
                  + Some value here +
                  +
                  +<span class="input-xlarge uneditable-input">Some value here</span>
                  +
                  + +

                  {{_i}}Form actions{{/i}}

                  +

                  {{_i}}End a form with a group of actions (buttons). When placed within a .form-actions, the buttons will automatically indent to line up with the form controls.{{/i}}

                  +
                  +
                  + + +
                  +
                  +
                  +<div class="form-actions">
                  +  <button type="submit" class="btn btn-primary">{{_i}}Save changes{{/i}}</button>
                  +  <button type="button" class="btn">{{_i}}Cancel{{/i}}</button>
                  +</div>
                  +
                  + +

                  {{_i}}Help text{{/i}}

                  +

                  {{_i}}Inline and block level support for help text that appears around form controls.{{/i}}

                  +

                  {{_i}}Inline help{{/i}}

                  +
                  + Inline help text +
                  +
                  +<input type="text"><span class="help-inline">Inline help text</span>
                  +
                  + +

                  {{_i}}Block help{{/i}}

                  +
                  + + A longer block of help text that breaks onto a new line and may extend beyond one line. +
                  +
                  +<input type="text"><span class="help-block">A longer block of help text that breaks onto a new line and may extend beyond one line.</span>
                  +
                  + + +
                  + + +

                  {{_i}}Form control states{{/i}}

                  +

                  {{_i}}Provide feedback to users or visitors with basic feedback states on form controls and labels.{{/i}}

                  + +

                  {{_i}}Input focus{{/i}}

                  +

                  {{_i}}We remove the default outline styles on some form controls and apply a box-shadow in its place for :focus.{{/i}}

                  +
                  + +
                  +
                  +<input class="input-xlarge" id="focusedInput" type="text" value="{{_i}}This is focused...{{/i}}">
                  +
                  + +

                  {{_i}}Invalid inputs{{/i}}

                  +

                  {{_i}}Style inputs via default browser functionality with :invalid. Specify a type, add the required attribute if the field is not optional, and (if applicable) specify a pattern.{{/i}}

                  +

                  {{_i}}This is not available in versions of Internet Explorer 7-9 due to lack of support for CSS pseudo selectors.{{/i}}

                  +
                  + +
                  +
                  +<input class="span3" type="email" required>
                  +
                  + +

                  {{_i}}Disabled inputs{{/i}}

                  +

                  {{_i}}Add the disabled attribute on an input to prevent user input and trigger a slightly different look.{{/i}}

                  +
                  + +
                  +
                  +<input class="input-xlarge" id="disabledInput" type="text" placeholder="{{_i}}Disabled input here...{{/i}}" disabled>
                  +
                  + +

                  {{_i}}Validation states{{/i}}

                  +

                  {{_i}}Bootstrap includes validation styles for error, warning, info, and success messages. To use, add the appropriate class to the surrounding .control-group.{{/i}}

                  + +
                  +
                  + +
                  + + {{_i}}Something may have gone wrong{{/i}} +
                  +
                  +
                  + +
                  + + {{_i}}Please correct the error{{/i}} +
                  +
                  +
                  + +
                  + + {{_i}}Username is taken{{/i}} +
                  +
                  +
                  + +
                  + + {{_i}}Woohoo!{{/i}} +
                  +
                  +
                  +
                  +<div class="control-group warning">
                  +  <label class="control-label" for="inputWarning">{{_i}}Input with warning{{/i}}</label>
                  +  <div class="controls">
                  +    <input type="text" id="inputWarning">
                  +    <span class="help-inline">{{_i}}Something may have gone wrong{{/i}}</span>
                  +  </div>
                  +</div>
                  +
                  +<div class="control-group error">
                  +  <label class="control-label" for="inputError">{{_i}}Input with error{{/i}}</label>
                  +  <div class="controls">
                  +    <input type="text" id="inputError">
                  +    <span class="help-inline">{{_i}}Please correct the error{{/i}}</span>
                  +  </div>
                  +</div>
                  +
                  +<div class="control-group info">
                  +  <label class="control-label" for="inputInfo">{{_i}}Input with info{{/i}}</label>
                  +  <div class="controls">
                  +    <input type="text" id="inputInfo">
                  +    <span class="help-inline">{{_i}}Username is already taken{{/i}}</span>
                  +  </div>
                  +</div>
                  +
                  +<div class="control-group success">
                  +  <label class="control-label" for="inputSuccess">{{_i}}Input with success{{/i}}</label>
                  +  <div class="controls">
                  +    <input type="text" id="inputSuccess">
                  +    <span class="help-inline">{{_i}}Woohoo!{{/i}}</span>
                  +  </div>
                  +</div>
                  +
                  + +
                  + + + + +
                  + + +

                  Default buttons

                  +

                  {{_i}}Button styles can be applied to anything with the .btn class applied. However, typically you'll want to apply these to only <a> and <button> elements for the best rendering.{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Button{{/i}}{{_i}}class=""{{/i}}{{_i}}Description{{/i}}
                  btn{{_i}}Standard gray button with gradient{{/i}}
                  btn btn-primary{{_i}}Provides extra visual weight and identifies the primary action in a set of buttons{{/i}}
                  btn btn-info{{_i}}Used as an alternative to the default styles{{/i}}
                  btn btn-success{{_i}}Indicates a successful or positive action{{/i}}
                  btn btn-warning{{_i}}Indicates caution should be taken with this action{{/i}}
                  btn btn-danger{{_i}}Indicates a dangerous or potentially negative action{{/i}}
                  btn btn-inverse{{_i}}Alternate dark gray button, not tied to a semantic action or use{{/i}}
                  btn btn-link{{_i}}Deemphasize a button by making it look like a link while maintaining button behavior{{/i}}
                  + +

                  {{_i}}Cross browser compatibility{{/i}}

                  +

                  {{_i}}IE9 doesn't crop background gradients on rounded corners, so we remove it. Related, IE9 jankifies disabled button elements, rendering text gray with a nasty text-shadow that we cannot fix.{{/i}}

                  + + +

                  {{_i}}Button sizes{{/i}}

                  +

                  {{_i}}Fancy larger or smaller buttons? Add .btn-large, .btn-small, or .btn-mini for additional sizes.{{/i}}

                  +
                  +

                  + + +

                  +

                  + + +

                  +

                  + + +

                  +

                  + + +

                  +
                  +
                  +<p>
                  +  <button class="btn btn-large btn-primary" type="button">{{_i}}Large button{{/i}}</button>
                  +  <button class="btn btn-large" type="button">{{_i}}Large button{{/i}}</button>
                  +</p>
                  +<p>
                  +  <button class="btn btn-primary" type="button">{{_i}}Default button{{/i}}</button>
                  +  <button class="btn" type="button">{{_i}}Default button{{/i}}</button>
                  +</p>
                  +<p>
                  +  <button class="btn btn-small btn-primary" type="button">{{_i}}Small button{{/i}}</button>
                  +  <button class="btn btn-small" type="button">{{_i}}Small button{{/i}}</button>
                  +</p>
                  +<p>
                  +  <button class="btn btn-mini btn-primary" type="button">{{_i}}Mini button{{/i}}</button>
                  +  <button class="btn btn-mini" type="button">{{_i}}Mini button{{/i}}</button>
                  +</p>
                  +
                  +

                  {{_i}}Create block level buttons—those that span the full width of a parent— by adding .btn-block.{{/i}}

                  +
                  +
                  + + +
                  +
                  +
                  +<button class="btn btn-large btn-block btn-primary" type="button">{{_i}}Block level button{{/i}}</button>
                  +<button class="btn btn-large btn-block" type="button">{{_i}}Block level button{{/i}}</button>
                  +
                  + + +

                  {{_i}}Disabled state{{/i}}

                  +

                  {{_i}}Make buttons look unclickable by fading them back 50%.{{/i}}

                  + +

                  Anchor element

                  +

                  {{_i}}Add the .disabled class to <a> buttons.{{/i}}

                  +

                  + {{_i}}Primary link{{/i}} + {{_i}}Link{{/i}} +

                  +
                  +<a href="#" class="btn btn-large btn-primary disabled">{{_i}}Primary link{{/i}}</a>
                  +<a href="#" class="btn btn-large disabled">{{_i}}Link{{/i}}</a>
                  +
                  +

                  + {{_i}}Heads up!{{/i}} + {{_i}}We use .disabled as a utility class here, similar to the common .active class, so no prefix is required. Also, this class is only for aesthetic; you must use custom JavaScript to disable links here.{{/i}} +

                  + +

                  Button element

                  +

                  {{_i}}Add the disabled attribute to <button> buttons.{{/i}}

                  +

                  + + +

                  +
                  +<button type="button" class="btn btn-large btn-primary disabled" disabled="disabled">{{_i}}Primary button{{/i}}</button>
                  +<button type="button" class="btn btn-large" disabled>{{_i}}Button{{/i}}</button>
                  +
                  + + +

                  {{_i}}One class, multiple tags{{/i}}

                  +

                  {{_i}}Use the .btn class on an <a>, <button>, or <input> element.{{/i}}

                  +
                  + {{_i}}Link{{/i}} + + + +
                  +
                  +<a class="btn" href="">{{_i}}Link{{/i}}</a>
                  +<button class="btn" type="submit">{{_i}}Button{{/i}}</button>
                  +<input class="btn" type="button" value="{{_i}}Input{{/i}}">
                  +<input class="btn" type="submit" value="{{_i}}Submit{{/i}}">
                  +
                  +

                  {{_i}}As a best practice, try to match the element for your context to ensure matching cross-browser rendering. If you have an input, use an <input type="submit"> for your button.{{/i}}

                  + +
                  + + + + +
                  + + +

                  {{_i}}Add classes to an <img> element to easily style images in any project.{{/i}}

                  +
                  + + + +
                  +
                  +<img src="..." class="img-rounded">
                  +<img src="..." class="img-circle">
                  +<img src="..." class="img-polaroid">
                  +
                  +

                  {{_i}}Heads up!{{/i}} {{_i}}.img-rounded and .img-circle do not work in IE7-8 due to lack of border-radius support.{{/i}}

                  + + +
                  + + + + +
                  + + +

                  {{_i}}Icon glyphs{{/i}}

                  +

                  {{_i}}140 icons in sprite form, available in dark gray (default) and white, provided by Glyphicons.{{/i}}

                  +
                    +
                  • icon-glass
                  • +
                  • icon-music
                  • +
                  • icon-search
                  • +
                  • icon-envelope
                  • +
                  • icon-heart
                  • +
                  • icon-star
                  • +
                  • icon-star-empty
                  • +
                  • icon-user
                  • +
                  • icon-film
                  • +
                  • icon-th-large
                  • +
                  • icon-th
                  • +
                  • icon-th-list
                  • +
                  • icon-ok
                  • +
                  • icon-remove
                  • +
                  • icon-zoom-in
                  • +
                  • icon-zoom-out
                  • +
                  • icon-off
                  • +
                  • icon-signal
                  • +
                  • icon-cog
                  • +
                  • icon-trash
                  • +
                  • icon-home
                  • +
                  • icon-file
                  • +
                  • icon-time
                  • +
                  • icon-road
                  • +
                  • icon-download-alt
                  • +
                  • icon-download
                  • +
                  • icon-upload
                  • +
                  • icon-inbox
                  • + +
                  • icon-play-circle
                  • +
                  • icon-repeat
                  • +
                  • icon-refresh
                  • +
                  • icon-list-alt
                  • +
                  • icon-lock
                  • +
                  • icon-flag
                  • +
                  • icon-headphones
                  • +
                  • icon-volume-off
                  • +
                  • icon-volume-down
                  • +
                  • icon-volume-up
                  • +
                  • icon-qrcode
                  • +
                  • icon-barcode
                  • +
                  • icon-tag
                  • +
                  • icon-tags
                  • +
                  • icon-book
                  • +
                  • icon-bookmark
                  • +
                  • icon-print
                  • +
                  • icon-camera
                  • +
                  • icon-font
                  • +
                  • icon-bold
                  • +
                  • icon-italic
                  • +
                  • icon-text-height
                  • +
                  • icon-text-width
                  • +
                  • icon-align-left
                  • +
                  • icon-align-center
                  • +
                  • icon-align-right
                  • +
                  • icon-align-justify
                  • +
                  • icon-list
                  • + +
                  • icon-indent-left
                  • +
                  • icon-indent-right
                  • +
                  • icon-facetime-video
                  • +
                  • icon-picture
                  • +
                  • icon-pencil
                  • +
                  • icon-map-marker
                  • +
                  • icon-adjust
                  • +
                  • icon-tint
                  • +
                  • icon-edit
                  • +
                  • icon-share
                  • +
                  • icon-check
                  • +
                  • icon-move
                  • +
                  • icon-step-backward
                  • +
                  • icon-fast-backward
                  • +
                  • icon-backward
                  • +
                  • icon-play
                  • +
                  • icon-pause
                  • +
                  • icon-stop
                  • +
                  • icon-forward
                  • +
                  • icon-fast-forward
                  • +
                  • icon-step-forward
                  • +
                  • icon-eject
                  • +
                  • icon-chevron-left
                  • +
                  • icon-chevron-right
                  • +
                  • icon-plus-sign
                  • +
                  • icon-minus-sign
                  • +
                  • icon-remove-sign
                  • +
                  • icon-ok-sign
                  • + +
                  • icon-question-sign
                  • +
                  • icon-info-sign
                  • +
                  • icon-screenshot
                  • +
                  • icon-remove-circle
                  • +
                  • icon-ok-circle
                  • +
                  • icon-ban-circle
                  • +
                  • icon-arrow-left
                  • +
                  • icon-arrow-right
                  • +
                  • icon-arrow-up
                  • +
                  • icon-arrow-down
                  • +
                  • icon-share-alt
                  • +
                  • icon-resize-full
                  • +
                  • icon-resize-small
                  • +
                  • icon-plus
                  • +
                  • icon-minus
                  • +
                  • icon-asterisk
                  • +
                  • icon-exclamation-sign
                  • +
                  • icon-gift
                  • +
                  • icon-leaf
                  • +
                  • icon-fire
                  • +
                  • icon-eye-open
                  • +
                  • icon-eye-close
                  • +
                  • icon-warning-sign
                  • +
                  • icon-plane
                  • +
                  • icon-calendar
                  • +
                  • icon-random
                  • +
                  • icon-comment
                  • +
                  • icon-magnet
                  • + +
                  • icon-chevron-up
                  • +
                  • icon-chevron-down
                  • +
                  • icon-retweet
                  • +
                  • icon-shopping-cart
                  • +
                  • icon-folder-close
                  • +
                  • icon-folder-open
                  • +
                  • icon-resize-vertical
                  • +
                  • icon-resize-horizontal
                  • +
                  • icon-hdd
                  • +
                  • icon-bullhorn
                  • +
                  • icon-bell
                  • +
                  • icon-certificate
                  • +
                  • icon-thumbs-up
                  • +
                  • icon-thumbs-down
                  • +
                  • icon-hand-right
                  • +
                  • icon-hand-left
                  • +
                  • icon-hand-up
                  • +
                  • icon-hand-down
                  • +
                  • icon-circle-arrow-right
                  • +
                  • icon-circle-arrow-left
                  • +
                  • icon-circle-arrow-up
                  • +
                  • icon-circle-arrow-down
                  • +
                  • icon-globe
                  • +
                  • icon-wrench
                  • +
                  • icon-tasks
                  • +
                  • icon-filter
                  • +
                  • icon-briefcase
                  • +
                  • icon-fullscreen
                  • +
                  + +

                  Glyphicons attribution

                  +

                  {{_i}}Glyphicons Halflings are normally not available for free, but an arrangement between Bootstrap and the Glyphicons creators have made this possible at no cost to you as developers. As a thank you, we ask you to include an optional link back to Glyphicons whenever practical.{{/i}}

                  + + +
                  + + +

                  {{_i}}How to use{{/i}}

                  +

                  {{_i}}All icons require an <i> tag with a unique class, prefixed with icon-. To use, place the following code just about anywhere:{{/i}}

                  +
                  +<i class="icon-search"></i>
                  +
                  +

                  {{_i}}There are also styles available for inverted (white) icons, made ready with one extra class. We will specifically enforce this class on hover and active states for nav and dropdown links.{{/i}}

                  +
                  +<i class="icon-search icon-white"></i>
                  +
                  +

                  + {{_i}}Heads up!{{/i}} + {{_i}}When using beside strings of text, as in buttons or nav links, be sure to leave a space after the <i> tag for proper spacing.{{/i}} +

                  + + +
                  + + +

                  {{_i}}Icon examples{{/i}}

                  +

                  {{_i}}Use them in buttons, button groups for a toolbar, navigation, or prepended form inputs.{{/i}}

                  + +

                  {{_i}}Buttons{{/i}}

                  + +
                  {{_i}}Button group in a button toolbar{{/i}}
                  +
                  +
                  +
                  + + + + +
                  +
                  +
                  {{! /bs-docs-example }} +
                  +<div class="btn-toolbar">
                  +  <div class="btn-group">
                  +    <a class="btn" href="#"><i class="icon-align-left"></i></a>
                  +    <a class="btn" href="#"><i class="icon-align-center"></i></a>
                  +    <a class="btn" href="#"><i class="icon-align-right"></i></a>
                  +    <a class="btn" href="#"><i class="icon-align-justify"></i></a>
                  +  </div>
                  +</div>
                  +
                  + +
                  {{_i}}Dropdown in a button group{{/i}}
                  + {{! /bs-docs-example }} +
                  +<div class="btn-group">
                  +  <a class="btn btn-primary" href="#"><i class="icon-user icon-white"></i> {{_i}}User{{/i}}</a>
                  +  <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
                  +  <ul class="dropdown-menu">
                  +    <li><a href="#"><i class="icon-pencil"></i> {{_i}}Edit{{/i}}</a></li>
                  +    <li><a href="#"><i class="icon-trash"></i> {{_i}}Delete{{/i}}</a></li>
                  +    <li><a href="#"><i class="icon-ban-circle"></i> {{_i}}Ban{{/i}}</a></li>
                  +    <li class="divider"></li>
                  +    <li><a href="#"><i class="i"></i> {{_i}}Make admin{{/i}}</a></li>
                  +  </ul>
                  +</div>
                  +
                  + +
                  {{_i}}Button sizes{{/i}}
                  + {{! /bs-docs-example }} +
                  +<a class="btn btn-large" href="#"><i class="icon-star"></i> Star</a>
                  +<a class="btn btn-small" href="#"><i class="icon-star"></i> Star</a>
                  +<a class="btn btn-mini" href="#"><i class="icon-star"></i> Star</a>
                  +
                  + +

                  {{_i}}Navigation{{/i}}

                  + {{! /bs-docs-example }} +
                  +<ul class="nav nav-list">
                  +  <li class="active"><a href="#"><i class="icon-home icon-white"></i> {{_i}}Home{{/i}}</a></li>
                  +  <li><a href="#"><i class="icon-book"></i> {{_i}}Library{{/i}}</a></li>
                  +  <li><a href="#"><i class="icon-pencil"></i> {{_i}}Applications{{/i}}</a></li>
                  +  <li><a href="#"><i class="i"></i> {{_i}}Misc{{/i}}</a></li>
                  +</ul>
                  +
                  + +

                  {{_i}}Form fields{{/i}}

                  +
                  +
                  + +
                  +
                  + +
                  +
                  +
                  +
                  +
                  +<div class="control-group">
                  +  <label class="control-label" for="inputIcon">{{_i}}Email address{{/i}}</label>
                  +  <div class="controls">
                  +    <div class="input-prepend">
                  +      <span class="add-on"><i class="icon-envelope"></i></span>
                  +      <input class="span2" id="inputIcon" type="text">
                  +    </div>
                  +  </div>
                  +</div>
                  +
                  + +
                  + + + +
                  {{! /span9 }} +
                  {{! row}} + +
                  {{! /.container }} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/components.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/components.mustache new file mode 100644 index 00000000..6d3ff9be --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/components.mustache @@ -0,0 +1,2505 @@ + +
                  +
                  +

                  {{_i}}Components{{/i}}

                  +

                  {{_i}}Dozens of reusable components built to provide navigation, alerts, popovers, and more.{{/i}}

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

                  {{_i}}Examples{{/i}}

                  +

                  {{_i}}Two basic options, along with two more specific variations.{{/i}}

                  + +

                  {{_i}}Single button group{{/i}}

                  +

                  {{_i}}Wrap a series of buttons with .btn in .btn-group.{{/i}}

                  +
                  +
                  + + + +
                  +
                  +
                  +<div class="btn-group">
                  +  <button class="btn">Left</button>
                  +  <button class="btn">Middle</button>
                  +  <button class="btn">Right</button>
                  +</div>
                  +
                  + +

                  {{_i}}Multiple button groups{{/i}}

                  +

                  {{_i}}Combine sets of <div class="btn-group"> into a <div class="btn-toolbar"> for more complex components.{{/i}}

                  +
                  +
                  +
                  + + + + +
                  +
                  + + + +
                  +
                  + +
                  +
                  +
                  +
                  +<div class="btn-toolbar">
                  +  <div class="btn-group">
                  +    ...
                  +  </div>
                  +</div>
                  +
                  + +

                  {{_i}}Vertical button groups{{/i}}

                  +

                  {{_i}}Make a set of buttons appear vertically stacked rather than horizontally.{{/i}}

                  +
                  +
                  + + + + +
                  +
                  +
                  +<div class="btn-group btn-group-vertical">
                  +  ...
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Checkbox and radio flavors{{/i}}

                  +

                  {{_i}}Button groups can also function as radios, where only one button may be active, or checkboxes, where any number of buttons may be active. View the JavaScript docs for that.{{/i}}

                  + +

                  {{_i}}Dropdowns in button groups{{/i}}

                  +

                  {{_i}}Heads up!{{/i}} {{_i}}Buttons with dropdowns must be individually wrapped in their own .btn-group within a .btn-toolbar for proper rendering.{{/i}}

                  +
                  + + + + +
                  + + + +

                  {{_i}}Overview and examples{{/i}}

                  +

                  {{_i}}Use any button to trigger a dropdown menu by placing it within a .btn-group and providing the proper menu markup.{{/i}}

                  + {{! /example }} +
                  +<div class="btn-group">
                  +  <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
                  +    {{_i}}Action{{/i}}
                  +    <span class="caret"></span>
                  +  </a>
                  +  <ul class="dropdown-menu">
                  +    <!-- {{_i}}dropdown menu links{{/i}} -->
                  +  </ul>
                  +</div>
                  +
                  + +

                  {{_i}}Works with all button sizes{{/i}}

                  +

                  {{_i}}Button dropdowns work at any size: .btn-large, .btn-small, or .btn-mini.{{/i}}

                  + {{! /example }} + +

                  {{_i}}Requires JavaScript{{/i}}

                  +

                  {{_i}}Button dropdowns require the Bootstrap dropdown plugin to function.{{/i}}

                  +

                  {{_i}}In some cases—like mobile—dropdown menus will extend outside the viewport. You need to resolve the alignment manually or with custom JavaScript.{{/i}}

                  + + +
                  + + +

                  {{_i}}Split button dropdowns{{/i}}

                  +

                  {{_i}}Building on the button group styles and markup, we can easily create a split button. Split buttons feature a standard action on the left and a dropdown toggle on the right with contextual links.{{/i}}

                  + {{! /example }} +
                  +<div class="btn-group">
                  +  <button class="btn">{{_i}}Action{{/i}}</button>
                  +  <button class="btn dropdown-toggle" data-toggle="dropdown">
                  +    <span class="caret"></span>
                  +  </button>
                  +  <ul class="dropdown-menu">
                  +    <!-- {{_i}}dropdown menu links{{/i}} -->
                  +  </ul>
                  +</div>
                  +
                  + +

                  {{_i}}Sizes{{/i}}

                  +

                  {{_i}}Utilize the extra button classes .btn-mini, .btn-small, or .btn-large for sizing.{{/i}}

                  + {{! /example }} +
                  +<div class="btn-group">
                  +  <button class="btn btn-mini">{{_i}}Action{{/i}}</button>
                  +  <button class="btn btn-mini dropdown-toggle" data-toggle="dropdown">
                  +    <span class="caret"></span>
                  +  </button>
                  +  <ul class="dropdown-menu">
                  +    <!-- {{_i}}dropdown menu links{{/i}} -->
                  +  </ul>
                  +</div>
                  +
                  + +

                  {{_i}}Dropup menus{{/i}}

                  +

                  {{_i}}Dropdown menus can also be toggled from the bottom up by adding a single class to the immediate parent of .dropdown-menu. It will flip the direction of the .caret and reposition the menu itself to move from the bottom up instead of top down.{{/i}}

                  + {{! /example }} +
                  +<div class="btn-group dropup">
                  +  <button class="btn">{{_i}}Dropup{{/i}}</button>
                  +  <button class="btn dropdown-toggle" data-toggle="dropdown">
                  +    <span class="caret"></span>
                  +  </button>
                  +  <ul class="dropdown-menu">
                  +    <!-- {{_i}}dropdown menu links{{/i}} -->
                  +  </ul>
                  +</div>
                  +
                  + +
                  + + + + + + + + + + + + + + + + + + + +
                  + + +

                  {{_i}}Standard pagination{{/i}}

                  +

                  {{_i}}Simple pagination inspired by Rdio, great for apps and search results. The large block is hard to miss, easily scalable, and provides large click areas.{{/i}}

                  +
                  + +
                  +
                  +<div class="pagination">
                  +  <ul>
                  +    <li><a href="#">Prev</a></li>
                  +    <li><a href="#">1</a></li>
                  +    <li><a href="#">2</a></li>
                  +    <li><a href="#">3</a></li>
                  +    <li><a href="#">4</a></li>
                  +    <li><a href="#">5</a></li>
                  +    <li><a href="#">Next</a></li>
                  +  </ul>
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Options{{/i}}

                  + +

                  {{_i}}Disabled and active states{{/i}}

                  +

                  {{_i}}Links are customizable for different circumstances. Use .disabled for unclickable links and .active to indicate the current page.{{/i}}

                  +
                  + +
                  +
                  +<div class="pagination">
                  +  <ul>
                  +    <li class="disabled"><a href="#">&laquo;</a></li>
                  +    <li class="active"><a href="#">1</a></li>
                  +    ...
                  +  </ul>
                  +</div>
                  +
                  +

                  {{_i}}You can optionally swap out active or disabled anchors for spans to remove click functionality while retaining intended styles.{{/i}}

                  +
                  +<div class="pagination">
                  +  <ul>
                  +    <li class="disabled"><span>&laquo;</span></li>
                  +    <li class="active"><span>1</span></li>
                  +    ...
                  +  </ul>
                  +</div>
                  +
                  + +

                  {{_i}}Sizes{{/i}}

                  +

                  {{_i}}Fancy larger or smaller pagination? Add .pagination-large, .pagination-small, or .pagination-mini for additional sizes.{{/i}}

                  +
                  + + + + +
                  +
                  +<div class="pagination pagination-large">
                  +  <ul>
                  +    ...
                  +  </ul>
                  +</div>
                  +<div class="pagination">
                  +  <ul>
                  +    ...
                  +  </ul>
                  +</div>
                  +<div class="pagination pagination-small">
                  +  <ul>
                  +    ...
                  +  </ul>
                  +</div>
                  +<div class="pagination pagination-mini">
                  +  <ul>
                  +    ...
                  +  </ul>
                  +</div>
                  +
                  + +

                  {{_i}}Alignment{{/i}}

                  +

                  {{_i}}Add one of two optional classes to change the alignment of pagination links: .pagination-centered and .pagination-right.{{/i}}

                  +
                  + +
                  +
                  +<div class="pagination pagination-centered">
                  +  ...
                  +</div>
                  +
                  +
                  + +
                  +
                  +<div class="pagination pagination-right">
                  +  ...
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Pager{{/i}}

                  +

                  {{_i}}Quick previous and next links for simple pagination implementations with light markup and styles. It's great for simple sites like blogs or magazines.{{/i}}

                  + +

                  {{_i}}Default example{{/i}}

                  +

                  {{_i}}By default, the pager centers links.{{/i}}

                  + +
                  +<ul class="pager">
                  +  <li><a href="#">{{_i}}Previous{{/i}}</a></li>
                  +  <li><a href="#">{{_i}}Next{{/i}}</a></li>
                  +</ul>
                  +
                  + +

                  {{_i}}Aligned links{{/i}}

                  +

                  {{_i}}Alternatively, you can align each link to the sides:{{/i}}

                  + +
                  +<ul class="pager">
                  +  <li class="previous">
                  +    <a href="#">{{_i}}&larr; Older{{/i}}</a>
                  +  </li>
                  +  <li class="next">
                  +    <a href="#">{{_i}}Newer &rarr;{{/i}}</a>
                  +  </li>
                  +</ul>
                  +
                  + +

                  {{_i}}Optional disabled state{{/i}}

                  +

                  {{_i}}Pager links also use the general .disabled utility class from the pagination.{{/i}}

                  + +
                  +<ul class="pager">
                  +  <li class="previous disabled">
                  +    <a href="#">{{_i}}&larr; Older{{/i}}</a>
                  +  </li>
                  +  ...
                  +</ul>
                  +
                  + +
                  + + + + +
                  + +

                  {{_i}}Labels{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Labels{{/i}}{{_i}}Markup{{/i}}
                  + {{_i}}Default{{/i}} + + <span class="label">{{_i}}Default{{/i}}</span> +
                  + {{_i}}Success{{/i}} + + <span class="label label-success">{{_i}}Success{{/i}}</span> +
                  + {{_i}}Warning{{/i}} + + <span class="label label-warning">{{_i}}Warning{{/i}}</span> +
                  + {{_i}}Important{{/i}} + + <span class="label label-important">{{_i}}Important{{/i}}</span> +
                  + {{_i}}Info{{/i}} + + <span class="label label-info">{{_i}}Info{{/i}}</span> +
                  + {{_i}}Inverse{{/i}} + + <span class="label label-inverse">{{_i}}Inverse{{/i}}</span> +
                  + +

                  {{_i}}Badges{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Name{{/i}}{{_i}}Example{{/i}}{{_i}}Markup{{/i}}
                  + {{_i}}Default{{/i}} + + 1 + + <span class="badge">1</span> +
                  + {{_i}}Success{{/i}} + + 2 + + <span class="badge badge-success">2</span> +
                  + {{_i}}Warning{{/i}} + + 4 + + <span class="badge badge-warning">4</span> +
                  + {{_i}}Important{{/i}} + + 6 + + <span class="badge badge-important">6</span> +
                  + {{_i}}Info{{/i}} + + 8 + + <span class="badge badge-info">8</span> +
                  + {{_i}}Inverse{{/i}} + + 10 + + <span class="badge badge-inverse">10</span> +
                  + +

                  {{_i}}Easily collapsible{{/i}}

                  +

                  {{_i}}For easy implementation, labels and badges will simply collapse (via CSS's :empty selector) when no content exists within.{{/i}}

                  + +
                  + + + + +
                  + + +

                  {{_i}}Hero unit{{/i}}

                  +

                  {{_i}}A lightweight, flexible component to showcase key content on your site. It works well on marketing and content-heavy sites.{{/i}}

                  +
                  +
                  +

                  {{_i}}Hello, world!{{/i}}

                  +

                  {{_i}}This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.{{/i}}

                  +

                  {{_i}}Learn more{{/i}}

                  +
                  +
                  +
                  +<div class="hero-unit">
                  +  <h1>{{_i}}Heading{{/i}}</h1>
                  +  <p>{{_i}}Tagline{{/i}}</p>
                  +  <p>
                  +    <a class="btn btn-primary btn-large">
                  +      {{_i}}Learn more{{/i}}
                  +    </a>
                  +  </p>
                  +</div>
                  +
                  + +

                  {{_i}}Page header{{/i}}

                  +

                  {{_i}}A simple shell for an h1 to appropriately space out and segment sections of content on a page. It can utilize the h1's default small, element as well most other components (with additional styles).{{/i}}

                  +
                  + +
                  +
                  +<div class="page-header">
                  +  <h1>{{_i}}Example page header{{/i}} <small>{{_i}}Subtext for header{{/i}}</small></h1>
                  +</div>
                  +
                  + +
                  + + + + +
                  + + +

                  {{_i}}Default thumbnails{{/i}}

                  +

                  {{_i}}By default, Bootstrap's thumbnails are designed to showcase linked images with minimal required markup.{{/i}}

                  +
                  + +
                  + +

                  {{_i}}Highly customizable{{/i}}

                  +

                  {{_i}}With a bit of extra markup, it's possible to add any kind of HTML content like headings, paragraphs, or buttons into thumbnails.{{/i}}

                  +
                  +
                    +
                  • +
                    + +
                    +

                    {{_i}}Thumbnail label{{/i}}

                    +

                    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

                    +

                    {{_i}}Action{{/i}} {{_i}}Action{{/i}}

                    +
                    +
                    +
                  • +
                  • +
                    + +
                    +

                    {{_i}}Thumbnail label{{/i}}

                    +

                    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

                    +

                    {{_i}}Action{{/i}} {{_i}}Action{{/i}}

                    +
                    +
                    +
                  • +
                  • +
                    + +
                    +

                    {{_i}}Thumbnail label{{/i}}

                    +

                    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

                    +

                    {{_i}}Action{{/i}} {{_i}}Action{{/i}}

                    +
                    +
                    +
                  • +
                  +
                  + +

                  {{_i}}Why use thumbnails{{/i}}

                  +

                  {{_i}}Thumbnails (previously .media-grid up until v1.4) are great for grids of photos or videos, image search results, retail products, portfolios, and much more. They can be links or static content.{{/i}}

                  + +

                  {{_i}}Simple, flexible markup{{/i}}

                  +

                  {{_i}}Thumbnail markup is simple—a ul with any number of li elements is all that is required. It's also super flexible, allowing for any type of content with just a bit more markup to wrap your contents.{{/i}}

                  + +

                  {{_i}}Uses grid column sizes{{/i}}

                  +

                  {{_i}}Lastly, the thumbnails component uses existing grid system classes—like .span2 or .span3—for control of thumbnail dimensions.{{/i}}

                  + +

                  {{_i}}Markup{{/i}}

                  +

                  {{_i}}As mentioned previously, the required markup for thumbnails is light and straightforward. Here's a look at the default setup for linked images:{{/i}}

                  +
                  +<ul class="thumbnails">
                  +  <li class="span4">
                  +    <a href="#" class="thumbnail">
                  +      <img data-src="holder.js/300x200" alt="">
                  +    </a>
                  +  </li>
                  +  ...
                  +</ul>
                  +
                  +

                  {{_i}}For custom HTML content in thumbnails, the markup changes slightly. To allow block level content anywhere, we swap the <a> for a <div> like so:{{/i}}

                  +
                  +<ul class="thumbnails">
                  +  <li class="span4">
                  +    <div class="thumbnail">
                  +      <img data-src="holder.js/300x200" alt="">
                  +      <h3>{{_i}}Thumbnail label{{/i}}</h3>
                  +      <p>{{_i}}Thumbnail caption...{{/i}}</p>
                  +    </div>
                  +  </li>
                  +  ...
                  +</ul>
                  +
                  + +

                  {{_i}}More examples{{/i}}

                  +

                  {{_i}}Explore all your options with the various grid classes available to you. You can also mix and match different sizes.{{/i}}

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

                  {{_i}}Default alert{{/i}}

                  +

                  {{_i}}Wrap any text and an optional dismiss button in .alert for a basic warning alert message.{{/i}}

                  +
                  +
                  + + {{_i}}Warning!{{/i}} {{_i}}Best check yo self, you're not looking too good.{{/i}} +
                  +
                  +
                  +<div class="alert">
                  +  <button type="button" class="close" data-dismiss="alert">&times;</button>
                  +  <strong>{{_i}}Warning!{{/i}}</strong> {{_i}}Best check yo self, you're not looking too good.{{/i}}
                  +</div>
                  +
                  + +

                  {{_i}}Dismiss buttons{{/i}}

                  +

                  {{_i}}Mobile Safari and Mobile Opera browsers, in addition to the data-dismiss="alert" attribute, require an href="#" for the dismissal of alerts when using an <a> tag.{{/i}}

                  +
                  <a href="#" class="close" data-dismiss="alert">&times;</a>
                  +

                  {{_i}}Alternatively, you may use a <button> element with the data attribute, which we have opted to do for our docs. When using <button>, you must include type="button" or your forms may not submit.{{/i}}

                  +
                  <button type="button" class="close" data-dismiss="alert">&times;</button>
                  + +

                  {{_i}}Dismiss alerts via JavaScript{{/i}}

                  +

                  {{_i}}Use the alerts jQuery plugin for quick and easy dismissal of alerts.{{/i}}

                  + + +
                  + + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}For longer messages, increase the padding on the top and bottom of the alert wrapper by adding .alert-block.{{/i}}

                  +
                  +
                  + +

                  {{_i}}Warning!{{/i}}

                  +

                  {{_i}}Best check yo self, you're not looking too good.{{/i}} Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

                  +
                  +
                  +
                  +<div class="alert alert-block">
                  +  <button type="button" class="close" data-dismiss="alert">&times;</button>
                  +  <h4>{{_i}}Warning!{{/i}}</h4>
                  +  {{_i}}Best check yo self, you're not...{{/i}}
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Contextual alternatives{{/i}}

                  +

                  {{_i}}Add optional classes to change an alert's connotation.{{/i}}

                  + +

                  {{_i}}Error or danger{{/i}}

                  +
                  +
                  + + {{_i}}Oh snap!{{/i}} {{_i}}Change a few things up and try submitting again.{{/i}} +
                  +
                  +
                  +<div class="alert alert-error">
                  +  ...
                  +</div>
                  +
                  + +

                  {{_i}}Success{{/i}}

                  +
                  +
                  + + {{_i}}Well done!{{/i}} {{_i}}You successfully read this important alert message.{{/i}} +
                  +
                  +
                  +<div class="alert alert-success">
                  +  ...
                  +</div>
                  +
                  + +

                  {{_i}}Information{{/i}}

                  +
                  +
                  + + {{_i}}Heads up!{{/i}} {{_i}}This alert needs your attention, but it's not super important.{{/i}} +
                  +
                  +
                  +<div class="alert alert-info">
                  +  ...
                  +</div>
                  +
                  + +
                  + + + + + +
                  + + +

                  {{_i}}Examples and markup{{/i}}

                  + +

                  {{_i}}Basic{{/i}}

                  +

                  {{_i}}Default progress bar with a vertical gradient.{{/i}}

                  +
                  +
                  +
                  +
                  +
                  +
                  +<div class="progress">
                  +  <div class="bar" style="width: 60%;"></div>
                  +</div>
                  +
                  + +

                  {{_i}}Striped{{/i}}

                  +

                  {{_i}}Uses a gradient to create a striped effect. Not available in IE7-8.{{/i}}

                  +
                  +
                  +
                  +
                  +
                  +
                  +<div class="progress progress-striped">
                  +  <div class="bar" style="width: 20%;"></div>
                  +</div>
                  +
                  + +

                  {{_i}}Animated{{/i}}

                  +

                  {{_i}}Add .active to .progress-striped to animate the stripes right to left. Not available in all versions of IE.{{/i}}

                  +
                  +
                  +
                  +
                  +
                  +
                  +<div class="progress progress-striped active">
                  +  <div class="bar" style="width: 40%;"></div>
                  +</div>
                  +
                  + +

                  Stacked

                  +

                  Place multiple bars into the same .progress to stack them.

                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +<div class="progress">
                  +  <div class="bar bar-success" style="width: 35%;"></div>
                  +  <div class="bar bar-warning" style="width: 20%;"></div>
                  +  <div class="bar bar-danger" style="width: 10%;"></div>
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Options{{/i}}

                  + +

                  {{_i}}Additional colors{{/i}}

                  +

                  {{_i}}Progress bars use some of the same button and alert classes for consistent styles.{{/i}}

                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +<div class="progress progress-info">
                  +  <div class="bar" style="width: 20%"></div>
                  +</div>
                  +<div class="progress progress-success">
                  +  <div class="bar" style="width: 40%"></div>
                  +</div>
                  +<div class="progress progress-warning">
                  +  <div class="bar" style="width: 60%"></div>
                  +</div>
                  +<div class="progress progress-danger">
                  +  <div class="bar" style="width: 80%"></div>
                  +</div>
                  +
                  + +

                  {{_i}}Striped bars{{/i}}

                  +

                  {{_i}}Similar to the solid colors, we have varied striped progress bars.{{/i}}

                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +
                  +<div class="progress progress-info progress-striped">
                  +  <div class="bar" style="width: 20%"></div>
                  +</div>
                  +<div class="progress progress-success progress-striped">
                  +  <div class="bar" style="width: 40%"></div>
                  +</div>
                  +<div class="progress progress-warning progress-striped">
                  +  <div class="bar" style="width: 60%"></div>
                  +</div>
                  +<div class="progress progress-danger progress-striped">
                  +  <div class="bar" style="width: 80%"></div>
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Browser support{{/i}}

                  +

                  {{_i}}Progress bars use CSS3 gradients, transitions, and animations to achieve all their effects. These features are not supported in IE7-9 or older versions of Firefox.{{/i}}

                  +

                  {{_i}}Versions earlier than Internet Explorer 10 and Opera 12 do not support animations.{{/i}}

                  + +
                  + + + + + +
                  + +

                  {{_i}}Abstract object styles for building various types of components (like blog comments, Tweets, etc) that feature a left- or right-aligned image alongside textual content.{{/i}}

                  + +

                  {{_i}}Default example{{/i}}

                  +

                  {{_i}}The default media allow to float a media object (images, video, audio) to the left or right of a content block.{{/i}}

                  +
                  +
                  + + + +
                  +

                  {{_i}}Media heading{{/i}}

                  + Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus. +
                  +
                  +
                  + + + +
                  +

                  {{_i}}Media heading{{/i}}

                  + Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus. +
                  + + + +
                  +

                  {{_i}}Media heading{{/i}}

                  + Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus. +
                  +
                  +
                  +
                  +
                  {{! /.bs-docs-example }} +
                  +<div class="media">
                  +  <a class="pull-left" href="#">
                  +    <img class="media-object" data-src="holder.js/64x64">
                  +  </a>
                  +  <div class="media-body">
                  +    <h4 class="media-heading">{{_i}}Media heading{{/i}}</h4>
                  +    ...
                  +
                  +    <!-- Nested media object -->
                  +    <div class="media">
                  +      ...
                  +    </div>
                  +  </div>
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Media list{{/i}}

                  +

                  {{_i}}With a bit of extra markup, you can use media inside list (useful for comment threads or articles lists).{{/i}}

                  +
                  +
                    +
                  • + + + +
                    +

                    {{_i}}Media heading{{/i}}

                    +

                    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.

                    + +
                    + + + +
                    +

                    {{_i}}Nested media heading{{/i}}

                    + Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. + +
                    + + + +
                    +

                    {{_i}}Nested media heading{{/i}}

                    + Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. +
                    +
                    +
                    +
                    + +
                    + + + +
                    +

                    {{_i}}Nested media heading{{/i}}

                    + Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. +
                    +
                    +
                    +
                  • +
                  • + + + +
                    +

                    {{_i}}Media heading{{/i}}

                    + Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. +
                    +
                  • +
                  +
                  +
                  +<ul class="media-list">
                  +  <li class="media">
                  +    <a class="pull-left" href="#">
                  +      <img class="media-object" data-src="holder.js/64x64">
                  +    </a>
                  +    <div class="media-body">
                  +      <h4 class="media-heading">{{_i}}Media heading{{/i}}</h4>
                  +      ...
                  +
                  +      <!-- Nested media object -->
                  +      <div class="media">
                  +        ...
                  +     </div>
                  +    </div>
                  +  </li>
                  +</ul>
                  +
                  + +
                  + + + + + + +
                  + + +

                  {{_i}}Wells{{/i}}

                  +

                  {{_i}}Use the well as a simple effect on an element to give it an inset effect.{{/i}}

                  +
                  +
                  + {{_i}}Look, I'm in a well!{{/i}} +
                  +
                  +
                  +<div class="well">
                  +  ...
                  +</div>
                  +
                  +

                  {{_i}}Optional classes{{/i}}

                  +

                  {{_i}}Control padding and rounded corners with two optional modifier classes.{{/i}}

                  +
                  +
                  + {{_i}}Look, I'm in a well!{{/i}} +
                  +
                  +
                  +<div class="well well-large">
                  +  ...
                  +</div>
                  +
                  +
                  +
                  + {{_i}}Look, I'm in a well!{{/i}} +
                  +
                  +
                  +<div class="well well-small">
                  +  ...
                  +</div>
                  +
                  + +

                  {{_i}}Close icon{{/i}}

                  +

                  {{_i}}Use the generic close icon for dismissing content like modals and alerts.{{/i}}

                  +
                  +

                  +
                  +
                  <button class="close">&times;</button>
                  +

                  {{_i}}iOS devices require an href="#" for click events if you would rather use an anchor.{{/i}}

                  +
                  <a class="close" href="#">&times;</a>
                  + +

                  {{_i}}Helper classes{{/i}}

                  +

                  {{_i}}Simple, focused classes for small display or behavior tweaks.{{/i}}

                  + +

                  {{_i}}.pull-left{{/i}}

                  +

                  {{_i}}Float an element left{{/i}}

                  +
                  +class="pull-left"
                  +
                  +
                  +.pull-left {
                  +  float: left;
                  +}
                  +
                  + +

                  {{_i}}.pull-right{{/i}}

                  +

                  {{_i}}Float an element right{{/i}}

                  +
                  +class="pull-right"
                  +
                  +
                  +.pull-right {
                  +  float: right;
                  +}
                  +
                  + +

                  {{_i}}.muted{{/i}}

                  +

                  {{_i}}Change an element's color to #999{{/i}}

                  +
                  +class="muted"
                  +
                  +
                  +.muted {
                  +  color: #999;
                  +}
                  +
                  + +

                  {{_i}}.clearfix{{/i}}

                  +

                  {{_i}}Clear the float on any element{{/i}}

                  +
                  +class="clearfix"
                  +
                  +
                  +.clearfix {
                  +  *zoom: 1;
                  +  &:before,
                  +  &:after {
                  +    display: table;
                  +    content: "";
                  +  }
                  +  &:after {
                  +    clear: both;
                  +  }
                  +}
                  +
                  + +
                  + + + +
                  {{! /span9 }} +
                  {{! row}} + +
                  {{! /.container }} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/customize.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/customize.mustache new file mode 100644 index 00000000..8d8a2f92 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/customize.mustache @@ -0,0 +1,393 @@ + +
                  +
                  +

                  {{_i}}Customize and download{{/i}}

                  +

                  {{_i}}Download Bootstrap or customize variables, components, JavaScript plugins, and more.{{/i}}

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

                  {{_i}}Scaffolding{{/i}}

                  + + + + +

                  {{_i}}Base CSS{{/i}}

                  + + + + + + + +
                  +
                  +

                  {{_i}}Components{{/i}}

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

                  {{_i}}JS Components{{/i}}

                  + + + + + + +
                  +
                  +

                  {{_i}}Miscellaneous{{/i}}

                  + + + + +

                  {{_i}}Responsive{{/i}}

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

                  {{_i}}Heads up!{{/i}}

                  +

                  {{_i}}All checked plugins will be compiled into a single file, bootstrap.js. All plugins require the latest version of jQuery to be included.{{/i}}

                  +
                  +
                  +
                  + + +
                  + +
                  +
                  +

                  {{_i}}Scaffolding{{/i}}

                  + + + + + +

                  {{_i}}Links{{/i}}

                  + + + + +

                  {{_i}}Colors{{/i}}

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

                  {{_i}}Sprites{{/i}}

                  + + + + + +

                  {{_i}}Grid system{{/i}}

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

                  {{_i}}Typography{{/i}}

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

                  {{_i}}Tables{{/i}}

                  + + + + + + + + + +

                  {{_i}}Forms{{/i}}

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

                  {{_i}}Form states & alerts{{/i}}

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

                  {{_i}}Navbar{{/i}}

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

                  {{_i}}Dropdowns{{/i}}

                  + + + + + + + + + + +
                  +
                  +
                  + +
                  + +
                  + {{_i}}Customize and Download{{/i}} +

                  {{_i}}What's included?{{/i}}

                  +

                  {{_i}}Downloads include compiled CSS, compiled and minified CSS, and compiled jQuery plugins, all nicely packed up into a zipball for your convenience.{{/i}}

                  +
                  +
                  +
                  + + + +
                  {{! /span9 }} +
                  {{! row}} + +
                  {{! /.container }} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/extend.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/extend.mustache new file mode 100644 index 00000000..b5c8d574 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/extend.mustache @@ -0,0 +1,161 @@ + +
                  +
                  +

                  {{_i}}Extending Bootstrap{{/i}}

                  +

                  {{_i}}Extend Bootstrap to take advantage of included styles and components, as well as LESS variables and mixins.{{/i}}

                  +
                  +
                  + +
                  + + +
                  + +
                  + + + + +
                  + + + LESS CSS +

                  {{_i}}Bootstrap is made with LESS at its core, a dynamic stylesheet language created by our good friend, Alexis Sellier. It makes developing systems-based CSS faster, easier, and more fun.{{/i}}

                  + +

                  {{_i}}Why LESS?{{/i}}

                  +

                  {{_i}}One of Bootstrap's creators wrote a quick blog post about this, summarized here:{{/i}}

                  +
                    +
                  • {{_i}}Bootstrap compiles faster ~6x faster with Less compared to Sass{{/i}}
                  • +
                  • {{_i}}Less is written in JavaScript, making it easier to us to dive in and patch compared to Ruby with Sass.{{/i}}
                  • +
                  • {{_i}}Less is more; we want to feel like we're writing CSS and making Bootstrap approachable to all.{{/i}}
                  • +
                  + +

                  {{_i}}What's included?{{/i}}

                  +

                  {{_i}}As an extension of CSS, LESS includes variables, mixins for reusable snippets of code, operations for simple math, nesting, and even color functions.{{/i}}

                  + +

                  {{_i}}Learn more{{/i}}

                  +

                  {{_i}}Visit the official website at http://lesscss.org to learn more.{{/i}}

                  +
                  + + + + +
                  + + +

                  {{_i}}Since our CSS is written with Less and utilizes variables and mixins, it needs to be compiled for final production implementation. Here's how.{{/i}}

                  + +
                  + {{_i}}Note: If you're submitting a pull request to GitHub with modified CSS, you must recompile the CSS via any of these methods.{{/i}} +
                  + +

                  {{_i}}Tools for compiling{{/i}}

                  + +

                  {{_i}}Command line{{/i}}

                  +

                  {{_i}}Follow the instructions in the project readme on GitHub for compiling via command line.{{/i}}

                  + +

                  {{_i}}JavaScript{{/i}}

                  +

                  {{_i}}Download the latest Less.js and include the path to it (and Bootstrap) in the <head>.{{/i}}

                  +
                  +<link rel="stylesheet/less" href="/path/to/bootstrap.less">
                  +<script src="/path/to/less.js"></script>
                  +
                  +

                  {{_i}}To recompile the .less files, just save them and reload your page. Less.js compiles them and stores them in local storage.{{/i}}

                  + +

                  {{_i}}Unofficial Mac app{{/i}}

                  +

                  {{_i}}The unofficial Mac app watches directories of .less files and compiles the code to local files after every save of a watched .less file. If you like, you can toggle preferences in the app for automatic minifying and which directory the compiled files end up in.{{/i}}

                  + +

                  {{_i}}More apps{{/i}}

                  +

                  Crunch

                  +

                  {{_i}}Crunch is a great looking LESS editor and compiler built on Adobe Air.{{/i}}

                  +

                  CodeKit

                  +

                  {{_i}}Created by the same guy as the unofficial Mac app, CodeKit is a Mac app that compiles LESS, SASS, Stylus, and CoffeeScript.{{/i}}

                  +

                  Simpless

                  +

                  {{_i}}Mac, Linux, and Windows app for drag and drop compiling of LESS files. Plus, the source code is on GitHub.{{/i}}

                  + +
                  + + + + +
                  + +

                  {{_i}}Quickly start any web project by dropping in the compiled or minified CSS and JS. Layer on custom styles separately for easy upgrades and maintenance moving forward.{{/i}}

                  + +

                  {{_i}}Setup file structure{{/i}}

                  +

                  {{_i}}Download the latest compiled Bootstrap and place into your project. For example, you might have something like this:{{/i}}

                  +
                  +   app/
                  +       layouts/
                  +       templates/
                  +   public/
                  +       css/
                  +           bootstrap.min.css
                  +       js/
                  +           bootstrap.min.js
                  +       img/
                  +           glyphicons-halflings.png
                  +           glyphicons-halflings-white.png
                  +
                  + +

                  {{_i}}Utilize starter template{{/i}}

                  +

                  {{_i}}Copy the following base HTML to get started.{{/i}}

                  +
                  +<html>
                  +  <head>
                  +    <title>Bootstrap 101 Template</title>
                  +    <!-- Bootstrap -->
                  +    <link href="public/css/bootstrap.min.css" rel="stylesheet">
                  +  </head>
                  +  <body>
                  +    <h1>Hello, world!</h1>
                  +    <!-- Bootstrap -->
                  +    <script src="public/js/bootstrap.min.js"></script>
                  +  </body>
                  +</html>
                  +
                  + +

                  {{_i}}Layer on custom code{{/i}}

                  +

                  {{_i}}Work in your custom CSS, JS, and more as necessary to make Bootstrap your own with your own separate CSS and JS files.{{/i}}

                  +
                  +<html>
                  +  <head>
                  +    <title>Bootstrap 101 Template</title>
                  +    <!-- Bootstrap -->
                  +    <link href="public/css/bootstrap.min.css" rel="stylesheet">
                  +    <!-- Project -->
                  +    <link href="public/css/application.css" rel="stylesheet">
                  +  </head>
                  +  <body>
                  +    <h1>Hello, world!</h1>
                  +    <!-- Bootstrap -->
                  +    <script src="public/js/bootstrap.min.js"></script>
                  +    <!-- Project -->
                  +    <script src="public/js/application.js"></script>
                  +  </body>
                  +</html>
                  +
                  + +
                  + +
                  {{! /span9 }} +
                  {{! row}} + +
                  {{! /.container }} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/getting-started.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/getting-started.mustache new file mode 100644 index 00000000..ae1534ce --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/getting-started.mustache @@ -0,0 +1,256 @@ + +
                  +
                  +

                  {{_i}}Getting started{{/i}}

                  +

                  {{_i}}Overview of the project, its contents, and how to get started with a simple template.{{/i}}

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

                  {{_i}}Before downloading, be sure to have a code editor (we recommend Sublime Text 2) and some working knowledge of HTML and CSS. We won't walk through the source files here, but they are available for download. We'll focus on getting started with the compiled Bootstrap files.{{/i}}

                  + +
                  +
                  +

                  {{_i}}Download compiled{{/i}}

                  +

                  {{_i}}Fastest way to get started: get the compiled and minified versions of our CSS, JS, and images. No docs or original source files.{{/i}}

                  +

                  {{_i}}Download Bootstrap{{/i}}

                  +
                  +
                  +

                  Download source

                  +

                  Get the original files for all CSS and JavaScript, along with a local copy of the docs by downloading the latest version directly from GitHub.

                  +

                  {{_i}}Download Bootstrap source{{/i}}

                  +
                  +
                  +
                  + + + + +
                  + +

                  {{_i}}Within the download you'll find the following file structure and contents, logically grouping common assets and providing both compiled and minified variations.{{/i}}

                  +

                  {{_i}}Once downloaded, unzip the compressed folder to see the structure of (the compiled) Bootstrap. You'll see something like this:{{/i}}

                  +
                  +  bootstrap/
                  +  ├── css/
                  +  │   ├── bootstrap.css
                  +  │   ├── bootstrap.min.css
                  +  ├── js/
                  +  │   ├── bootstrap.js
                  +  │   ├── bootstrap.min.js
                  +  └── img/
                  +      ├── glyphicons-halflings.png
                  +      └── glyphicons-halflings-white.png
                  +
                  +

                  {{_i}}This is the most basic form of Bootstrap: compiled files for quick drop-in usage in nearly any web project. We provide compiled CSS and JS (bootstrap.*), as well as compiled and minified CSS and JS (bootstrap.min.*). The image files are compressed using ImageOptim, a Mac app for compressing PNGs.{{/i}}

                  +

                  {{_i}}Please note that all JavaScript plugins require jQuery to be included.{{/i}}

                  +
                  + + + + +
                  + +

                  {{_i}}Bootstrap comes equipped with HTML, CSS, and JS for all sorts of things, but they can be summarized with a handful of categories visible at the top of the Bootstrap documentation.{{/i}}

                  + +

                  {{_i}}Docs sections{{/i}}

                  +

                  {{_i}}Scaffolding{{/i}}

                  +

                  {{_i}}Global styles for the body to reset type and background, link styles, grid system, and two simple layouts.{{/i}}

                  +

                  {{_i}}Base CSS{{/i}}

                  +

                  {{_i}}Styles for common HTML elements like typography, code, tables, forms, and buttons. Also includes Glyphicons, a great little icon set.{{/i}}

                  +

                  {{_i}}Components{{/i}}

                  +

                  {{_i}}Basic styles for common interface components like tabs and pills, navbar, alerts, page headers, and more.{{/i}}

                  +

                  {{_i}}JavaScript plugins{{/i}}

                  +

                  {{_i}}Similar to Components, these JavaScript plugins are interactive components for things like tooltips, popovers, modals, and more.{{/i}}

                  + +

                  {{_i}}List of components{{/i}}

                  +

                  {{_i}}Together, the Components and JavaScript plugins sections provide the following interface elements:{{/i}}

                  +
                    +
                  • {{_i}}Button groups{{/i}}
                  • +
                  • {{_i}}Button dropdowns{{/i}}
                  • +
                  • {{_i}}Navigational tabs, pills, and lists{{/i}}
                  • +
                  • {{_i}}Navbar{{/i}}
                  • +
                  • {{_i}}Labels{{/i}}
                  • +
                  • {{_i}}Badges{{/i}}
                  • +
                  • {{_i}}Page headers and hero unit{{/i}}
                  • +
                  • {{_i}}Thumbnails{{/i}}
                  • +
                  • {{_i}}Alerts{{/i}}
                  • +
                  • {{_i}}Progress bars{{/i}}
                  • +
                  • {{_i}}Modals{{/i}}
                  • +
                  • {{_i}}Dropdowns{{/i}}
                  • +
                  • {{_i}}Tooltips{{/i}}
                  • +
                  • {{_i}}Popovers{{/i}}
                  • +
                  • {{_i}}Accordion{{/i}}
                  • +
                  • {{_i}}Carousel{{/i}}
                  • +
                  • {{_i}}Typeahead{{/i}}
                  • +
                  +

                  {{_i}}In future guides, we may walk through these components individually in more detail. Until then, look for each of these in the documentation for information on how to utilize and customize them.{{/i}}

                  +
                  + + + + +
                  + +

                  {{_i}}With a brief intro into the contents out of the way, we can focus on putting Bootstrap to use. To do that, we'll utilize a basic HTML template that includes everything we mentioned in the File structure.{{/i}}

                  +

                  {{_i}}Now, here's a look at a typical HTML file:{{/i}}

                  +
                  +<!DOCTYPE html>
                  +<html>
                  +  <head>
                  +    <title>Bootstrap 101 Template</title>
                  +    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                  +  </head>
                  +  <body>
                  +    <h1>Hello, world!</h1>
                  +    <script src="http://code.jquery.com/jquery.js"></script>
                  +  </body>
                  +</html>
                  +
                  +

                  {{_i}}To make this a Bootstrapped template, just include the appropriate CSS and JS files:{{/i}}

                  +
                  +<!DOCTYPE html>
                  +<html>
                  +  <head>
                  +    <title>Bootstrap 101 Template</title>
                  +    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                  +    <!-- Bootstrap -->
                  +    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
                  +  </head>
                  +  <body>
                  +    <h1>Hello, world!</h1>
                  +    <script src="http://code.jquery.com/jquery.js"></script>
                  +    <script src="js/bootstrap.min.js"></script>
                  +  </body>
                  +</html>
                  +
                  +

                  {{_i}}And you're set! With those two files added, you can begin to develop any site or application with Bootstrap.{{/i}}

                  +
                  + + + + +
                  + +

                  {{_i}}Move beyond the base template with a few example layouts. We encourage folks to iterate on these examples and not simply use them as an end result.{{/i}}

                  +
                    +
                  • + + + +

                    {{_i}}Starter template{{/i}}

                    +

                    {{_i}}A barebones HTML document with all the Bootstrap CSS and JavaScript included.{{/i}}

                    +
                  • +
                  • + + + +

                    {{_i}}Basic marketing site{{/i}}

                    +

                    {{_i}}Featuring a hero unit for a primary message and three supporting elements.{{/i}}

                    +
                  • +
                  • + + + +

                    {{_i}}Fluid layout{{/i}}

                    +

                    {{_i}}Uses our new responsive, fluid grid system to create a seamless liquid layout.{{/i}}

                    +
                  • + +
                  • + + + +

                    {{_i}}Narrow marketing{{/i}}

                    +

                    {{_i}}Slim, lightweight marketing template for small projects or teams.{{/i}}

                    +
                  • +
                  • + + + +

                    {{_i}}Justified nav{{/i}}

                    +

                    {{_i}}Marketing page with equal-width navigation links in a modified navbar.{{/i}}

                    +
                  • +
                  • + + + +

                    {{_i}}Sign in{{/i}}

                    +

                    {{_i}}Barebones sign in form with custom, larger form controls and a flexible layout.{{/i}}

                    +
                  • + +
                  • + + + +

                    {{_i}}Sticky footer{{/i}}

                    +

                    {{_i}}Pin a fixed-height footer to the bottom of the user's viewport.{{/i}}

                    +
                  • +
                  • + + + +

                    {{_i}}Carousel jumbotron{{/i}}

                    +

                    {{_i}}A more interactive riff on the basic marketing site featuring a prominent carousel.{{/i}}

                    +
                  • +
                  +
                  + + + + + +
                  + +

                  {{_i}}Head to the docs for information, examples, and code snippets, or take the next leap and customize Bootstrap for any upcoming project.{{/i}}

                  + {{_i}}Visit the Bootstrap docs{{/i}} + {{_i}}Customize Bootstrap{{/i}} +
                  + + + + +
                  {{! /span9 }} +
                  {{! row}} + +
                  {{! /.container }} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/index.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/index.mustache new file mode 100644 index 00000000..679236bf --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/index.mustache @@ -0,0 +1,100 @@ +
                  +
                  +

                  {{_i}}Bootstrap{{/i}}

                  +

                  {{_i}}Sleek, intuitive, and powerful front-end framework for faster and easier web development.{{/i}}

                  +

                  + {{_i}}Download Bootstrap{{/i}} +

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

                  {{_i}}Introducing Bootstrap.{{/i}}

                  + + +
                  +
                  + +

                  {{_i}}By nerds, for nerds.{{/i}}

                  +

                  {{_i}}Built at Twitter by @mdo and @fat, Bootstrap utilizes LESS CSS, is compiled via Node, and is managed through GitHub to help nerds do awesome stuff on the web.{{/i}}

                  +
                  +
                  + +

                  {{_i}}Made for everyone.{{/i}}

                  +

                  {{_i}}Bootstrap was made to not only look and behave great in the latest desktop browsers (as well as IE7!), but in tablet and smartphone browsers via responsive CSS as well.{{/i}}

                  +
                  +
                  + +

                  {{_i}}Packed with features.{{/i}}

                  +

                  {{_i}}A 12-column responsive grid, dozens of components, JavaScript plugins, typography, form controls, and even a web-based Customizer to make Bootstrap your own.{{/i}}

                  +
                  +
                  + +
                  + +

                  {{_i}}Built with Bootstrap.{{/i}}

                  + +
                  + +
                  + +
                  {{! /.marketing }} + +
                  {{! /.container }} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/javascript.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/javascript.mustache new file mode 100644 index 00000000..744988f4 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/javascript.mustache @@ -0,0 +1,1660 @@ + +
                  +
                  +

                  {{_i}}JavaScript{{/i}}

                  +

                  {{_i}}Bring Bootstrap's components to life—now with 13 custom jQuery plugins.{{/i}} +

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

                  {{_i}}Individual or compiled{{/i}}

                  +

                  {{_i}}Plugins can be included individually (though some have required dependencies), or all at once. Both bootstrap.js and bootstrap.min.js contain all plugins in a single file.{{/i}}

                  + +

                  {{_i}}Data attributes{{/i}}

                  +

                  {{_i}}You can use all Bootstrap plugins purely through the markup API without writing a single line of JavaScript. This is Bootstrap's first class API and should be your first consideration when using a plugin.{{/i}}

                  + +

                  {{_i}}That said, in some situations it may be desirable to turn this functionality off. Therefore, we also provide the ability to disable the data attribute API by unbinding all events on the body namespaced with `'data-api'`. This looks like this:{{/i}} +

                  $('body').off('.data-api')
                  + +

                  {{_i}}Alternatively, to target a specific plugin, just include the plugin's name as a namespace along with the data-api namespace like this:{{/i}}

                  +
                  $('body').off('.alert.data-api')
                  + +

                  {{_i}}Programmatic API{{/i}}

                  +

                  {{_i}}We also believe you should be able to use all Bootstrap plugins purely through the JavaScript API. All public APIs are single, chainable methods, and return the collection acted upon.{{/i}}

                  +
                  $(".btn.danger").button("toggle").addClass("fat")
                  +

                  {{_i}}All methods should accept an optional options object, a string which targets a particular method, or nothing (which initiates a plugin with default behavior):{{/i}}

                  +
                  +$("#myModal").modal()                       // initialized with defaults
                  +$("#myModal").modal({ keyboard: false })   // initialized with no keyboard
                  +$("#myModal").modal('show')                // initializes and invokes show immediately

                  +
                  +

                  {{_i}}Each plugin also exposes its raw constructor on a `Constructor` property: $.fn.popover.Constructor. If you'd like to get a particular plugin instance, retrieve it directly from an element: $('[rel=popover]').data('popover').{{/i}}

                  + +

                  {{_i}}No Conflict{{/i}}

                  +

                  {{_i}}Sometimes it is necessary to use Bootstrap plugins with other UI frameworks. In these circumstances, namespace collisions can occasionally occur. If this happens, you may call .noConflict on the plugin you wish to revert the value of.{{/i}}

                  + +
                  +var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
                  +$.fn.bootstrapBtn = bootstrapButton            // give $().bootstrapBtn the bootstrap functionality
                  +
                  + +

                  {{_i}}Events{{/i}}

                  +

                  {{_i}}Bootstrap provides custom events for most plugin's unique actions. Generally, these come in an infinitive and past participle form - where the infinitive (ex. show) is triggered at the start of an event, and its past participle form (ex. shown) is trigger on the completion of an action.{{/i}}

                  +

                  {{_i}}All infinitive events provide preventDefault functionality. This provides the ability to stop the execution of an action before it starts.{{/i}}

                  +
                  +$('#myModal').on('show', function (e) {
                  +    if (!data) return e.preventDefault() // stops modal from being shown
                  +})
                  +
                  +
                  + + + + +
                  + +

                  {{_i}}About transitions{{/i}}

                  +

                  {{_i}}For simple transition effects, include bootstrap-transition.js once alongside the other JS files. If you're using the compiled (or minified) bootstrap.js, there is no need to include this—it's already there.{{/i}}

                  +

                  {{_i}}Use cases{{/i}}

                  +

                  {{_i}}A few examples of the transition plugin:{{/i}}

                  +
                    +
                  • {{_i}}Sliding or fading in modals{{/i}}
                  • +
                  • {{_i}}Fading out tabs{{/i}}
                  • +
                  • {{_i}}Fading out alerts{{/i}}
                  • +
                  • {{_i}}Sliding carousel panes{{/i}}
                  • +
                  + + {{! Ideas: include docs for .fade.in, .slide.in, etc }} +
                  + + + + +
                  + + + +

                  {{_i}}Examples{{/i}}

                  +

                  {{_i}}Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.{{/i}}

                  + +

                  {{_i}}Static example{{/i}}

                  +

                  {{_i}}A rendered modal with header, body, and set of actions in the footer.{{/i}}

                  +
                  + +
                  {{! /example }} +
                  +<div class="modal hide fade">
                  +  <div class="modal-header">
                  +    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                  +    <h3>{{_i}}Modal header{{/i}}</h3>
                  +  </div>
                  +  <div class="modal-body">
                  +    <p>{{_i}}One fine body…{{/i}}</p>
                  +  </div>
                  +  <div class="modal-footer">
                  +    <a href="#" class="btn">{{_i}}Close{{/i}}</a>
                  +    <a href="#" class="btn btn-primary">{{_i}}Save changes{{/i}}</a>
                  +  </div>
                  +</div>
                  +
                  + +

                  {{_i}}Live demo{{/i}}

                  +

                  {{_i}}Toggle a modal via JavaScript by clicking the button below. It will slide down and fade in from the top of the page.{{/i}}

                  + + + {{! /example }} +
                  +<!-- Button to trigger modal -->
                  +<a href="#myModal" role="button" class="btn" data-toggle="modal">{{_i}}Launch demo modal{{/i}}</a>
                  +
                  +<!-- Modal -->
                  +<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                  +  <div class="modal-header">
                  +    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                  +    <h3 id="myModalLabel">Modal header</h3>
                  +  </div>
                  +  <div class="modal-body">
                  +    <p>{{_i}}One fine body…{{/i}}</p>
                  +  </div>
                  +  <div class="modal-footer">
                  +    <button class="btn" data-dismiss="modal" aria-hidden="true">{{_i}}Close{{/i}}</button>
                  +    <button class="btn btn-primary">{{_i}}Save changes{{/i}}</button>
                  +  </div>
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Usage{{/i}}

                  + +

                  {{_i}}Via data attributes{{/i}}

                  +

                  {{_i}}Activate a modal without writing JavaScript. Set data-toggle="modal" on a controller element, like a button, along with a data-target="#foo" or href="#foo" to target a specific modal to toggle.{{/i}}

                  +
                  <button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
                  + +

                  {{_i}}Via JavaScript{{/i}}

                  +

                  {{_i}}Call a modal with id myModal with a single line of JavaScript:{{/i}}

                  +
                  $('#myModal').modal(options)
                  + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-backdrop="".{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Name{{/i}}{{_i}}type{{/i}}{{_i}}default{{/i}}{{_i}}description{{/i}}
                  {{_i}}backdrop{{/i}}{{_i}}boolean{{/i}}{{_i}}true{{/i}}{{_i}}Includes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn't close the modal on click.{{/i}}
                  {{_i}}keyboard{{/i}}{{_i}}boolean{{/i}}{{_i}}true{{/i}}{{_i}}Closes the modal when escape key is pressed{{/i}}
                  {{_i}}show{{/i}}{{_i}}boolean{{/i}}{{_i}}true{{/i}}{{_i}}Shows the modal when initialized.{{/i}}
                  {{_i}}remote{{/i}}{{_i}}path{{/i}}{{_i}}false{{/i}}

                  {{_i}}If a remote url is provided, content will be loaded via jQuery's load method and injected into the .modal-body. If you're using the data api, you may alternatively use the href tag to specify the remote source. An example of this is shown below:{{/i}}

                  +
                  <a data-toggle="modal" href="remote.html" data-target="#modal">click me</a>
                  + + Methods{{/i}} +

                  .modal({{_i}}options{{/i}})

                  +

                  {{_i}}Activates your content as a modal. Accepts an optional options object.{{/i}}

                  +
                  +$('#myModal').modal({
                  +  keyboard: false
                  +})
                  +
                  +

                  .modal('toggle')

                  +

                  {{_i}}Manually toggles a modal.{{/i}}

                  +
                  $('#myModal').modal('toggle')
                  +

                  .modal('show')

                  +

                  {{_i}}Manually opens a modal.{{/i}}

                  +
                  $('#myModal').modal('show')
                  +

                  .modal('hide')

                  +

                  {{_i}}Manually hides a modal.{{/i}}

                  +
                  $('#myModal').modal('hide')
                  +

                  {{_i}}Events{{/i}}

                  +

                  {{_i}}Bootstrap's modal class exposes a few events for hooking into modal functionality.{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Event{{/i}}{{_i}}Description{{/i}}
                  {{_i}}show{{/i}}{{_i}}This event fires immediately when the show instance method is called.{{/i}}
                  {{_i}}shown{{/i}}{{_i}}This event is fired when the modal has been made visible to the user (will wait for css transitions to complete).{{/i}}
                  {{_i}}hide{{/i}}{{_i}}This event is fired immediately when the hide instance method has been called.{{/i}}
                  {{_i}}hidden{{/i}}{{_i}}This event is fired when the modal has finished being hidden from the user (will wait for css transitions to complete).{{/i}}
                  +
                  +$('#myModal').on('hidden', function () {
                  +  // {{_i}}do something…{{/i}}
                  +})
                  +
                  +
                  + + + + + + + + + +
                  + + + +

                  {{_i}}Example in navbar{{/i}}

                  +

                  {{_i}}The ScrollSpy plugin is for automatically updating nav targets based on scroll position. Scroll the area below the navbar and watch the active class change. The dropdown sub items will be highlighted as well.{{/i}}

                  +
                  + +
                  +

                  @fat

                  +

                  Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.

                  +

                  @mdo

                  +

                  Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard. Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. Tattooed cosby sweater food truck, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1 sartorial. Carles non aesthetic exercitation quis gentrify. Brooklyn adipisicing craft beer vice keytar deserunt.

                  +

                  one

                  +

                  Occaecat commodo aliqua delectus. Fap craft beer deserunt skateboard ea. Lomo bicycle rights adipisicing banh mi, velit ea sunt next level locavore single-origin coffee in magna veniam. High life id vinyl, echo park consequat quis aliquip banh mi pitchfork. Vero VHS est adipisicing. Consectetur nisi DIY minim messenger bag. Cred ex in, sustainable delectus consectetur fanny pack iphone.

                  +

                  two

                  +

                  In incididunt echo park, officia deserunt mcsweeney's proident master cleanse thundercats sapiente veniam. Excepteur VHS elit, proident shoreditch +1 biodiesel laborum craft beer. Single-origin coffee wayfarers irure four loko, cupidatat terry richardson master cleanse. Assumenda you probably haven't heard of them art party fanny pack, tattooed nulla cardigan tempor ad. Proident wolf nesciunt sartorial keffiyeh eu banh mi sustainable. Elit wolf voluptate, lo-fi ea portland before they sold out four loko. Locavore enim nostrud mlkshk brooklyn nesciunt.

                  +

                  three

                  +

                  Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.

                  +

                  Keytar twee blog, culpa messenger bag marfa whatever delectus food truck. Sapiente synth id assumenda. Locavore sed helvetica cliche irony, thundercats you probably haven't heard of them consequat hoodie gluten-free lo-fi fap aliquip. Labore elit placeat before they sold out, terry richardson proident brunch nesciunt quis cosby sweater pariatur keffiyeh ut helvetica artisan. Cardigan craft beer seitan readymade velit. VHS chambray laboris tempor veniam. Anim mollit minim commodo ullamco thundercats. +

                  +
                  +
                  {{! /example }} + + +
                  + + +

                  {{_i}}Usage{{/i}}

                  + +

                  {{_i}}Via data attributes{{/i}}

                  +

                  {{_i}}To easily add scrollspy behavior to your topbar navigation, just add data-spy="scroll" to the element you want to spy on (most typically this would be the body) and data-target=".navbar" to select which nav to use. You'll want to use scrollspy with a .nav component.{{/i}}

                  +
                  <body data-spy="scroll" data-target=".navbar">...</body>
                  + +

                  {{_i}}Via JavaScript{{/i}}

                  +

                  {{_i}}Call the scrollspy via JavaScript:{{/i}}

                  +
                  $('#navbar').scrollspy()
                  + +
                  + {{_i}}Heads up!{{/i}} + {{_i}}Navbar links must have resolvable id targets. For example, a <a href="#home">home</a> must correspond to something in the dom like <div id="home"></div>.{{/i}} +
                  + +

                  {{_i}}Methods{{/i}}

                  +

                  .scrollspy('refresh')

                  +

                  {{_i}}When using scrollspy in conjunction with adding or removing of elements from the DOM, you'll need to call the refresh method like so:{{/i}}

                  +
                  +$('[data-spy="scroll"]').each(function () {
                  +  var $spy = $(this).scrollspy('refresh')
                  +});
                  +
                  + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-offset="".{{/i}}

                  + + + + + + + + + + + + + + + + + +
                  {{_i}}Name{{/i}}{{_i}}type{{/i}}{{_i}}default{{/i}}{{_i}}description{{/i}}
                  {{_i}}offset{{/i}}{{_i}}number{{/i}}{{_i}}10{{/i}}{{_i}}Pixels to offset from top when calculating position of scroll.{{/i}}
                  + +

                  {{_i}}Events{{/i}}

                  + + + + + + + + + + + + + +
                  {{_i}}Event{{/i}}{{_i}}Description{{/i}}
                  {{_i}}activate{{/i}}{{_i}}This event fires whenever a new item becomes activated by the scrollspy.{{/i}}
                  +
                  + + + + +
                  + + + +

                  {{_i}}Example tabs{{/i}}

                  +

                  {{_i}}Add quick, dynamic tab functionality to transition through panes of local content, even via dropdown menus.{{/i}}

                  +
                  + +
                  +
                  +

                  Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.

                  +
                  +
                  +

                  Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.

                  +
                  + + +
                  +
                  {{! /example }} + + +
                  + + +

                  {{_i}}Usage{{/i}}

                  +

                  {{_i}}Enable tabbable tabs via JavaScript (each tab needs to be activated individually):{{/i}}

                  +
                  +$('#myTab a').click(function (e) {
                  +  e.preventDefault();
                  +  $(this).tab('show');
                  +})
                  +

                  {{_i}}You can activate individual tabs in several ways:{{/i}}

                  +
                  +$('#myTab a[href="#profile"]').tab('show'); // Select tab by name
                  +$('#myTab a:first').tab('show'); // Select first tab
                  +$('#myTab a:last').tab('show'); // Select last tab
                  +$('#myTab li:eq(2) a').tab('show'); // Select third tab (0-indexed)
                  +
                  + +

                  {{_i}}Markup{{/i}}

                  +

                  {{_i}}You can activate a tab or pill navigation without writing any JavaScript by simply specifying data-toggle="tab" or data-toggle="pill" on an element. Adding the nav and nav-tabs classes to the tab ul will apply the Bootstrap tab styling.{{/i}}

                  +
                  +<ul class="nav nav-tabs">
                  +  <li><a href="#home" data-toggle="tab">{{_i}}Home{{/i}}</a></li>
                  +  <li><a href="#profile" data-toggle="tab">{{_i}}Profile{{/i}}</a></li>
                  +  <li><a href="#messages" data-toggle="tab">{{_i}}Messages{{/i}}</a></li>
                  +  <li><a href="#settings" data-toggle="tab">{{_i}}Settings{{/i}}</a></li>
                  +</ul>
                  + +

                  {{_i}}Methods{{/i}}

                  +

                  $().tab

                  +

                  + {{_i}}Activates a tab element and content container. Tab should have either a data-target or an href targeting a container node in the DOM.{{/i}} +

                  +
                  +<ul class="nav nav-tabs" id="myTab">
                  +  <li class="active"><a href="#home">{{_i}}Home{{/i}}</a></li>
                  +  <li><a href="#profile">{{_i}}Profile{{/i}}</a></li>
                  +  <li><a href="#messages">{{_i}}Messages{{/i}}</a></li>
                  +  <li><a href="#settings">{{_i}}Settings{{/i}}</a></li>
                  +</ul>
                  +
                  +<div class="tab-content">
                  +  <div class="tab-pane active" id="home">...</div>
                  +  <div class="tab-pane" id="profile">...</div>
                  +  <div class="tab-pane" id="messages">...</div>
                  +  <div class="tab-pane" id="settings">...</div>
                  +</div>
                  +
                  +<script>
                  +  $(function () {
                  +    $('#myTab a:last').tab('show');
                  +  })
                  +</script>
                  +
                  + +

                  {{_i}}Events{{/i}}

                  + + + + + + + + + + + + + + + + + +
                  {{_i}}Event{{/i}}{{_i}}Description{{/i}}
                  {{_i}}show{{/i}}{{_i}}This event fires on tab show, but before the new tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively.{{/i}}
                  {{_i}}shown{{/i}}{{_i}}This event fires on tab show after a tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively.{{/i}}
                  +
                  +$('a[data-toggle="tab"]').on('shown', function (e) {
                  +  e.target // activated tab
                  +  e.relatedTarget // previous tab
                  +})
                  +
                  +
                  + + + +
                  + + + +

                  {{_i}}Examples{{/i}}

                  +

                  {{_i}}Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.{{/i}}

                  +

                  {{_i}}For performance reasons, the tooltip and popover data-apis are opt in, meaning you must initialize them yourself.{{/i}}

                  +

                  {{_i}}Hover over the links below to see tooltips:{{/i}}

                  +
                  +

                  {{_i}}Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.{{/i}} +

                  +
                  {{! /example }} + +

                  {{_i}}Four directions{{/i}}

                  + {{! /example }} + + +

                  {{_i}}Tooltips in input groups{{/i}}

                  +

                  {{_i}}When using tooltips and popovers with the Bootstrap input groups, you'll have to set the container (documented below) option to avoid unwanted side effects.{{/i}}

                  + +
                  + + +

                  {{_i}}Usage{{/i}}

                  +

                  {{_i}}Trigger the tooltip via JavaScript:{{/i}}

                  +
                  $('#example').tooltip({{_i}}options{{/i}})
                  + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-animation="".{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Name{{/i}}{{_i}}type{{/i}}{{_i}}default{{/i}}{{_i}}description{{/i}}
                  {{_i}}animation{{/i}}{{_i}}boolean{{/i}}true{{_i}}apply a css fade transition to the tooltip{{/i}}
                  {{_i}}html{{/i}}{{_i}}boolean{{/i}}false{{_i}}Insert html into the tooltip. If false, jquery's text method will be used to insert content into the dom. Use text if you're worried about XSS attacks.{{/i}}
                  {{_i}}placement{{/i}}{{_i}}string | function{{/i}}'top'{{_i}}how to position the tooltip{{/i}} - top | bottom | left | right
                  {{_i}}selector{{/i}}{{_i}}string{{/i}}false{{_i}}If a selector is provided, tooltip objects will be delegated to the specified targets.{{/i}}
                  {{_i}}title{{/i}}{{_i}}string | function{{/i}}''{{_i}}default title value if `title` tag isn't present{{/i}}
                  {{_i}}trigger{{/i}}{{_i}}string{{/i}}'hover focus'{{_i}}how tooltip is triggered{{/i}} - click | hover | focus | manual. {{_i}}Note you case pass trigger mutliple, space seperated, trigger types.{{/i}}
                  {{_i}}delay{{/i}}{{_i}}number | object{{/i}}0 +

                  {{_i}}delay showing and hiding the tooltip (ms) - does not apply to manual trigger type{{/i}}

                  +

                  {{_i}}If a number is supplied, delay is applied to both hide/show{{/i}}

                  +

                  {{_i}}Object structure is: delay: { show: 500, hide: 100 }{{/i}}

                  +
                  {{_i}}container{{/i}}{{_i}}string | false{{/i}}{{_i}}false{{/i}} +

                  {{_i}}Appends the tooltip to a specific element container: 'body'{{/i}}

                  +
                  +
                  + {{_i}}Heads up!{{/i}} + {{_i}}Options for individual tooltips can alternatively be specified through the use of data attributes.{{/i}} +
                  + +

                  {{_i}}Markup{{/i}}

                  +
                  <a href="#" data-toggle="tooltip" title="{{_i}}first tooltip{{/i}}">{{_i}}hover over me{{/i}}</a>
                  + +

                  {{_i}}Methods{{/i}}

                  +

                  $().tooltip({{_i}}options{{/i}})

                  +

                  {{_i}}Attaches a tooltip handler to an element collection.{{/i}}

                  +

                  .tooltip('show')

                  +

                  {{_i}}Reveals an element's tooltip.{{/i}}

                  +
                  $('#element').tooltip('show')
                  +

                  .tooltip('hide')

                  +

                  {{_i}}Hides an element's tooltip.{{/i}}

                  +
                  $('#element').tooltip('hide')
                  +

                  .tooltip('toggle')

                  +

                  {{_i}}Toggles an element's tooltip.{{/i}}

                  +
                  $('#element').tooltip('toggle')
                  +

                  .tooltip('destroy')

                  +

                  {{_i}}Hides and destroys an element's tooltip.{{/i}}

                  +
                  $('#element').tooltip('destroy')
                  +
                  + + + + +
                  + + +

                  {{_i}}Examples{{/i}}

                  +

                  {{_i}}Add small overlays of content, like those on the iPad, to any element for housing secondary information. Hover over the button to trigger the popover. Requires Tooltip to be included.{{/i}}

                  + +

                  {{_i}}Static popover{{/i}}

                  +

                  {{_i}}Four options are available: top, right, bottom, and left aligned.{{/i}}

                  +
                  +
                  +
                  +

                  Popover top

                  +
                  +

                  Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

                  +
                  +
                  + +
                  +
                  +

                  Popover right

                  +
                  +

                  Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

                  +
                  +
                  + +
                  +
                  +

                  Popover bottom

                  +
                  +

                  Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

                  +
                  +
                  + +
                  +
                  +

                  Popover left

                  +
                  +

                  Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.

                  +
                  +
                  + +
                  +
                  +

                  {{_i}}No markup shown as popovers are generated from JavaScript and content within a data attribute.{{/i}}

                  + +

                  Live demo

                  + + +

                  {{_i}}Four directions{{/i}}

                  + {{! /example }} + + +
                  + + +

                  {{_i}}Usage{{/i}}

                  +

                  {{_i}}Enable popovers via JavaScript:{{/i}}

                  +
                  $('#example').popover({{_i}}options{{/i}})
                  + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-animation="".{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Name{{/i}}{{_i}}type{{/i}}{{_i}}default{{/i}}{{_i}}description{{/i}}
                  {{_i}}animation{{/i}}{{_i}}boolean{{/i}}true{{_i}}apply a css fade transition to the tooltip{{/i}}
                  {{_i}}html{{/i}}{{_i}}boolean{{/i}}false{{_i}}Insert html into the popover. If false, jquery's text method will be used to insert content into the dom. Use text if you're worried about XSS attacks.{{/i}}
                  {{_i}}placement{{/i}}{{_i}}string | function{{/i}}'right'{{_i}}how to position the popover{{/i}} - top | bottom | left | right
                  {{_i}}selector{{/i}}{{_i}}string{{/i}}false{{_i}}if a selector is provided, tooltip objects will be delegated to the specified targets{{/i}}
                  {{_i}}trigger{{/i}}{{_i}}string{{/i}}'click'{{_i}}how popover is triggered{{/i}} - click | hover | focus | manual
                  {{_i}}title{{/i}}{{_i}}string | function{{/i}}''{{_i}}default title value if `title` attribute isn't present{{/i}}
                  {{_i}}content{{/i}}{{_i}}string | function{{/i}}''{{_i}}default content value if `data-content` attribute isn't present{{/i}}
                  {{_i}}delay{{/i}}{{_i}}number | object{{/i}}0 +

                  {{_i}}delay showing and hiding the popover (ms) - does not apply to manual trigger type{{/i}}

                  +

                  {{_i}}If a number is supplied, delay is applied to both hide/show{{/i}}

                  +

                  {{_i}}Object structure is: delay: { show: 500, hide: 100 }{{/i}}

                  +
                  {{_i}}container{{/i}}{{_i}}string | false{{/i}}{{_i}}false{{/i}} +

                  {{_i}}Appends the popover to a specific element container: 'body'{{/i}}

                  +
                  +
                  + {{_i}}Heads up!{{/i}} + {{_i}}Options for individual popovers can alternatively be specified through the use of data attributes.{{/i}} +
                  + +

                  {{_i}}Markup{{/i}}

                  +

                  {{_i}}For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.{{/i}}

                  + +

                  {{_i}}Methods{{/i}}

                  +

                  $().popover({{_i}}options{{/i}})

                  +

                  {{_i}}Initializes popovers for an element collection.{{/i}}

                  +

                  .popover('show')

                  +

                  {{_i}}Reveals an elements popover.{{/i}}

                  +
                  $('#element').popover('show')
                  +

                  .popover('hide')

                  +

                  {{_i}}Hides an elements popover.{{/i}}

                  +
                  $('#element').popover('hide')
                  +

                  .popover('toggle')

                  +

                  {{_i}}Toggles an elements popover.{{/i}}

                  +
                  $('#element').popover('toggle')
                  +

                  .popover('destroy')

                  +

                  {{_i}}Hides and destroys an element's popover.{{/i}}

                  +
                  $('#element').popover('destroy')
                  +
                  + + + + +
                  + + + +

                  {{_i}}Example alerts{{/i}}

                  +

                  {{_i}}Add dismiss functionality to all alert messages with this plugin.{{/i}}

                  +
                  +
                  + + {{_i}}Holy guacamole!{{/i}} {{_i}}Best check yo self, you're not looking too good.{{/i}} +
                  +
                  {{! /example }} + +
                  +
                  + +

                  {{_i}}Oh snap! You got an error!{{/i}}

                  +

                  {{_i}}Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.{{/i}}

                  +

                  + {{_i}}Take this action{{/i}} {{_i}}Or do this{{/i}} +

                  +
                  +
                  {{! /example }} + + +
                  + + +

                  {{_i}}Usage{{/i}}

                  +

                  {{_i}}Enable dismissal of an alert via JavaScript:{{/i}}

                  +
                  $(".alert").alert()
                  + +

                  {{_i}}Markup{{/i}}

                  +

                  {{_i}}Just add data-dismiss="alert" to your close button to automatically give an alert close functionality.{{/i}}

                  +
                  <a class="close" data-dismiss="alert" href="#">&times;</a>
                  + +

                  {{_i}}Methods{{/i}}

                  +

                  $().alert()

                  +

                  {{_i}}Wraps all alerts with close functionality. To have your alerts animate out when closed, make sure they have the .fade and .in class already applied to them.{{/i}}

                  +

                  .alert('close')

                  +

                  {{_i}}Closes an alert.{{/i}}

                  +
                  $(".alert").alert('close')
                  + + +

                  {{_i}}Events{{/i}}

                  +

                  {{_i}}Bootstrap's alert class exposes a few events for hooking into alert functionality.{{/i}}

                  + + + + + + + + + + + + + + + + + +
                  {{_i}}Event{{/i}}{{_i}}Description{{/i}}
                  {{_i}}close{{/i}}{{_i}}This event fires immediately when the close instance method is called.{{/i}}
                  {{_i}}closed{{/i}}{{_i}}This event is fired when the alert has been closed (will wait for css transitions to complete).{{/i}}
                  +
                  +$('#my-alert').bind('closed', function () {
                  +  // {{_i}}do something…{{/i}}
                  +})
                  +
                  +
                  + + + + +
                  + + +

                  {{_i}}Example uses{{/i}}

                  +

                  {{_i}}Do more with buttons. Control button states or create groups of buttons for more components like toolbars.{{/i}}

                  + +

                  {{_i}}Stateful{{/i}}

                  +

                  {{_i}}Add data-loading-text="Loading..." to use a loading state on a button.{{/i}}

                  +
                  + +
                  {{! /example }} +
                  <button type="button" class="btn btn-primary" data-loading-text="Loading...">Loading state</button>
                  + +

                  {{_i}}Single toggle{{/i}}

                  +

                  {{_i}}Add data-toggle="button" to activate toggling on a single button.{{/i}}

                  +
                  + +
                  {{! /example }} +
                  <button type="button" class="btn btn-primary" data-toggle="button">Single Toggle</button>
                  + +

                  {{_i}}Checkbox{{/i}}

                  +

                  {{_i}}Add data-toggle="buttons-checkbox" for checkbox style toggling on btn-group.{{/i}}

                  +
                  +
                  + + + +
                  +
                  {{! /example }} +
                  +<div class="btn-group" data-toggle="buttons-checkbox">
                  +  <button type="button" class="btn btn-primary">Left</button>
                  +  <button type="button" class="btn btn-primary">Middle</button>
                  +  <button type="button" class="btn btn-primary">Right</button>
                  +</div>
                  +
                  + +

                  {{_i}}Radio{{/i}}

                  +

                  {{_i}}Add data-toggle="buttons-radio" for radio style toggling on btn-group.{{/i}}

                  +
                  +
                  + + + +
                  +
                  {{! /example }} +
                  +<div class="btn-group" data-toggle="buttons-radio">
                  +  <button type="button" class="btn btn-primary">Left</button>
                  +  <button type="button" class="btn btn-primary">Middle</button>
                  +  <button type="button" class="btn btn-primary">Right</button>
                  +</div>
                  +
                  + + +
                  + + +

                  {{_i}}Usage{{/i}}

                  +

                  {{_i}}Enable buttons via JavaScript:{{/i}}

                  +
                  $('.nav-tabs').button()
                  + +

                  {{_i}}Markup{{/i}}

                  +

                  {{_i}}Data attributes are integral to the button plugin. Check out the example code below for the various markup types.{{/i}}

                  + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}None{{/i}}

                  + +

                  {{_i}}Methods{{/i}}

                  +

                  $().button('toggle')

                  +

                  {{_i}}Toggles push state. Gives the button the appearance that it has been activated.{{/i}}

                  +
                  + {{_i}}Heads up!{{/i}} + {{_i}}You can enable auto toggling of a button by using the data-toggle attribute.{{/i}} +
                  +
                  <button type="button" class="btn" data-toggle="button" >…</button>
                  +

                  $().button('loading')

                  +

                  {{_i}}Sets button state to loading - disables button and swaps text to loading text. Loading text should be defined on the button element using the data attribute data-loading-text.{{/i}} +

                  +
                  <button type="button" class="btn" data-loading-text="loading stuff..." >...</button>
                  +
                  + {{_i}}Heads up!{{/i}} + {{_i}}Firefox persists the disabled state across page loads. A workaround for this is to use autocomplete="off".{{/i}} +
                  +

                  $().button('reset')

                  +

                  {{_i}}Resets button state - swaps text to original text.{{/i}}

                  +

                  $().button(string)

                  +

                  {{_i}}Resets button state - swaps text to any data defined text state.{{/i}}

                  +
                  <button type="button" class="btn" data-complete-text="finished!" >...</button>
                  +<script>
                  +  $('.btn').button('complete')
                  +</script>
                  +
                  +
                  + + + + +
                  + + +

                  {{_i}}About{{/i}}

                  +

                  {{_i}}Get base styles and flexible support for collapsible components like accordions and navigation.{{/i}}

                  +

                  * {{_i}}Requires the Transitions plugin to be included.{{/i}}

                  + +

                  {{_i}}Example accordion{{/i}}

                  +

                  {{_i}}Using the collapse plugin, we built a simple accordion style widget:{{/i}}

                  + +
                  +
                  +
                  + +
                  +
                  + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +
                  +
                  +
                  +
                  + +
                  +
                  + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +
                  +
                  +
                  +
                  + +
                  +
                  + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +
                  +
                  +
                  +
                  +
                  {{! /example }} +
                  +<div class="accordion" id="accordion2">
                  +  <div class="accordion-group">
                  +    <div class="accordion-heading">
                  +      <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
                  +        {{_i}}Collapsible Group Item #1{{/i}}
                  +      </a>
                  +    </div>
                  +    <div id="collapseOne" class="accordion-body collapse in">
                  +      <div class="accordion-inner">
                  +        Anim pariatur cliche...
                  +      </div>
                  +    </div>
                  +  </div>
                  +  <div class="accordion-group">
                  +    <div class="accordion-heading">
                  +      <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
                  +        {{_i}}Collapsible Group Item #2{{/i}}
                  +      </a>
                  +    </div>
                  +    <div id="collapseTwo" class="accordion-body collapse">
                  +      <div class="accordion-inner">
                  +        Anim pariatur cliche...
                  +      </div>
                  +    </div>
                  +  </div>
                  +</div>
                  +...
                  +
                  +

                  {{_i}}You can also use the plugin without the accordion markup. Make a button toggle the expanding and collapsing of another element.{{/i}}

                  +
                  +<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">
                  +  {{_i}}simple collapsible{{/i}}
                  +</button>
                  +
                  +<div id="demo" class="collapse in"> … </div>
                  +
                  + + +
                  + + +

                  {{_i}}Usage{{/i}}

                  + +

                  {{_i}}Via data attributes{{/i}}

                  +

                  {{_i}}Just add data-toggle="collapse" and a data-target to element to automatically assign control of a collapsible element. The data-target attribute accepts a css selector to apply the collapse to. Be sure to add the class collapse to the collapsible element. If you'd like it to default open, add the additional class in.{{/i}}

                  +

                  {{_i}}To add accordion-like group management to a collapsible control, add the data attribute data-parent="#selector". Refer to the demo to see this in action.{{/i}}

                  + +

                  {{_i}}Via JavaScript{{/i}}

                  +

                  {{_i}}Enable manually with:{{/i}}

                  +
                  $(".collapse").collapse()
                  + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-parent="".{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Name{{/i}}{{_i}}type{{/i}}{{_i}}default{{/i}}{{_i}}description{{/i}}
                  {{_i}}parent{{/i}}{{_i}}selector{{/i}}false{{_i}}If selector then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior){{/i}}
                  {{_i}}toggle{{/i}}{{_i}}boolean{{/i}}true{{_i}}Toggles the collapsible element on invocation{{/i}}
                  + + +

                  {{_i}}Methods{{/i}}

                  +

                  .collapse({{_i}}options{{/i}})

                  +

                  {{_i}}Activates your content as a collapsible element. Accepts an optional options object.{{/i}} +

                  +$('#myCollapsible').collapse({
                  +  toggle: false
                  +})
                  +
                  +

                  .collapse('toggle')

                  +

                  {{_i}}Toggles a collapsible element to shown or hidden.{{/i}}

                  +

                  .collapse('show')

                  +

                  {{_i}}Shows a collapsible element.{{/i}}

                  +

                  .collapse('hide')

                  +

                  {{_i}}Hides a collapsible element.{{/i}}

                  + +

                  {{_i}}Events{{/i}}

                  +

                  {{_i}}Bootstrap's collapse class exposes a few events for hooking into collapse functionality.{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Event{{/i}}{{_i}}Description{{/i}}
                  {{_i}}show{{/i}}{{_i}}This event fires immediately when the show instance method is called.{{/i}}
                  {{_i}}shown{{/i}}{{_i}}This event is fired when a collapse element has been made visible to the user (will wait for css transitions to complete).{{/i}}
                  {{_i}}hide{{/i}} + {{_i}}This event is fired immediately when the hide method has been called.{{/i}} +
                  {{_i}}hidden{{/i}}{{_i}}This event is fired when a collapse element has been hidden from the user (will wait for css transitions to complete).{{/i}}
                  +
                  +$('#myCollapsible').on('hidden', function () {
                  +  // {{_i}}do something…{{/i}}
                  +})
                  +
                  + + + + + + + + + +
                  + + + +

                  {{_i}}Example{{/i}}

                  +

                  {{_i}}A basic, easily extended plugin for quickly creating elegant typeaheads with any form text input.{{/i}}

                  +
                  + +
                  {{! /example }} +
                  <input type="text" data-provide="typeahead">
                  +

                  You'll want to set autocomplete="off" to prevent default browser menus from appearing over the Bootstrap typeahead dropdown.

                  + +
                  + + +

                  {{_i}}Usage{{/i}}

                  + +

                  {{_i}}Via data attributes{{/i}}

                  +

                  {{_i}}Add data attributes to register an element with typeahead functionality as shown in the example above.{{/i}}

                  + +

                  {{_i}}Via JavaScript{{/i}}

                  +

                  {{_i}}Call the typeahead manually with:{{/i}}

                  +
                  $('.typeahead').typeahead()
                  + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-source="".{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Name{{/i}}{{_i}}type{{/i}}{{_i}}default{{/i}}{{_i}}description{{/i}}
                  {{_i}}source{{/i}}{{_i}}array, function{{/i}}[ ]{{_i}}The data source to query against. May be an array of strings or a function. The function is passed two arguments, the query value in the input field and the process callback. The function may be used synchronously by returning the data source directly or asynchronously via the process callback's single argument.{{/i}}
                  {{_i}}items{{/i}}{{_i}}number{{/i}}8{{_i}}The max number of items to display in the dropdown.{{/i}}
                  {{_i}}minLength{{/i}}{{_i}}number{{/i}}{{_i}}1{{/i}}{{_i}}The minimum character length needed before triggering autocomplete suggestions{{/i}}
                  {{_i}}matcher{{/i}}{{_i}}function{{/i}}{{_i}}case insensitive{{/i}}{{_i}}The method used to determine if a query matches an item. Accepts a single argument, the item against which to test the query. Access the current query with this.query. Return a boolean true if query is a match.{{/i}}
                  {{_i}}sorter{{/i}}{{_i}}function{{/i}}{{_i}}exact match,
                  case sensitive,
                  case insensitive{{/i}}
                  {{_i}}Method used to sort autocomplete results. Accepts a single argument items and has the scope of the typeahead instance. Reference the current query with this.query.{{/i}}
                  {{_i}}updater{{/i}}{{_i}}function{{/i}}{{_i}}returns selected item{{/i}}{{_i}}The method used to return selected item. Accepts a single argument, the item and has the scope of the typeahead instance.{{/i}}
                  {{_i}}highlighter{{/i}}{{_i}}function{{/i}}{{_i}}highlights all default matches{{/i}}{{_i}}Method used to highlight autocomplete results. Accepts a single argument item and has the scope of the typeahead instance. Should return html.{{/i}}
                  + +

                  {{_i}}Methods{{/i}}

                  +

                  .typeahead({{_i}}options{{/i}})

                  +

                  {{_i}}Initializes an input with a typeahead.{{/i}}

                  +
                  + + + + +
                  + + +

                  {{_i}}Example{{/i}}

                  +

                  {{_i}}The subnavigation on the left is a live demo of the affix plugin.{{/i}}

                  + +
                  + +

                  {{_i}}Usage{{/i}}

                  + +

                  {{_i}}Via data attributes{{/i}}

                  +

                  {{_i}}To easily add affix behavior to any element, just add data-spy="affix" to the element you want to spy on. Then use offsets to define when to toggle the pinning of an element on and off.{{/i}}

                  + +
                  <div data-spy="affix" data-offset-top="200">...</div>
                  + +
                  + {{_i}}Heads up!{{/i}} + {{_i}}You must manage the position of a pinned element and the behavior of its immediate parent. Position is controlled by affix, affix-top, and affix-bottom. Remember to check for a potentially collapsed parent when the affix kicks in as it's removing content from the normal flow of the page.{{/i}} +
                  + +

                  {{_i}}Via JavaScript{{/i}}

                  +

                  {{_i}}Call the affix plugin via JavaScript:{{/i}}

                  +
                  $('#navbar').affix()
                  + +

                  {{_i}}Options{{/i}}

                  +

                  {{_i}}Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-, as in data-offset-top="200".{{/i}}

                  + + + + + + + + + + + + + + + + + +
                  {{_i}}Name{{/i}}{{_i}}type{{/i}}{{_i}}default{{/i}}{{_i}}description{{/i}}
                  {{_i}}offset{{/i}}{{_i}}number | function | object{{/i}}{{_i}}10{{/i}}{{_i}}Pixels to offset from screen when calculating position of scroll. If a single number is provided, the offset will be applied in both top and left directions. To listen for a single direction, or multiple unique offsets, just provide an object offset: { x: 10 }. Use a function when you need to dynamically provide an offset (useful for some responsive designs).{{/i}}
                  +
                  + + + +
                  {{! /span9 }} +
                  {{! row}} + +
                  {{! /.container }} diff --git a/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/scaffolding.mustache b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/scaffolding.mustache new file mode 100644 index 00000000..a6f2f9da --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/docs/templates/pages/scaffolding.mustache @@ -0,0 +1,485 @@ + +
                  +
                  +

                  {{_i}}Scaffolding{{/i}}

                  +

                  {{_i}}Bootstrap is built on responsive 12-column grids, layouts, and components.{{/i}}

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

                  {{_i}}Requires HTML5 doctype{{/i}}

                  +

                  {{_i}}Bootstrap makes use of certain HTML elements and CSS properties that require the use of the HTML5 doctype. Include it at the beginning of all your projects.{{/i}}

                  +
                  +<!DOCTYPE html>
                  +<html lang="en">
                  +  ...
                  +</html>
                  +
                  + +

                  {{_i}}Typography and links{{/i}}

                  +

                  {{_i}}Bootstrap sets basic global display, typography, and link styles. Specifically, we:{{/i}}

                  +
                    +
                  • {{_i}}Remove margin on the body{{/i}}
                  • +
                  • {{_i}}Set background-color: white; on the body{{/i}}
                  • +
                  • {{_i}}Use the @baseFontFamily, @baseFontSize, and @baseLineHeight attributes as our typographic base{{/i}}
                  • +
                  • {{_i}}Set the global link color via @linkColor and apply link underlines only on :hover{{/i}}
                  • +
                  +

                  {{_i}}These styles can be found within scaffolding.less.{{/i}}

                  + +

                  {{_i}}Reset via Normalize{{/i}}

                  +

                  {{_i}}With Bootstrap 2, the old reset block has been dropped in favor of Normalize.css, a project by Nicolas Gallagher and Jonathan Neal that also powers the HTML5 Boilerplate. While we use much of Normalize within our reset.less, we have removed some elements specifically for Bootstrap.{{/i}}

                  + +
                  + + + + + +
                  + + +

                  {{_i}}Live grid example{{/i}}

                  +

                  {{_i}}The default Bootstrap grid system utilizes 12 columns, making for a 940px wide container without responsive features enabled. With the responsive CSS file added, the grid adapts to be 724px and 1170px wide depending on your viewport. Below 767px viewports, the columns become fluid and stack vertically.{{/i}}

                  +
                  +
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  +
                  +
                  2
                  +
                  3
                  +
                  4
                  +
                  +
                  +
                  4
                  +
                  5
                  +
                  +
                  +
                  9
                  +
                  +
                  + +

                  {{_i}}Basic grid HTML{{/i}}

                  +

                  {{_i}}For a simple two column layout, create a .row and add the appropriate number of .span* columns. As this is a 12-column grid, each .span* spans a number of those 12 columns, and should always add up to 12 for each row (or the number of columns in the parent).{{/i}}

                  +
                  +<div class="row">
                  +  <div class="span4">...</div>
                  +  <div class="span8">...</div>
                  +</div>
                  +
                  +

                  {{_i}}Given this example, we have .span4 and .span8, making for 12 total columns and a complete row.{{/i}}

                  + +

                  {{_i}}Offsetting columns{{/i}}

                  +

                  {{_i}}Move columns to the right using .offset* classes. Each class increases the left margin of a column by a whole column. For example, .offset4 moves .span4 over four columns.{{/i}}

                  +
                  +
                  +
                  4
                  +
                  3 offset 2
                  +
                  +
                  +
                  3 offset 1
                  +
                  3 offset 2
                  +
                  +
                  +
                  6 offset 3
                  +
                  +
                  +
                  +<div class="row">
                  +  <div class="span4">...</div>
                  +  <div class="span3 offset2">...</div>
                  +</div>
                  +
                  + +

                  {{_i}}Nesting columns{{/i}}

                  +

                  {{_i}}To nest your content with the default grid, add a new .row and set of .span* columns within an existing .span* column. Nested rows should include a set of columns that add up to the number of columns of its parent.{{/i}}

                  +
                  +
                  + {{_i}}Level 1 column{{/i}} +
                  +
                  + {{_i}}Level 2{{/i}} +
                  +
                  + {{_i}}Level 2{{/i}} +
                  +
                  +
                  +
                  +
                  +<div class="row">
                  +  <div class="span9">
                  +    {{_i}}Level 1 column{{/i}}
                  +    <div class="row">
                  +      <div class="span6">{{_i}}Level 2{{/i}}</div>
                  +      <div class="span3">{{_i}}Level 2{{/i}}</div>
                  +    </div>
                  +  </div>
                  +</div>
                  +
                  +
                  + + + + +
                  + + +

                  {{_i}}Live fluid grid example{{/i}}

                  +

                  {{_i}}The fluid grid system uses percents instead of pixels for column widths. It has the same responsive capabilities as our fixed grid system, ensuring proper proportions for key screen resolutions and devices.{{/i}}

                  +
                  +
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  1
                  +
                  +
                  +
                  4
                  +
                  4
                  +
                  4
                  +
                  +
                  +
                  4
                  +
                  8
                  +
                  +
                  +
                  6
                  +
                  6
                  +
                  +
                  +
                  12
                  +
                  +
                  + +

                  {{_i}}Basic fluid grid HTML{{/i}}

                  +

                  {{_i}}Make any row "fluid" by changing .row to .row-fluid. The column classes stay the exact same, making it easy to flip between fixed and fluid grids.{{/i}}

                  +
                  +<div class="row-fluid">
                  +  <div class="span4">...</div>
                  +  <div class="span8">...</div>
                  +</div>
                  +
                  + +

                  {{_i}}Fluid offsetting{{/i}}

                  +

                  {{_i}}Operates the same way as the fixed grid system offsetting: add .offset* to any column to offset by that many columns.{{/i}}

                  +
                  +
                  +
                  4
                  +
                  4 offset 4
                  +
                  +
                  +
                  3 offset 3
                  +
                  3 offset 3
                  +
                  +
                  +
                  6 offset 6
                  +
                  +
                  +
                  +<div class="row-fluid">
                  +  <div class="span4">...</div>
                  +  <div class="span4 offset2">...</div>
                  +</div>
                  +
                  + +

                  {{_i}}Fluid nesting{{/i}}

                  +

                  {{_i}}Fluid grids utilize nesting differently: each nested level of columns should add up to 12 columns. This is because the fluid grid uses percentages, not pixels, for setting widths.{{/i}}

                  +
                  +
                  + {{_i}}Fluid 12{{/i}} +
                  +
                  + {{_i}}Fluid 6{{/i}} +
                  +
                  + {{_i}}Fluid 6{{/i}} +
                  +
                  + {{_i}}Fluid 6{{/i}} +
                  +
                  +
                  +
                  + {{_i}}Fluid 6{{/i}} +
                  +
                  +
                  +
                  +
                  +<div class="row-fluid">
                  +  <div class="span12">
                  +    {{_i}}Fluid 12{{/i}}
                  +    <div class="row-fluid">
                  +      <div class="span6">
                  +        {{_i}}Fluid 6{{/i}}
                  +        <div class="row-fluid">
                  +          <div class="span6">{{_i}}Fluid 6{{/i}}</div>
                  +          <div class="span6">{{_i}}Fluid 6{{/i}}</div>
                  +        </div>
                  +      </div>
                  +      <div class="span6">{{_i}}Fluid 6{{/i}}</div>
                  +    </div>
                  +  </div>
                  +</div>
                  +
                  + +
                  + + + + + +
                  + + +

                  {{_i}}Fixed layout{{/i}}

                  +

                  {{_i}}Provides a common fixed-width (and optionally responsive) layout with only <div class="container"> required.{{/i}}

                  +
                  +
                  +
                  +
                  +<body>
                  +  <div class="container">
                  +    ...
                  +  </div>
                  +</body>
                  +
                  + +

                  {{_i}}Fluid layout{{/i}}

                  +

                  {{_i}}Create a fluid, two-column page with <div class="container-fluid">—great for applications and docs.{{/i}}

                  +
                  +
                  +
                  +
                  +
                  +<div class="container-fluid">
                  +  <div class="row-fluid">
                  +    <div class="span2">
                  +      <!--{{_i}}Sidebar content{{/i}}-->
                  +    </div>
                  +    <div class="span10">
                  +      <!--{{_i}}Body content{{/i}}-->
                  +    </div>
                  +  </div>
                  +</div>
                  +
                  +
                  + + + + + +
                  + + + {{! Enabling }} +

                  {{_i}}Enabling responsive features{{/i}}

                  +

                  {{_i}}Turn on responsive CSS in your project by including the proper meta tag and additional stylesheet within the <head> of your document. If you've compiled Bootstrap from the Customize page, you need only include the meta tag.{{/i}}

                  +
                  +<meta name="viewport" content="width=device-width, initial-scale=1.0">
                  +<link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
                  +
                  +

                  {{_i}}Heads up!{{/i}} {{_i}} Bootstrap doesn't include responsive features by default at this time as not everything needs to be responsive. Instead of encouraging developers to remove this feature, we figure it best to enable it as needed.{{/i}}

                  + + {{! About }} +

                  {{_i}}About responsive Bootstrap{{/i}}

                  + Responsive devices +

                  {{_i}}Media queries allow for custom CSS based on a number of conditions—ratios, widths, display type, etc—but usually focuses around min-width and max-width.{{/i}}

                  +
                    +
                  • {{_i}}Modify the width of column in our grid{{/i}}
                  • +
                  • {{_i}}Stack elements instead of float wherever necessary{{/i}}
                  • +
                  • {{_i}}Resize headings and text to be more appropriate for devices{{/i}}
                  • +
                  +

                  {{_i}}Use media queries responsibly and only as a start to your mobile audiences. For larger projects, do consider dedicated code bases and not layers of media queries.{{/i}}

                  + + {{! Supported }} +

                  {{_i}}Supported devices{{/i}}

                  +

                  {{_i}}Bootstrap supports a handful of media queries in a single file to help make your projects more appropriate on different devices and screen resolutions. Here's what's included:{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Label{{/i}}{{_i}}Layout width{{/i}}{{_i}}Column width{{/i}}{{_i}}Gutter width{{/i}}
                  {{_i}}Large display{{/i}}1200px and up70px30px
                  {{_i}}Default{{/i}}980px and up60px20px
                  {{_i}}Portrait tablets{{/i}}768px and above42px20px
                  {{_i}}Phones to tablets{{/i}}767px and below{{_i}}Fluid columns, no fixed widths{{/i}}
                  {{_i}}Phones{{/i}}480px and below{{_i}}Fluid columns, no fixed widths{{/i}}
                  +
                  +/* {{_i}}Large desktop{{/i}} */
                  +@media (min-width: 1200px) { ... }
                  +
                  +/* {{_i}}Portrait tablet to landscape and desktop{{/i}} */
                  +@media (min-width: 768px) and (max-width: 979px) { ... }
                  +
                  +/* {{_i}}Landscape phone to portrait tablet{{/i}} */
                  +@media (max-width: 767px) { ... }
                  +
                  +/* {{_i}}Landscape phones and down{{/i}} */
                  +@media (max-width: 480px) { ... }
                  +
                  + + + {{! Responsive utility classes }} +

                  {{_i}}Responsive utility classes{{/i}}

                  +

                  {{_i}}For faster mobile-friendly development, use these utility classes for showing and hiding content by device. Below is a table of the available classes and their effect on a given media query layout (labeled by device). They can be found in responsive.less.{{/i}}

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  {{_i}}Class{{/i}}{{_i}}Phones 767px and below{{/i}}{{_i}}Tablets 979px to 768px{{/i}}{{_i}}Desktops Default{{/i}}
                  .visible-phone{{_i}}Visible{{/i}}
                  .visible-tablet{{_i}}Visible{{/i}}
                  .visible-desktop{{_i}}Visible{{/i}}
                  .hidden-phone{{_i}}Visible{{/i}}{{_i}}Visible{{/i}}
                  .hidden-tablet{{_i}}Visible{{/i}}{{_i}}Visible{{/i}}
                  .hidden-desktop{{_i}}Visible{{/i}}{{_i}}Visible{{/i}}
                  + +

                  {{_i}}When to use{{/i}}

                  +

                  {{_i}}Use on a limited basis and avoid creating entirely different versions of the same site. Instead, use them to complement each device's presentation. Responsive utilities should not be used with tables, and as such are not supported.{{/i}}

                  + +

                  {{_i}}Responsive utilities test case{{/i}}

                  +

                  {{_i}}Resize your browser or load on different devices to test the above classes.{{/i}}

                  +

                  {{_i}}Visible on...{{/i}}

                  +

                  {{_i}}Green checkmarks indicate that class is visible in your current viewport.{{/i}}

                  +
                    +
                  • {{_i}}Phone{{/i}}✔ {{_i}}Phone{{/i}}
                  • +
                  • {{_i}}Tablet{{/i}}✔ {{_i}}Tablet{{/i}}
                  • +
                  • {{_i}}Desktop{{/i}}✔ {{_i}}Desktop{{/i}}
                  • +
                  +

                  {{_i}}Hidden on...{{/i}}

                  +

                  {{_i}}Here, green checkmarks indicate that class is hidden in your current viewport.{{/i}}

                  +
                    +
                  • {{_i}}Phone{{/i}}✔ {{_i}}Phone{{/i}}
                  • +
                  • {{_i}}Tablet{{/i}}✔ {{_i}}Tablet{{/i}}
                  • +
                  • {{_i}}Desktop{{/i}}✔ {{_i}}Desktop{{/i}}
                  • +
                  + +
                  + + + +
                  {{! /span9 }} +
                  {{! row}} + +
                  {{! /.container }} diff --git a/src/main/webapp/static/bootstrap/2.3.1/font/FontAwesome.otf b/src/main/webapp/static/bootstrap/2.3.1/font/FontAwesome.otf new file mode 100644 index 00000000..70125459 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/font/FontAwesome.otf differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.eot b/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.eot new file mode 100644 index 00000000..0662cb96 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.eot differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.svg b/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.svg new file mode 100644 index 00000000..2edb4ec3 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.svg @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.ttf b/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.ttf new file mode 100644 index 00000000..d3659246 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.ttf differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.woff b/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.woff new file mode 100644 index 00000000..b9bd17e1 Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/font/fontawesome-webfont.woff differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/img/glyphicons-halflings-white.png b/src/main/webapp/static/bootstrap/2.3.1/img/glyphicons-halflings-white.png new file mode 100644 index 00000000..3bf6484a Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/img/glyphicons-halflings-white.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/img/glyphicons-halflings.png b/src/main/webapp/static/bootstrap/2.3.1/img/glyphicons-halflings.png new file mode 100644 index 00000000..fc76a2cc Binary files /dev/null and b/src/main/webapp/static/bootstrap/2.3.1/img/glyphicons-halflings.png differ diff --git a/src/main/webapp/static/bootstrap/2.3.1/js/bootstrap.js b/src/main/webapp/static/bootstrap/2.3.1/js/bootstrap.js new file mode 100644 index 00000000..c298ee42 --- /dev/null +++ b/src/main/webapp/static/bootstrap/2.3.1/js/bootstrap.js @@ -0,0 +1,2276 @@ +/* =================================================== + * bootstrap-transition.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $(function () { + + $.support.transition = (function () { + + var transitionEnd = (function () { + + var el = document.createElement('bootstrap') + , transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd otransitionend' + , 'transition' : 'transitionend' + } + , name + + for (name in transEndEventNames){ + if (el.style[name] !== undefined) { + return transEndEventNames[name] + } + } + + }()) + + return transitionEnd && { + end: transitionEnd + } + + })() + + }) + +}(window.jQuery);/* ========================================================== + * bootstrap-alert.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.trigger(e = $.Event('close')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent + .trigger('closed') + .remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + var old = $.fn.alert + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT NO CONFLICT + * ================= */ + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + /* ALERT DATA-API + * ============== */ + + $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) + +}(window.jQuery);/* ============================================================ + * bootstrap-button.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + Button.prototype.toggle = function () { + var $parent = this.$element.closest('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + var old = $.fn.button + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON NO CONFLICT + * ================== */ + + $.fn.button.noConflict = function () { + $.fn.button = old + return this + } + + + /* BUTTON DATA-API + * =============== */ + + $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + }) + +}(window.jQuery);/* ========================================================== + * bootstrap-carousel.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') + this.options = options + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.prototype = { + + cycle: function (e) { + if (!e) this.paused = false + if (this.interval) clearInterval(this.interval); + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + return this + } + + , getActiveIndex: function () { + this.$active = this.$element.find('.item.active') + this.$items = this.$active.parent().children() + return this.$items.index(this.$active) + } + + , to: function (pos) { + var activeIndex = this.getActiveIndex() + , that = this + + if (pos > (this.$items.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activeIndex == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) + } + + , pause: function (e) { + if (!e) this.paused = true + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end) + this.cycle(true) + } + clearInterval(this.interval) + this.interval = null + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.item.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + , e + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + e = $.Event('slide', { + relatedTarget: $next[0] + , direction: direction + }) + + if ($next.hasClass('active')) return + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + this.$element.one('slid', function () { + var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) + $nextIndicator && $nextIndicator.addClass('active') + }) + } + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.carousel + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) + , action = typeof option == 'string' ? option : options.slide + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.pause().cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + , pause: 'hover' + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL NO CONFLICT + * ==================== */ + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old + return this + } + + /* CAROUSEL DATA-API + * ================= */ + + $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = $.extend({}, $target.data(), $this.data()) + , slideIndex + + $target.carousel(options) + + if (slideIndex = $this.attr('data-slide-to')) { + $target.data('carousel').pause().to(slideIndex).cycle() + } + + e.preventDefault() + }) + +}(window.jQuery);/* ============================================================= + * bootstrap-collapse.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options.parent) { + this.$parent = $(this.options.parent) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension + , scroll + , actives + , hasData + + if (this.transitioning || this.$element.hasClass('in')) return + + dimension = this.dimension() + scroll = $.camelCase(['scroll', dimension].join('-')) + actives = this.$parent && this.$parent.find('> .accordion-group > .in') + + if (actives && actives.length) { + hasData = actives.data('collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', $.Event('show'), 'shown') + $.support.transition && this.$element[dimension](this.$element[0][scroll]) + } + + , hide: function () { + var dimension + if (this.transitioning || !this.$element.hasClass('in')) return + dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', $.Event('hide'), 'hidden') + this.$element[dimension](0) + } + + , reset: function (size) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') + + return this + } + + , transition: function (method, startEvent, completeEvent) { + var that = this + , complete = function () { + if (startEvent.type == 'show') that.reset() + that.transitioning = 0 + that.$element.trigger(completeEvent) + } + + this.$element.trigger(startEvent) + + if (startEvent.isDefaultPrevented()) return + + this.transitioning = 1 + + this.$element[method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + + /* COLLAPSE PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.collapse + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSE NO CONFLICT + * ==================== */ + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + /* COLLAPSE DATA-API + * ================= */ + + $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + $(target).collapse(option) + }) + +}(window.jQuery);/* ============================================================ + * bootstrap-dropdown.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle=dropdown]' + , Dropdown = function (element) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function (e) { + var $this = $(this) + , $parent + , isActive + + if ($this.is('.disabled, :disabled')) return + + $parent = getParent($this) + + isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + $parent.toggleClass('open') + } + + $this.focus() + + return false + } + + , keydown: function (e) { + var $this + , $items + , $active + , $parent + , isActive + , index + + if (!/(38|40|27)/.test(e.keyCode)) return + + $this = $(this) + + e.preventDefault() + e.stopPropagation() + + if ($this.is('.disabled, :disabled')) return + + $parent = getParent($this) + + isActive = $parent.hasClass('open') + + if (!isActive || (isActive && e.keyCode == 27)) { + if (e.which == 27) $parent.find(toggle).focus() + return $this.click() + } + + $items = $('[role=menu] li:not(.divider):visible a', $parent) + + if (!$items.length) return + + index = $items.index($items.filter(':focus')) + + if (e.keyCode == 38 && index > 0) index-- // up + if (e.keyCode == 40 && index < $items.length - 1) index++ // down + if (!~index) index = 0 + + $items + .eq(index) + .focus() + } + + } + + function clearMenus() { + $(toggle).each(function () { + getParent($(this)).removeClass('open') + }) + } + + function getParent($this) { + var selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = selector && $(selector) + + if (!$parent || !$parent.length) $parent = $this.parent() + + return $parent + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.dropdown + + $.fn.dropdown = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* DROPDOWN NO CONFLICT + * ==================== */ + + $.fn.dropdown.noConflict = function () { + $.fn.dropdown = old + return this + } + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(document) + .on('click.dropdown.data-api', clearMenus) + .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) + .on('click.dropdown-menu', function (e) { e.stopPropagation() }) + .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle) + .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) + +}(window.jQuery); +/* ========================================================= + * bootstrap-modal.js v2.3.1 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (element, options) { + this.options = options + this.$element = $(element) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + this.options.remote && this.$element.find('.modal-body').load(this.options.remote) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + , e = $.Event('show') + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + this.isShown = true + + this.escape() + + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body) //don't move modals dom position + } + + that.$element.show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element + .addClass('in') + .attr('aria-hidden', false) + + that.enforceFocus() + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) : + that.$element.focus().trigger('shown') + + }) + } + + , hide: function (e) { + e && e.preventDefault() + + var that = this + + e = $.Event('hide') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + this.escape() + + $(document).off('focusin.modal') + + this.$element + .removeClass('in') + .attr('aria-hidden', true) + + $.support.transition && this.$element.hasClass('fade') ? + this.hideWithTransition() : + this.hideModal() + } + + , enforceFocus: function () { + var that = this + $(document).on('focusin.modal', function (e) { + if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { + that.$element.focus() + } + }) + } + + , escape: function () { + var that = this + if (this.isShown && this.options.keyboard) { + this.$element.on('keyup.dismiss.modal', function ( e ) { + e.which == 27 && that.hide() + }) + } else if (!this.isShown) { + this.$element.off('keyup.dismiss.modal') + } + } + + , hideWithTransition: function () { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + that.hideModal() + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + that.hideModal() + }) + } + + , hideModal: function () { + var that = this + this.$element.hide() + this.backdrop(function () { + that.removeBackdrop() + that.$element.trigger('hidden') + }) + } + + , removeBackdrop: function () { + this.$backdrop && this.$backdrop.remove() + this.$backdrop = null + } + + , backdrop: function (callback) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('' ); + return html.join( '' ); + }; + CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML ); + }, + + /** + * A single checkbox with a label on the right. + * @constructor + * @extends CKEDITOR.ui.dialog.uiElement + * @example + * @param {CKEDITOR.dialog} dialog + * Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + *
                    + *
                  • checked (Optional) Whether the checkbox is checked + * on instantiation. Defaults to false.
                  • + *
                  • validate (Optional) The validation function.
                  • + *
                  • label (Optional) The checkbox label.
                  • + *
                  + * @param {Array} htmlList + * List of HTML code to output to. + */ + checkbox : function( dialog, elementDefinition, htmlList ) + { + if ( arguments.length < 3 ) + return; + + var _ = initPrivateObject.call( this, elementDefinition, { 'default' : !!elementDefinition[ 'default' ] } ); + + if ( elementDefinition.validate ) + this.validate = elementDefinition.validate; + + /** @ignore */ + var innerHTML = function() + { + var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, + { + id : elementDefinition.id ? elementDefinition.id + '_checkbox' : CKEDITOR.tools.getNextId() + '_checkbox' + }, true ), + html = []; + + var labelId = CKEDITOR.tools.getNextId() + '_label'; + var attributes = { 'class' : 'cke_dialog_ui_checkbox_input', type : 'checkbox', 'aria-labelledby' : labelId }; + cleanInnerDefinition( myDefinition ); + if ( elementDefinition[ 'default' ] ) + attributes.checked = 'checked'; + + if ( typeof myDefinition.inputStyle != 'undefined' ) + myDefinition.style = myDefinition.inputStyle; + + _.checkbox = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'input', null, attributes ); + html.push( ' ' ); + return html.join( '' ); + }; + + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'span', null, null, innerHTML ); + }, + + /** + * A group of radio buttons. + * @constructor + * @example + * @extends CKEDITOR.ui.dialog.labeledElement + * @param {CKEDITOR.dialog} dialog + * Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + *
                    + *
                  • default (Required) The default value.
                  • + *
                  • validate (Optional) The validation function.
                  • + *
                  • items (Required) An array of options. Each option + * is a 1- or 2-item array of format [ 'Description', 'Value' ]. If 'Value' + * is missing, then the value would be assumed to be the same as the + * description.
                  • + *
                  + * @param {Array} htmlList + * List of HTML code to output to. + */ + radio : function( dialog, elementDefinition, htmlList ) + { + if ( arguments.length < 3) + return; + + initPrivateObject.call( this, elementDefinition ); + if ( !this._['default'] ) + this._['default'] = this._.initValue = elementDefinition.items[0][1]; + if ( elementDefinition.validate ) + this.validate = elementDefinition.valdiate; + var children = [], me = this; + + /** @ignore */ + var innerHTML = function() + { + var inputHtmlList = [], html = [], + commonAttributes = { 'class' : 'cke_dialog_ui_radio_item', 'aria-labelledby' : this._.labelId }, + commonName = elementDefinition.id ? elementDefinition.id + '_radio' : CKEDITOR.tools.getNextId() + '_radio'; + for ( var i = 0 ; i < elementDefinition.items.length ; i++ ) + { + var item = elementDefinition.items[i], + title = item[2] !== undefined ? item[2] : item[0], + value = item[1] !== undefined ? item[1] : item[0], + inputId = CKEDITOR.tools.getNextId() + '_radio_input', + labelId = inputId + '_label', + inputDefinition = CKEDITOR.tools.extend( {}, elementDefinition, + { + id : inputId, + title : null, + type : null + }, true ), + labelDefinition = CKEDITOR.tools.extend( {}, inputDefinition, + { + title : title + }, true ), + inputAttributes = + { + type : 'radio', + 'class' : 'cke_dialog_ui_radio_input', + name : commonName, + value : value, + 'aria-labelledby' : labelId + }, + inputHtml = []; + if ( me._['default'] == value ) + inputAttributes.checked = 'checked'; + cleanInnerDefinition( inputDefinition ); + cleanInnerDefinition( labelDefinition ); + + if ( typeof inputDefinition.inputStyle != 'undefined' ) + inputDefinition.style = inputDefinition.inputStyle; + + children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) ); + inputHtml.push( ' ' ); + new CKEDITOR.ui.dialog.uiElement( dialog, labelDefinition, inputHtml, 'label', null, { id : labelId, 'for' : inputAttributes.id }, + item[0] ); + inputHtmlList.push( inputHtml.join( '' ) ); + } + new CKEDITOR.ui.dialog.hbox( dialog, children, inputHtmlList, html ); + return html.join( '' ); + }; + + CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML ); + this._.children = children; + }, + + /** + * A button with a label inside. + * @constructor + * @example + * @extends CKEDITOR.ui.dialog.uiElement + * @param {CKEDITOR.dialog} dialog + * Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + *
                    + *
                  • label (Required) The button label.
                  • + *
                  • disabled (Optional) Set to true if you want the + * button to appear in disabled state.
                  • + *
                  + * @param {Array} htmlList + * List of HTML code to output to. + */ + button : function( dialog, elementDefinition, htmlList ) + { + if ( !arguments.length ) + return; + + if ( typeof elementDefinition == 'function' ) + elementDefinition = elementDefinition( dialog.getParentEditor() ); + + initPrivateObject.call( this, elementDefinition, { disabled : elementDefinition.disabled || false } ); + + // Add OnClick event to this input. + CKEDITOR.event.implementOn( this ); + + var me = this; + + // Register an event handler for processing button clicks. + dialog.on( 'load', function( eventInfo ) + { + var element = this.getElement(); + + (function() + { + element.on( 'click', function( evt ) + { + me.fire( 'click', { dialog : me.getDialog() } ); + evt.data.preventDefault(); + } ); + + element.on( 'keydown', function( evt ) + { + if ( evt.data.getKeystroke() in { 32:1 } ) + { + me.click(); + evt.data.preventDefault(); + } + } ); + })(); + + element.unselectable(); + }, this ); + + var outerDefinition = CKEDITOR.tools.extend( {}, elementDefinition ); + delete outerDefinition.style; + + var labelId = CKEDITOR.tools.getNextId() + '_label'; + CKEDITOR.ui.dialog.uiElement.call( + this, + dialog, + outerDefinition, + htmlList, + 'a', + null, + { + style : elementDefinition.style, + href : 'javascript:void(0)', + title : elementDefinition.label, + hidefocus : 'true', + 'class' : elementDefinition['class'], + role : 'button', + 'aria-labelledby' : labelId + }, + '' + + CKEDITOR.tools.htmlEncode( elementDefinition.label ) + + '' ); + }, + + /** + * A select box. + * @extends CKEDITOR.ui.dialog.uiElement + * @example + * @constructor + * @param {CKEDITOR.dialog} dialog + * Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + *
                    + *
                  • default (Required) The default value.
                  • + *
                  • validate (Optional) The validation function.
                  • + *
                  • items (Required) An array of options. Each option + * is a 1- or 2-item array of format [ 'Description', 'Value' ]. If 'Value' + * is missing, then the value would be assumed to be the same as the + * description.
                  • + *
                  • multiple (Optional) Set this to true if you'd like + * to have a multiple-choice select box.
                  • + *
                  • size (Optional) The number of items to display in + * the select box.
                  • + *
                  + * @param {Array} htmlList + * List of HTML code to output to. + */ + select : function( dialog, elementDefinition, htmlList ) + { + if ( arguments.length < 3 ) + return; + + var _ = initPrivateObject.call( this, elementDefinition ); + + if ( elementDefinition.validate ) + this.validate = elementDefinition.validate; + + _.inputId = CKEDITOR.tools.getNextId() + '_select'; + /** @ignore */ + var innerHTML = function() + { + var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, + { + id : elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextId() + '_select' + }, true ), + html = [], + innerHTML = [], + attributes = { 'id' : _.inputId, 'class' : 'cke_dialog_ui_input_select', 'aria-labelledby' : this._.labelId }; + + // Add multiple and size attributes from element definition. + if ( elementDefinition.size != undefined ) + attributes.size = elementDefinition.size; + if ( elementDefinition.multiple != undefined ) + attributes.multiple = elementDefinition.multiple; + + cleanInnerDefinition( myDefinition ); + for ( var i = 0, item ; i < elementDefinition.items.length && ( item = elementDefinition.items[i] ) ; i++ ) + { + innerHTML.push( '