summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormconway <michael.c.conway@gmail.com>2013-02-13 18:01:39 (GMT)
committer mconway <michael.c.conway@gmail.com>2013-02-13 18:01:39 (GMT)
commit2c18e72121bac1adc3d4b6249cf2473c7d3ae6ac (patch)
treedc27604b3dff46bf829c09dc38aa6f224089428a
parentc8284448ed5af504db77daf27fa673664aa11249 (diff)
parent6c3d5991e11da1bacec2d4a2e83472ba8c0eb084 (diff)
downloadQCG-Data-2c18e72121bac1adc3d4b6249cf2473c7d3ae6ac.zip
QCG-Data-2c18e72121bac1adc3d4b6249cf2473c7d3ae6ac.tar.gz
QCG-Data-2c18e72121bac1adc3d4b6249cf2473c7d3ae6ac.tar.bz2
[#1191] merge for idrop web
-rw-r--r--idrop-web/application.properties10
-rw-r--r--idrop-web/designnotes.txt5
-rw-r--r--idrop-web/grails-app/conf/BuildConfig.groovy16
-rw-r--r--idrop-web/grails-app/conf/Config.groovy8
-rw-r--r--idrop-web/grails-app/conf/spring/resources.groovy4
-rw-r--r--idrop-web/grails-app/conf/spring/resources.xml2
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy157
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy13
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy26
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/ProfileController.groovy6
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/SearchController.groovy5
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/ShoppingCartController.groovy137
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/TagsController.groovy8
-rw-r--r--idrop-web/grails-app/i18n/messages.properties34
-rw-r--r--idrop-web/grails-app/services/org/irods/mydrop/service/ShoppingCartSessionService.groovy11
-rw-r--r--idrop-web/grails-app/views/audit/auditDetails.gsp14
-rw-r--r--idrop-web/grails-app/views/browse/_browseTabContent.gsp21
-rw-r--r--idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp113
-rw-r--r--idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp60
-rw-r--r--idrop-web/grails-app/views/browse/browseDetails.gsp77
-rw-r--r--idrop-web/grails-app/views/browse/collectionInfo.gsp152
-rw-r--r--idrop-web/grails-app/views/browse/collectionInfoMini.gsp2
-rw-r--r--idrop-web/grails-app/views/browse/dataObjectInfo.gsp146
-rw-r--r--idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp53
-rw-r--r--idrop-web/grails-app/views/browse/galleryView.gsp1
-rw-r--r--idrop-web/grails-app/views/browse/index.gsp43
-rw-r--r--idrop-web/grails-app/views/browse/listCart.gsp34
-rw-r--r--idrop-web/grails-app/views/browse/newFolderDialog.gsp51
-rw-r--r--idrop-web/grails-app/views/browse/publicLinkDialog.gsp38
-rw-r--r--idrop-web/grails-app/views/browse/renameDialog.gsp42
-rw-r--r--idrop-web/grails-app/views/common/_browseLegend.gsp11
-rw-r--r--idrop-web/grails-app/views/common/_cssAndJs.gsp40
-rw-r--r--idrop-web/grails-app/views/common/_footer.gsp31
-rw-r--r--idrop-web/grails-app/views/common/_topToolbar.gsp207
-rw-r--r--idrop-web/grails-app/views/common/_topbar.gsp112
-rw-r--r--idrop-web/grails-app/views/file/deleteResult.gsp1
-rw-r--r--idrop-web/grails-app/views/file/uploadDialog.gsp56
-rw-r--r--idrop-web/grails-app/views/home/index.gsp179
-rw-r--r--idrop-web/grails-app/views/idropLite/appletLoader.gsp4
-rw-r--r--idrop-web/grails-app/views/layouts/basic.gsp72
-rw-r--r--idrop-web/grails-app/views/layouts/main.gsp95
-rw-r--r--idrop-web/grails-app/views/layouts/mainNoSidebar.gsp50
-rw-r--r--idrop-web/grails-app/views/login/login.gsp2
-rw-r--r--idrop-web/grails-app/views/metadata/metadataDetails.gsp52
-rw-r--r--idrop-web/grails-app/views/metadata/metadataDialog.gsp13
-rw-r--r--idrop-web/grails-app/views/profile/_profileTabContent.gsp19
-rw-r--r--idrop-web/grails-app/views/profile/changePasswordDialog.gsp4
-rw-r--r--idrop-web/grails-app/views/profile/index.gsp28
-rw-r--r--idrop-web/grails-app/views/profile/profileData.gsp66
-rw-r--r--idrop-web/grails-app/views/sharing/aclDetails.gsp100
-rw-r--r--idrop-web/grails-app/views/sharing/aclDialog.gsp22
-rw-r--r--idrop-web/grails-app/views/shoppingCart/cartDetails.gsp (renamed from idrop-web/grails-app/views/browse/cartDetails.gsp)0
-rw-r--r--idrop-web/grails-app/views/shoppingCart/index.gsp45
-rw-r--r--idrop-web/grails-app/views/ticket/ticketDetails.gsp23
-rw-r--r--idrop-web/grails-app/views/ticket/ticketPulldown.gsp31
-rw-r--r--idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp1
-rw-r--r--idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp1
-rw-r--r--idrop-web/grails-app/views/user/index.gsp4
-rw-r--r--idrop-web/release_notes.txt36
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/controller/BrowseControllerTests.groovy8
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/controller/SearchControllerTests.groovy6
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/controller/ShoppingCartControllerTests.groovy19
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/controller/TagsControllerTests.groovy10
-rw-r--r--idrop-web/web-app/css/base.css79
-rw-r--r--idrop-web/web-app/css/bootstrap.css5837
-rw-r--r--idrop-web/web-app/css/jquery.gritter.css1
-rw-r--r--idrop-web/web-app/css/main.css1034
-rw-r--r--idrop-web/web-app/css/nextPageArrow.gifbin79 -> 0 bytes
-rw-r--r--idrop-web/web-app/css/nextPageArrowWhite.gifbin79 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_flat_0_aaaaaa_40x100.pngbin180 -> 180 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_flat_0_eeeeee_40x100.pngbin180 -> 180 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_flat_55_c0402a_40x100.pngbin213 -> 182 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_flat_55_eeeeee_40x100.pngbin180 -> 180 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_glass_100_f8f8f8_1x400.pngbin105 -> 105 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_glass_35_dddddd_1x400.pngbin109 -> 109 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_glass_60_eeeeee_1x400.pngbin110 -> 110 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_inset-hard_75_999999_1x100.pngbin114 -> 114 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.pngbin96 -> 96 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-icons_3383bb_256x240.pngbin5355 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-icons_454545_256x240.pngbin5355 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-icons_70b2e1_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-icons_999999_256x240.pngbin4369 -> 4369 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/images/ui-icons_fbc856_256x240.pngbin4369 -> 5355 bytes
-rw-r--r--[-rwxr-xr-x]idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.css (renamed from idrop-web/web-app/css/overcast/jquery-ui-1.8.7.custom.css)524
-rw-r--r--idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.min.css5
-rw-r--r--idrop-web/web-app/css/prevPageArrow.gifbin78 -> 0 bytes
-rw-r--r--idrop-web/web-app/css/prevPageArrowWhite.gifbin78 -> 0 bytes
-rw-r--r--idrop-web/web-app/css/reset-fonts-grids.css407
-rw-r--r--idrop-web/web-app/css/style.css50
-rw-r--r--idrop-web/web-app/images/folder_icon.pngbin0 -> 4130 bytes
-rw-r--r--idrop-web/web-app/images/upload.pngbin0 -> 11502 bytes
-rw-r--r--idrop-web/web-app/img/glyphicons-halflings-white.pngbin0 -> 8777 bytes
-rw-r--r--idrop-web/web-app/img/glyphicons-halflings.pngbin0 -> 12799 bytes
-rw-r--r--idrop-web/web-app/js/bootstrap.min.js7
-rw-r--r--idrop-web/web-app/js/bundles/messages.properties2
-rw-r--r--idrop-web/web-app/js/jquery.layout.min-1.3.0.js142
-rw-r--r--idrop-web/web-app/js/mydrop/home.js242
-rw-r--r--idrop-web/web-app/js/mydrop/lingo_common.js40
-rw-r--r--idrop-web/web-app/js/mydrop/main.js42
-rw-r--r--idrop-web/web-app/js/mydrop/metadata.js14
-rw-r--r--idrop-web/web-app/js/mydrop/profile.js60
-rw-r--r--idrop-web/web-app/js/mydrop/shopping_cart.js15
-rw-r--r--idrop-web/web-app/js/mydrop/ticket.js10
103 files changed, 8204 insertions, 2944 deletions
diff --git a/idrop-web/application.properties b/idrop-web/application.properties
index 6f599a3..1b9e62a 100644
--- a/idrop-web/application.properties
+++ b/idrop-web/application.properties
@@ -1,7 +1,7 @@
#Grails Metadata file
-#Fri Nov 02 16:04:35 EDT 2012
-app.grails.version=2.1.0
-app.name=idrop-web
+#Wed Feb 13 08:58:43 EST 2013
+app.grails.version=2.1.1
+app.name=idrop-web2
app.servlet.version=2.5
-app.version=1.0.2
-plugins.tomcat=2.1.0
+app.version=2.0.0
+plugins.tomcat=2.1.2
diff --git a/idrop-web/designnotes.txt b/idrop-web/designnotes.txt
index 74c36a8..143a6ed 100644
--- a/idrop-web/designnotes.txt
+++ b/idrop-web/designnotes.txt
@@ -1,3 +1,8 @@
+http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org.html
+
+
+
+
http://codebrewery.blogspot.com/2011/01/memu-simple-css-javascript-jquery-menu.html
http://coffeescripter.com/code/ad-gallery/
http://benalman.com/code/projects/jquery-bbq/docs/files/jquery-ba-bbq-js.html
diff --git a/idrop-web/grails-app/conf/BuildConfig.groovy b/idrop-web/grails-app/conf/BuildConfig.groovy
index d4dfed3..68f1b3b 100644
--- a/idrop-web/grails-app/conf/BuildConfig.groovy
+++ b/idrop-web/grails-app/conf/BuildConfig.groovy
@@ -25,20 +25,14 @@ grails.project.dependency.resolution = {
}
dependencies {
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
- //test 'org.irods.jargon:jargon-test:3.1.3-SNAPSHOT'
test 'org.mockito:mockito-all:1.8.1'
compile 'commons-io:commons-io:2.1'
provided 'junit:junit:4.8.1'
- compile ('org.irods.jargon:jargon-core:3.2.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- //compile 'org.irods.jargon:jargon-security:3.2.0-SNAPSHOT'
- compile ('org.irods.jargon:jargon-data-utils:3.2.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- compile ('org.irods.jargon:jargon-ticket:3.2.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- compile ('org.irods.jargon:jargon-user-profile:3.2.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- compile ('org.irods.jargon:jargon-user-tagging:3.2.1-SNAPSHOT') { excludes ([group:'org.jglobus'])}
- /*compile 'org.springframework.security:spring-security-core:3.0.5.RELEASE'
- compile 'org.springframework.security:spring-security-web:3.0.5.RELEASE'
- compile 'org.springframework.security:spring-security-config:3.0.5.RELEASE'
- compile 'org.springframework:spring-web:3.0.5.RELEASE'*/
+ compile ('org.irods.jargon:jargon-core:3.3.0-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-data-utils:3.3.0-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-ticket:3.3.0-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-user-profile:3.3.0-SNAPSHOT') { excludes ([group:'org.jglobus'])}
+ compile ('org.irods.jargon:jargon-user-tagging:3.3.0-SNAPSHOT') { excludes ([group:'org.jglobus'])}
provided 'javax.servlet:servlet-api:2.5'
compile 'org.jsoup:jsoup:0.2.2'
diff --git a/idrop-web/grails-app/conf/Config.groovy b/idrop-web/grails-app/conf/Config.groovy
index 5cab29f..dc6b43a 100644
--- a/idrop-web/grails-app/conf/Config.groovy
+++ b/idrop-web/grails-app/conf/Config.groovy
@@ -1,6 +1,5 @@
-
grails.config.locations = [
- "file:/etc/idrop-web/idrop-web-config.groovy"
+ "file:/etc/idrop-web/idrop-web-config2.groovy"
]
/*
@@ -19,7 +18,8 @@ environments {
production { grails.serverURL = "http://iren-web.renci.org:8080/${appName}" }
production { grails.serverURL = "http://srbbrick15.ucsd.edu:1525//${appName}" }
production { grails.serverURL = "http://www.irods.org" } */2
- production { grails.serverURL = "http://edit.your.server.info.in.your.etc.file.or.update.the.groovy.config" }
+ production {
+ grails.serverURL = "http://iren-web.renci.org:8080/${appName}" }
development { grails.serverURL = "http://localhost:8080/${appName}" }
test { grails.serverURL = "http://localhost:8080/${appName}" }
}
@@ -72,7 +72,7 @@ idrop.config.idrop.jnlp="http://iren-web.renci.org/idrop-release/idrop.jnlp"
// do I support tickets? This determies whether the ticket feature is available via the interface, it also requires ticket support in iRODS itself (version 3.1+)
idrop.config.use.tickets=true
idrop.config.max.thumbnail.size.mb=20
-idrop.config.use.userprofile=false
+idrop.config.use.userprofile=true
/*
* Some properties may be set in an external configuration file, as configured below
diff --git a/idrop-web/grails-app/conf/spring/resources.groovy b/idrop-web/grails-app/conf/spring/resources.groovy
index a6561c1..cb06188 100644
--- a/idrop-web/grails-app/conf/spring/resources.groovy
+++ b/idrop-web/grails-app/conf/spring/resources.groovy
@@ -38,6 +38,10 @@ beans = {
auditController(org.irods.mydrop.controller.AuditController) { irodsAccessObjectFactory = ref("irodsAccessObjectFactory") }
profileController(org.irods.mydrop.controller.ProfileController) { irodsAccessObjectFactory = ref("irodsAccessObjectFactory") }
+
+ shoppingCartController(org.irods.mydrop.controller.ShoppingCartController) {
+ irodsAccessObjectFactory = ref("irodsAccessObjectFactory")
+ }
}
diff --git a/idrop-web/grails-app/conf/spring/resources.xml b/idrop-web/grails-app/conf/spring/resources.xml
index fee14ee..4a6634f 100644
--- a/idrop-web/grails-app/conf/spring/resources.xml
+++ b/idrop-web/grails-app/conf/spring/resources.xml
@@ -22,7 +22,7 @@
</beans:bean>
<beans:bean id="taggingServiceFactory"
- class="org.irods.jargon.usertagging.TaggingServiceFactoryImpl">
+ class="org.irods.jargon.usertagging.tags.TaggingServiceFactoryImpl">
<beans:constructor-arg ref="irodsAccessObjectFactory"></beans:constructor-arg>
</beans:bean>
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy
index 854e99d..543be96 100644
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy
@@ -13,10 +13,9 @@ import org.irods.jargon.core.utils.LocalFileUtils
import org.irods.jargon.datautils.image.MediaHandlingUtils
import org.irods.jargon.datautils.sharing.*
import org.irods.jargon.ticket.TicketDistributionContext
-import org.irods.jargon.usertagging.FreeTaggingService
-import org.irods.jargon.usertagging.IRODSTaggingService
-import org.irods.jargon.usertagging.TaggingServiceFactory
-import org.irods.mydrop.service.ShoppingCartSessionService
+import org.irods.jargon.usertagging.tags.FreeTaggingService
+import org.irods.jargon.usertagging.tags.IRODSTaggingService
+import org.irods.jargon.usertagging.tags.TaggingServiceFactory
/**
* Controller for browser functionality
@@ -28,7 +27,6 @@ class BrowseController {
IRODSAccessObjectFactory irodsAccessObjectFactory
TaggingServiceFactory taggingServiceFactory
IRODSAccount irodsAccount
- ShoppingCartSessionService shoppingCartSessionService
def grailsApplication
/**
@@ -48,6 +46,33 @@ class BrowseController {
log.debug("closing the session")
irodsAccessObjectFactory.closeSession()
}
+
+
+ def index = {
+ log.info ("in index action")
+ def mode = params['mode']
+ def absPath = params['absPath']
+
+ if (mode != null) {
+ if (mode == "path") {
+ log.info("mode is path, should have an abspath to preset to")
+ if (absPath == null) {
+ def message = message(code:"error.no.path.provided")
+ response.sendError(500,message)
+ return
+ } else {
+ log.info("path is ${absPath}")
+ }
+ }
+ }
+
+ render(view: "index", model:[mode:mode,path:absPath])
+ }
+
+ def showBrowseToolbar = {
+ log.info("showBrowseToolbar")
+ render(view:"browseToolbar")
+ }
/**
* Set the parent dir based on the possibility of 'strict ACL' being set
@@ -474,6 +499,7 @@ class BrowseController {
*/
IRODSFile targetFile = irodsAccessObjectFactory.getIRODSFileFactory(irodsAccount).instanceIRODSFile(absPath)
+ String parentPath = targetFile.parent
log.info("target file obtained")
if (!targetFile.exists()) {
@@ -485,7 +511,7 @@ class BrowseController {
log.info("target file exists")
String fileName = targetFile.name
- render(view:"renameDialog", model:[fileName:fileName, absPath:absPath])
+ render(view:"renameDialog", model:[fileName:fileName, absPath:absPath, parentPath:parentPath])
}
@@ -533,124 +559,7 @@ class BrowseController {
render(view:"newFolderDialog", model:[absPath:absPath])
}
- def addFileToCart = {
- log.info ("addFileToCart")
- String fileName = params['absPath']
- if (!fileName) {
- log.error "no file name in request"
- def message = message(code:"error.no.path.provided")
- response.sendError(500,message)
- }
-
- log.info("adding ${fileName} to the shopping cart")
-
- shoppingCartSessionService.addToCart(fileName)
-
- log.info("shopping cart: ${session.shoppingCart}")
-
- log.info("file added")
- render fileName
- }
-
- /**
- * Display the contents of the 'file cart tab'. This is a cascading operation, such that the loading of the tab will call the process
- * to load the cart contents table.
- */
- def showCartTab = {
- log.info("showCartTab")
- render(view:"listCart")
- }
-
- /**
- * Build the JTable entries for the contents of the shopping cart
- */
- def listCart = {
- log.info("listCart")
- List<String> cart = shoppingCartSessionService.listCart()
- render(view:"cartDetails", model:[cart:cart])
- }
-
- /**
- * Clear the contents of the shopping cart
- */
- def clearCart = {
- log.info("clearCart")
- shoppingCartSessionService.clearCart()
- render "OK"
- }
-
- /**
- * Delete the given files from the shopping cart
- */
- def deleteFromCart = {
- log.info("deleteFromCart")
- log.info("params: ${params}")
-
- def filesToDelete = params['selectCart']
-
- // if nothing selected, just jump out and return a message
- if (!filesToDelete) {
- log.info("no files to delete")
- render "OK"
- return
- }
-
- log.info("filesToDelete: ${filesToDelete}")
-
- if (filesToDelete instanceof Object[]) {
- log.debug "is array"
- filesToDelete.each{
- log.info "filesToDelete: ${it}"
- shoppingCartSessionService.deleteFromCart(it)
- }
-
- } else {
- log.debug "not array"
- log.info "deleting: ${filesToDelete}"
- shoppingCartSessionService.deleteFromCart(filesToDelete)
- }
-
- render "OK"
- }
-
-
- /**
- * Process a bulk add to cart action based on data input from the browse details form
- */
- def addToCartBulkAction = {
- log.info("addToCartBulkAction")
-
- log.info("params: ${params}")
-
- def filesToAdd = params['selectDetail']
-
- // if nothing selected, just jump out and return a message
- if (!filesToAdd) {
- log.info("no files to add")
- render "OK"
- return
- }
-
- log.info("filesToAdd: ${filesToAdd}")
-
-
- if (filesToAdd instanceof Object[]) {
- log.debug "is array"
- filesToAdd.each{
- log.info "filesToAdd: ${it}"
- shoppingCartSessionService.addToCart(it)
-
- }
-
- } else {
- log.debug "not array"
- log.info "adding: ${filesToAdd}"
- shoppingCartSessionService.addToCart(filesToAdd)
- }
-
- render "OK"
- }
-
+
/**
* Show gallery view for given directory
*/
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy
index 8e672e1..5880cfc 100644
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy
@@ -195,9 +195,16 @@ class FileController {
IRODSFileFactory irodsFileFactory = irodsAccessObjectFactory.getIRODSFileFactory(irodsAccount)
IRODSFile targetFile = irodsFileFactory.instanceIRODSFile(absPath)
- targetFile.delete()
- log.info("file deleted")
- render targetFile.getParent()
+ try {
+ targetFile.delete()
+ log.info("file deleted")
+ render(view:"deleteResult", model:[absPath:targetFile.parent])
+ //render targetFile.getParent()
+ } catch (JargonException je) {
+ log.error("exception on delete", je)
+ response.sendError(500,je.message)
+ return
+ }
}
/**
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy
index 30fb20e..51c3201 100644
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy
@@ -22,31 +22,7 @@ class HomeController {
def afterInterceptor = { log.debug("closing the session") }
-
- def index = {
- log.info ("in home controller index action")
- def mode = params['mode']
- def absPath = params['absPath']
-
- if (mode != null) {
- if (mode == "path") {
- log.info("mode is path, should have an abspath to preset to")
- if (absPath == null) {
- def message = message(code:"error.no.path.provided")
- response.sendError(500,message)
- return
- } else {
- log.info("path is ${absPath}")
- }
- }
- }
-
- render(view: "index", model:[mode:mode,path:absPath])
- }
-
- def showBrowseToolbar = {
- log.info("showBrowseToolbar")
- render(view:"browseToolbar")
+ def index() {
}
/**
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/ProfileController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/ProfileController.groovy
index e14d571..99078b6 100644
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/ProfileController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/ProfileController.groovy
@@ -38,7 +38,10 @@ class ProfileController {
*/
def index() {
log.info "index()"
-
+ render(view:"index")
+ }
+
+ def loadProfileData() {
if (irodsAccount.userName == IRODSAccount.PUBLIC_USERNAME) {
render(view:"noProfileData")
} else {
@@ -50,6 +53,7 @@ class ProfileController {
response.sendError(500,e.message)
}
}
+
}
/**
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/SearchController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/SearchController.groovy
index e2bf914..069153b 100644
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/SearchController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/SearchController.groovy
@@ -3,10 +3,9 @@ package org.irods.mydrop.controller
import org.irods.jargon.core.connection.*
import org.irods.jargon.core.exception.*
import org.irods.jargon.core.pub.*
-import org.irods.jargon.usertagging.FreeTaggingService
-import org.irods.jargon.usertagging.TaggingServiceFactory
import org.irods.jargon.usertagging.domain.TagQuerySearchResult
-import org.irods.jargon.core.pub.IRODSAccessObjectFactory
+import org.irods.jargon.usertagging.tags.FreeTaggingService
+import org.irods.jargon.usertagging.tags.TaggingServiceFactory
class SearchController {
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/ShoppingCartController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/ShoppingCartController.groovy
new file mode 100644
index 0000000..70c6b5f
--- /dev/null
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/ShoppingCartController.groovy
@@ -0,0 +1,137 @@
+package org.irods.mydrop.controller
+
+import org.irods.jargon.core.connection.IRODSAccount
+import org.irods.jargon.core.pub.IRODSAccessObjectFactory
+import org.irods.mydrop.service.ShoppingCartSessionService
+
+/**
+* Controller for shopping cart functionality
+* @author Mike Conway - DICE (www.irods.org)
+*/
+
+class ShoppingCartController {
+
+ IRODSAccessObjectFactory irodsAccessObjectFactory
+ IRODSAccount irodsAccount
+ ShoppingCartSessionService shoppingCartSessionService
+ def grailsApplication
+
+ /**
+ * Interceptor grabs IRODSAccount from the SecurityContextHolder
+ */
+ def beforeInterceptor = [action:this.&auth]
+
+ def auth() {
+ if(!session["SPRING_SECURITY_CONTEXT"]) {
+ redirect(controller:"login", action:"login")
+ return false
+ }
+ irodsAccount = session["SPRING_SECURITY_CONTEXT"]
+ }
+
+ def afterInterceptor = {
+ log.debug("closing the session")
+ irodsAccessObjectFactory.closeSession()
+ }
+
+
+ /**
+ * Show the cart main view
+ */
+ def index = {
+ log.info("index")
+ render(view:"index")
+ }
+
+
+ /**
+ * Build the JTable entries for the contents of the shopping cart
+ */
+ def listCart = {
+ log.info("listCart")
+ List<String> cart = shoppingCartSessionService.listCart()
+ render(view:"cartDetails", model:[cart:cart])
+ }
+
+ /**
+ * Clear the contents of the shopping cart
+ */
+ def clearCart = {
+ log.info("clearCart")
+ shoppingCartSessionService.clearCart()
+ render "OK"
+ }
+
+ /**
+ * Delete the given files from the shopping cart
+ */
+ def deleteFromCart = {
+ log.info("deleteFromCart")
+ log.info("params: ${params}")
+
+ def filesToDelete = params['selectCart']
+
+ // if nothing selected, just jump out and return a message
+ if (!filesToDelete) {
+ log.info("no files to delete")
+ render "OK"
+ return
+ }
+
+ log.info("filesToDelete: ${filesToDelete}")
+
+ if (filesToDelete instanceof Object[]) {
+ log.debug "is array"
+ filesToDelete.each{
+ log.info "filesToDelete: ${it}"
+ shoppingCartSessionService.deleteFromCart(it)
+ }
+
+ } else {
+ log.debug "not array"
+ log.info "deleting: ${filesToDelete}"
+ shoppingCartSessionService.deleteFromCart(filesToDelete)
+ }
+
+ render "OK"
+ }
+
+
+ /**
+ * Process a bulk add to cart action based on data input from the browse details form
+ */
+ def addToCartBulkAction = {
+ log.info("addToCartBulkAction")
+
+ log.info("params: ${params}")
+
+ def filesToAdd = params['selectDetail']
+
+ // if nothing selected, just jump out and return a message
+ if (!filesToAdd) {
+ log.info("no files to add")
+ render "OK"
+ return
+ }
+
+ log.info("filesToAdd: ${filesToAdd}")
+
+
+ if (filesToAdd instanceof Object[]) {
+ log.debug "is array"
+ filesToAdd.each{
+ log.info "filesToAdd: ${it}"
+ shoppingCartSessionService.addToCart(it)
+
+ }
+
+ } else {
+ log.debug "not array"
+ log.info "adding: ${filesToAdd}"
+ shoppingCartSessionService.addToCart(filesToAdd)
+ }
+
+ render "OK"
+ }
+
+}
diff --git a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/TagsController.groovy b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/TagsController.groovy
index 5cdc4f9..3295e96 100644
--- a/idrop-web/grails-app/controllers/org/irods/mydrop/controller/TagsController.groovy
+++ b/idrop-web/grails-app/controllers/org/irods/mydrop/controller/TagsController.groovy
@@ -6,12 +6,12 @@ import org.irods.jargon.core.connection.IRODSAccount
import org.irods.jargon.core.exception.JargonException
import org.irods.jargon.core.pub.IRODSAccessObjectFactory
import org.irods.jargon.core.pub.io.IRODSFile
-import org.irods.jargon.usertagging.FreeTaggingService
-import org.irods.jargon.usertagging.IRODSTaggingService
-import org.irods.jargon.usertagging.TaggingServiceFactory
-import org.irods.jargon.usertagging.UserTagCloudService
import org.irods.jargon.usertagging.domain.IRODSTagValue
import org.irods.jargon.usertagging.domain.UserTagCloudView
+import org.irods.jargon.usertagging.tags.FreeTaggingService
+import org.irods.jargon.usertagging.tags.IRODSTaggingService
+import org.irods.jargon.usertagging.tags.TaggingServiceFactory
+import org.irods.jargon.usertagging.tags.UserTagCloudService
import org.jsoup.Jsoup
import org.jsoup.safety.Whitelist
diff --git a/idrop-web/grails-app/i18n/messages.properties b/idrop-web/grails-app/i18n/messages.properties
index e46865e..00ac061 100644
--- a/idrop-web/grails-app/i18n/messages.properties
+++ b/idrop-web/grails-app/i18n/messages.properties
@@ -1,4 +1,5 @@
# button and heading messages
+text.account=Account
text.actions=Actions
text.add.metadata=Add Metadata
text.add.all.to.cart=Add all selected items to the cart
@@ -15,11 +16,16 @@ text.bulk.upload=Bulk Upload
text.cancel=Cancel
text.changePassword=Change Password
text.change.password.header=Enter new password and enter again to confirm, then press Update
+text.checksum=Checksum
text.check.out=Check Out Cart
+text.created=Created
text.create.ticket=Create Ticket
+text.comment=Comment
text.confirm.password=Confirm Password
text.content=Content
text.create.public.link=Create public link
+text.data.path=Data Path
+text.delete=Delete
text.delete.all=Delete all selected items
text.delete.metadata=Delete Metadata
text.description=Description
@@ -28,22 +34,30 @@ text.download=Download
text.edit=Edit
text.email=Email
text.file=File
+text.file.name=File Name
text.forward=Page Forward
text.find.path.in.tree=Open the path in the tree
text.gallery=Gallery
text.grant=Grant public access
text.guest.login=Use a guest login
+text.action.help=Action help
text.home=Home
text.host=Host
text.id=ID
text.info=Info
text.idrop.lite=Idrop Lite
text.irods.uri=iRODS URI
+text.length=Size
text.login=Login
text.logout=Logout
text.metadata=Metadata
+text.modified=Modified
text.name=Name
text.new.folder=New Folder
+text.object.path=Object Path
+text.owner=Owner
+text.owner.zone=Owner Zone
+text.parent=Parent Collection
text.path=Path
text.password=Password
text.permissions=Permissions
@@ -53,17 +67,26 @@ text.profile=Profile
text.profile.header=Profile - Manage personal profile information and settings
text.quick.transfers=Quick Transfer
text.refresh=Refresh
+text.replica.number=Replica Number
+text.replication.status=Replication Status
text.rename=Rename
text.resource=Resource
+text.resource.group=Resource Group
text.search=Search
+text.set.as.root=Set this as the root of the tree
text.share=Share
text.share.type=Share Permission
text.sharing=Permissions
+text.shopping.cart=Shopping Cart
text.show.in.tree=Show in File Tree
text.show.menu=Show/Hide Side Bar
text.show.shared.by=Shared By
text.show.shared.with=Shared With
text.share.with.selected.users=Share with selected users
+text.star=Star Collection
+text.star.file=Star File
+text.status=Status
+text.tags=Tags
text.tickets=Tickets
text.ticket.email=Create and Email a Ticket
text.ticket.expire.time=Expire Time
@@ -89,9 +112,11 @@ text.type=Type
text.tools=Tools
text.unit=Unit
text.update=Update
+text.updated=Updated
text.upload=Upload
text.upload.and.download=Upload and Download
text.user=User Name
+text.version=Version
text.nickname=Nick Name
text.value=Value
text.view=View
@@ -105,15 +130,20 @@ heading.anonymous.access.enable=Anonymous access is not yet enabled for this fil
heading.audit=Audit - view audit trail information
heading.browsing=Browsing - view data in collections
+heading.info=Basic information, including update of tags and a description
heading.loading.for.link=Loading page for link
heading.sharing=Sharing - set access permissions
-heading.metadata=Metadata - view and edit AVU metadata
-heading.info=Info - details about files and collections
+heading.tickets=Tickets are tokens to iRODS files and collections that may be shared. Anyone with a ticket may access your data, so you can email them, share them on social media sites, and the like.<p/>Tickets can be limited on number of uses, and on things like total bytes, expiration date, and the like. Open a ticket to see details and to get a link that may be copied and shared.
+heading.metadata=View and edit AVU metadata.<p/>These Attribute, Value, Unit elements can be used to describe your data. You may add, or select items to delete. You may also click on the AVUs in the table to modify them.
+heading.metadata.details=Add an AVU metadata element by entering attribute, value, and unit (optional) and pressing Update
+heading.permissions=Modify and manage iRODS ACL (Access Control List) file permissions. <p/>This allows you to see who has different access to your files and collections, and to change that access. Note that you may select items using the check box to delete them, and you may also click on the permissions in the table to update them.
+heading.rename.dialog=Rename a file or collection
heading.user.search=Search for a user based on selected search type
heading.user.information=User Information
heading.enter.user.or.search=Enter a complete or partial search term to bring up a user list, then select the desired permission and press 'Save'
heading.no.search.yet=No seach results to display. Use the search toolbar above to search for files and folders
heading.new.folder.dialog=Enter a name for the new folder and press Update to create
+heading.upload.dialog=Upload a file using the browser upload tool
heading.upload.ticket.collection=Select a local file to upload to the ticket collection in iRODS
diff --git a/idrop-web/grails-app/services/org/irods/mydrop/service/ShoppingCartSessionService.groovy b/idrop-web/grails-app/services/org/irods/mydrop/service/ShoppingCartSessionService.groovy
index d2e7aa1..1bd0caa 100644
--- a/idrop-web/grails-app/services/org/irods/mydrop/service/ShoppingCartSessionService.groovy
+++ b/idrop-web/grails-app/services/org/irods/mydrop/service/ShoppingCartSessionService.groovy
@@ -21,6 +21,17 @@ class ShoppingCartSessionService {
FileShoppingCart fileShoppingCart = getCartFromSessionAndCreateIfNotThere()
fileShoppingCart.addAnItem(new ShoppingCartEntry(irodsFileAbsolutePath))
}
+
+ /**
+ * Get a count of items in the cart (right now high level items, trying to cut down on queries)
+ * @return <code>int</code> with count of entries in the cart
+ */
+ public int getCartItemsCount() {
+ FileShoppingCart fileShoppingCart = getCartFromSession()
+ return fileShoppingCart.shoppingCartEntries.size()
+
+ }
+
/**
* List the contents of the cart as a list of file names
diff --git a/idrop-web/grails-app/views/audit/auditDetails.gsp b/idrop-web/grails-app/views/audit/auditDetails.gsp
index 75686b5..941e129 100644
--- a/idrop-web/grails-app/views/audit/auditDetails.gsp
+++ b/idrop-web/grails-app/views/audit/auditDetails.gsp
@@ -1,22 +1,20 @@
<g:javascript library="mydrop/audit" />
-<h2>
- <g:message code="heading.audit" />
-</h2>
-<div id="detailsTopSection" class="box">
+<h3><a ><g:message code="text.audit" /></a></h3>
+<div id="detailsTopSection">
- <div id="detailsToolbar" class="fg-toolbar ui-widget-header">
+ <div id="detailsToolbar" >
<button type="button" id="reloadAuditButton"
- class="ui-state-default ui-corner-all" value="reloadAudit"
+ value="reloadAudit"
onclick="callReloadForAudit()")>
<g:message code="default.button.reload.label" />
</button>
<span id="backwardAuditButton"><button type="button" id="backwardAuditButton"
- class="ui-state-default ui-corner-all" value="backwardAudit"
+ value="backwardAudit"
onclick="backwardAudit()")>
<g:message code="text.backwards" />
</button></span>
<span id="forwardAuditButton"><button type="button" id="forwardAuditButton"
- class="ui-state-default ui-corner-all" value="forwardAudit"
+ value="forwardAudit"
onclick="forwardAudit()")>
<g:message code="text.forward" />
</button></span>
diff --git a/idrop-web/grails-app/views/browse/_browseTabContent.gsp b/idrop-web/grails-app/views/browse/_browseTabContent.gsp
index de09171..dfd60b9 100644
--- a/idrop-web/grails-app/views/browse/_browseTabContent.gsp
+++ b/idrop-web/grails-app/views/browse/_browseTabContent.gsp
@@ -14,28 +14,27 @@
<div id="browseDialogArea"><!-- general area to spawn jquery dialogs --></div>
- <div id="browser" class="wrapper" style="height:85%;width:100%;clear:both;">
+ <div id="browser" class="wrapper" style="height:85%;width:100%;clear:both;overflow:hidden;">
<div id="dataTreeView" style="width: 100%; height: 700px; overflow: hidden;">
- <div id="dataTreeDivWrapper" class="ui-layout-west" style="width: 25%; height: 100%; position:relative;">
- <div id="dataTreeToolbar" style="width:100%; height:3%;display:block;" class="fg-toolbar">
+ <div id="dataTreeDivWrapper" class="ui-layout-west" style="width: 25%; height: 100%; overflow:hidden;">
+ <div id="dataTreeToolbar" style="width:100%; height:4%;display:block; margin:5px;" class="fg-toolbar">
- <div id="dataTreeMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: left; clear : both; display:block; overflow:hidden;">
+ <div id="dataTreeMenu">
<button type="button" id="refreshTreeButton"
- class="ui-state-default ui-corner-left" value="refreshTreeButton"
+ value="refreshTreeButton"
onclick="refreshTree()")>
- <g:img dir="images" file="arrow-refresh.png" width="16" height="16"/>
+ <img class="icon-refresh"/>
</button>
<button type="button" id="homeTreeButton"
- class="ui-state-default" value="homeTreeButton"
+
onclick="setTreeToUserHome()")>
- <g:img dir="images" file="go-home-4.png" width="16" height="16"/>
+ <img class="icon-home"/>
</button>
<button type="button" id="rootTreeButton"
- class="ui-state-default ui-corner-right" value="rootTreeButton"
+ value="rootTreeButton"
onclick="setTreeToRoot()")>
- <g:img dir="images" file="go-parent-folder.png" width="16" height="16"/>
+ <img class="icon-arrow-up"/>
</button>
</div> <!-- dataTreeMenu -->
diff --git a/idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp b/idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp
new file mode 100644
index 0000000..12c68a3
--- /dev/null
+++ b/idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp
@@ -0,0 +1,113 @@
+<div id="collectionInfoToolbar" >
+
+ <div id="collectionInfoToolbarMenu" class="btn-toolbar">
+
+ <div id="collectionInfoButtonGroup1" class="btn-group">
+ <button id="setCollectionAsRoot" onclick="cibSetCollectionAsRoot()"><img class="icon-hand-left"/><g:message
+ code="text.set.as.root" /></button>
+ <button id="starCollection" onclick="cibStarCollection()"><img class="icon-star"/><g:message
+ code="text.star" /></button>
+ </div>
+
+ <div id="collectionInfoButtonGroup2" class="btn-group">
+ <button id="addCollectionToCart" onclick="cibAddToCart()"><img class="icon-shopping-cart"/><g:message
+ code="text.add.to.cart" /></button>
+ <button id="uploadViaBrowser" onclick="cibUploadViaBrowser()"><img class="icon-upload"/><g:message
+ code="text.upload" /></button>
+ <button id="bulkUploadViaBrowser" onclick="cibBulkUploadViaBrowser()"><img class="icon-upload"/><g:message
+ code="text.bulk.upload" /></button>
+
+ </div>
+ <div id="collectionInfoButtonGroup3" class="btn-group">
+ <button id="newCollection" onclick="cibNewFolder()"><img class="icon-plus-sign"/><g:message
+ code="text.new.folder" /></button>
+ <button id="renameCollection" onclick="cibRenameCollection()"><img class="icon-pencil"/><g:message
+ code="text.rename" /></button>
+ <button id="deleteCollection" onclick="cibDeleteCollection()"><img class="icon-trash"/><g:message
+ code="text.delete" /></button>
+ </div>
+</div>
+
+
+<script type="text/javascript">
+
+ function cibSetCollectionAsRoot() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ setTreeToGivenPath(path);
+
+
+ }
+
+ /**
+ * Show the uplaod dialog using the hidden path in the info view
+ */
+ function cibUploadViaBrowser() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ showUploadDialogUsingPath(path);
+
+
+ }
+
+ /**
+ * Launch iDrop lite for bulk uplaod mode
+ */
+ function cibBulkUploadViaBrowser() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ showIdropLiteGivenPath(path, 2);
+ }
+
+ /**
+ * Create a new folder underneath the current directory
+ **/
+ function cibNewFolder() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+ newFolderViaToolbarGivenPath(path);
+ }
+
+ /**
+ * Delete the collection currently displayed in the info view
+ */
+ function cibRenameCollection() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ renameViaToolbarGivenPath(path);
+ }
+
+
+ /**
+ * call delete using the path in the info panel
+ */
+ function cibDeleteCollection() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ deleteViaToolbarGivenPath(path);
+ }
+
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp b/idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp
new file mode 100644
index 0000000..3116428
--- /dev/null
+++ b/idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp
@@ -0,0 +1,60 @@
+<div id="dataObjectInfoToolbar" >
+
+ <div id="dataObjectInfoToolbarMenu" class="btn-toolbar">
+
+ <div id="dataObjectInfoButtonGroup1" class="btn-group">
+ <button id="starFile" onclick="dibStarFile()"><img class="icon-star"/><g:message
+ code="text.star.file" /></button>
+ <button id="downloadFile" onclick="dibDownloadFile()"><img class="icon-download"/><g:message
+ code="text.download" /></button>
+ <button id="addToCart" onclick="dibAddToCart()"><img class="icon-shopping-cart"/><g:message
+ code="text.add.to.cart" /></button>
+ </div>
+ <div id="dataObjectInfoButtonGroup2" class="btn-group">
+ <button id="renameDataObject" onclick="dibRenameFile()"><img class="icon-pencil"/><g:message
+ code="text.rename" /></button>
+ <button id="deleteDataObject" onclick="dibDeleteFile()"><img class="icon-trash"/><g:message
+ code="text.delete" /></button>
+ </div>
+</div>
+
+<script type="text/javascript">
+
+function dibDownloadFile() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ downloadViaToolbarGivenPath(path);
+}
+
+/**
+* Delete the file currently displayed in the info view
+*/
+function dibRenameFile() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ renameViaToolbarGivenPath(path);
+}
+
+/**
+* call delete using the path in the info panel
+*/
+function dibDeleteFile() {
+ var path = $("#infoAbsPath").val();
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ deleteViaToolbarGivenPath(path);
+}
+
+
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/browse/browseDetails.gsp b/idrop-web/grails-app/views/browse/browseDetails.gsp
index a869d99..6b57abd 100644
--- a/idrop-web/grails-app/views/browse/browseDetails.gsp
+++ b/idrop-web/grails-app/views/browse/browseDetails.gsp
@@ -1,8 +1,4 @@
-
-
<div id="browseDetailsMessageArea"></div>
-<div id="infoDialogArea" style="height:0px; "></div>
-
<div id=browseDetailsDialogArea" style-"height:0px;></div>
<g:hiddenField id="browseDetailsAbsPath" name="absolutePath"
value="${parent.collectionName}" />
@@ -15,18 +11,35 @@
<div id="infoDialogArea">
<!-- no empty divs -->
</div>
+ <div id="legendAreaContainer">
+ <i class="icon-question-sign" id="iconLegend" onmouseover="showLegend()" onmouseout="hideLegend()"/><g:message code="text.action.help" />
+ <div id="legend" style="display:none;">
+ <g:render template="/common/browseLegend" />
+ </div>
+ </div>
<div id="detailsTopSection" >
<form id="browseDetailsForm" name="browseDetailsForm">
- <table cellspacing="0" cellpadding="0" border="0"
+ <table class="table table-striped table-hover" cellspacing="0" cellpadding="0" border="0"
id="browseDataDetailsTable">
<thead>
<tr>
<th></th>
- <th></th>
- <th>Name</th>
- <th>Type</th>
- <th>Modified date</th>
- <th>Length</th>
+ <th>
+
+ <div class="btn-group">
+ <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Action<span class="caret"></span></a>
+ <ul class="dropdown-menu">
+ <li id="menuAddToCartDetails"><a href="#addAllToCartDetails" onclick="addSelectedToCart()"><g:message code="text.add.all.to.cart" /></a></li>
+ <li id="menuDeleteDetails"><a href="#deleteAllDetails" onclick="deleteSelected()"><g:message code="text.delete.all" /></a></li>
+ <!-- dropdown menu links -->
+ </ul>
+ </div>
+
+ </th>
+ <th><g:message code="text.name" /></th>
+ <th><g:message code="text.type" /></th>
+ <th><g:message code="text.modified" /></th>
+ <th><g:message code="text.length" /></th>
</tr>
</thead>
<tbody>
@@ -38,16 +51,17 @@
</td>
<td><g:checkBox name="selectDetail"
value="${entry.formattedAbsolutePath}" checked="false" />
+ <g:if test="${entry.objectType.toString() == 'COLLECTION'}"><img class="icon-info-sign" onclick="infoHere('${entry.formattedAbsolutePath}')"/></g:if> <g:else><img class="icon-info-sign" onclick="infoHere('${entry.formattedAbsolutePath}')"/></g:else>
</td>
- <td class="draggableFile"><g:if
+ <td><g:if
test="${entry.objectType.toString() == 'COLLECTION'}">
<a href="#" id="${entry.formattedAbsolutePath}" onclick="clickOnPathInBrowseDetails(this.id)">${entry.nodeLabelDisplayValue}</a>
</g:if> <g:else>
-
+ ${entry.nodeLabelDisplayValue}
- <g:link url="${'file/download' + entry.formattedAbsolutePath}">
-${entry.nodeLabelDisplayValue}
+ <!-- <g:link url="${'file/download' + entry.formattedAbsolutePath}">
+${entry.nodeLabelDisplayValue} -->
</g:link>
</g:else></td>
<td>
@@ -87,20 +101,49 @@ ${entry.displayDataSize}
"bLengthChange": false,
"bFilter": false,
"iDisplayLength" : 500,
+ "sDom": "<'row'<'span10'l><'span8'f>r>t<'row'<'span10'i><'span10'p>>",
+ "aoColumns" : [
+ {'sWidth': '20px', 'bSortable':false},
+ {'sWidth': '20px', 'bSortable':false},
+ { 'sWidth': '120px' },
+ { 'sWidth': '30px' },
+ { 'sWidth': '40px' },
+ { 'sWidth': '40px' }
+
+ ],
+
"fnInitComplete": function() {
- //this.fnAdjustColumnSizing(true);
+ this.fnAdjustColumnSizing(true);
}
-
}
$(function() {
//alert("building table ");
dataTable = lcBuildTableInPlace("#browseDataDetailsTable", browseDetailsClick, ".browse_detail_icon", tableParams);
$("#infoDiv").resize();
- $("#menuDownload").hide();
+ $.extend( $.fn.dataTableExt.oStdClasses, {
+ "sSortAsc": "header headerSortDown",
+ "sSortDesc": "header headerSortUp",
+ "sSortable": "header"
+ } );
});
+ function showLegend() {
+ $("#legend").show("slow");
+ }
+
+ function hideLegend() {
+ $("#legend").hide("slow");
+ }
+
+
+ function infoHere(path) {
+ setDefaultView("info");
+ selectTreePathFromIrodsPath(path);
+ }
+
+
diff --git a/idrop-web/grails-app/views/browse/collectionInfo.gsp b/idrop-web/grails-app/views/browse/collectionInfo.gsp
index d38867b..8b93c88 100644
--- a/idrop-web/grails-app/views/browse/collectionInfo.gsp
+++ b/idrop-web/grails-app/views/browse/collectionInfo.gsp
@@ -6,146 +6,154 @@
<div id="idropLiteArea">
<!-- area to show idrop lite applet -->
- </div>
- <div id="toggleHtmlArea">
- <div id="infoDialogArea"><!-- no empty divs --></div>
+</div>
+<div id="toggleHtmlArea">
+ <g:render template="/browse/collectionInfoToolbar" />
+ <div id="infoDialogArea"><!-- no empty divs --></div>
<!-- display area lays out info in a main and side column -->
<div id="infoDisplayLayout" style="width:100%;height:100%;">
- <div class="roundedContainer">
+ <div class="well">
<image style="float:left;margin-right:10px;" src="<g:resource dir="images" file="folder.png" alt="folder icon" />"/>
<h3>${collection.collectionName}</h3>
- </div>
-
-</div><!-- table -->
+ </div>
+</div>
-<div id="infoAccordion" style="width:98%;margin:10px;">
- <h3 id="infoAccordionBasicInfo"><a href="#infoAccordionBasicInfo"><g:message code="text.info" /></a></h3>
- <div>
+<ul class="nav nav-tabs" id="infoTabs">
+ <li class="active"><a href="#info" id="infoTab"><g:message code="text.info" /></a></li>
+ <li><a href="#metadata" id="metadataTab"><g:message code="text.metadata" /></a></li>
+ <li><a href="#permissions" id="permissionTab"><g:message code="text.permissions" /></a></li>
+ <g:if test="${grailsApplication.config.idrop.config.use.tickets==true}">
+ <li><a href="#tickets" id="ticketTab"><g:message code="text.tickets" /></a></li>
+ </g:if>
+ <li><a href="#audit" id="auditTab"><g:message code="text.audit" /></a></li>
+</ul>
+
+<div class="tab-content">
+ <div class="tab-pane active" id="info">
+
+ <h4><g:message code="text.info" /></h4>
+ <div class="alert alert-info">
+ <g:message code="heading.info" />
+ </div>
<div id="container" style="height:100%;width:100%;">
<div>
- <div style="width:15%;"><label>Created At:</label></div>
+ <div style="width:15%;"><label><g:message code="text.created" />:</label></div>
<div>${collection.createdAt}</div>
</div>
<div>
- <div><label>Updated At:</label></div>
+ <div><label><g:message code="text.updated" />:</label></div>
<div>${collection.modifiedAt}</div>
</div>
<div>
- <div><label>Owner:</label></div>
+ <div><label><g:message code="text.owner" />:</label></div>
<div>${collection.collectionOwnerName}</div>
</div>
<div>
- <div><label>Owner Zone:</label></div>
+ <div><label><g:message code="text.owner.zone" />:</label></div>
<div>${collection.collectionOwnerZone}</div>
</div>
<div>
- <div><label>Collection Type:</label></div>
+ <div><label><g:message code="text.type" />:</label></div>
<div>${collection.specColType}</div>
</div>
<div>
- <div><label>Object path:</label></div>
+ <div><label><g:message code="text.object.path" />:</label></div>
<div>${collection.objectPath}</div>
</div>
<div>
- <div><label>Description:</label></div>
+ <div><label><g:message code="text.description" />:</label></div>
<div>${collection.comments}</div>
</div>
<div>
- <div><label>Info1:</label></div>
+ <div><label><g:message code="text.info" />1:</label></div>
<div>${collection.info1}</div>
</div>
<div>
- <div><label>Info2:</label></div>
+ <div><label><g:message code="text.info" />2:</label></div>
<div>${collection.info2}</div>
</div>
</div>
- </div>
-
- <h3 id="infoAccordionTags"><a href="#infoAccordionTags"><g:message code="text.tags" /></a></h3>
- <div >
<div id="container" style="height:100%;width:100%;">
<div>
- <div><label>Tags:</label></div>
+ <div><label><g:message code="text.tags" />:</label></div>
<div><g:textField id="infoTags" name="tags"
value="${tags.spaceDelimitedTagsForDomain}" /></div>
</div>
<div>
- <div><label>Comment:</label></div>
+ <div><label><g:message code="text.comment" />:</label></div>
<div><g:textArea id="infoComment" name="comment" rows="5" cols="80"
value="${comment}" /></div>
</div>
<div>
<div></div>
- <div><button type="button" class="ui-state-default ui-corner-all" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
+ <div><button type="button" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
</div>
</div>
+
+ </div>
+ <div class="tab-pane" id="metadata">
+ <div id="infoAccordionMetadataInner"></div>
+ </div>
+ <div class="tab-pane" id="permissions">
+ <div id="infoAccordionACLInner"></div>
+ </div>
+ <g:if test="${grailsApplication.config.idrop.config.use.tickets==true}">
+ <div class="tab-pane" id="tickets">
+ <div id="infoAccordionTicketsInner">
+ </div>
</div>
- <h3 id="infoAccordionMetadata"><a href="#infoAccordionMetadata" ><g:message code="text.metadata" /></a></h3>
- <div id="infoAccordionMetadataInner">
- </div>
- <h3 id="infoAccordionACL"><a href="#infoAccordionACL" ><g:message code="text.permissions" /></a></h3>
- <div id="infoAccordionACLInner">
- </div>
- <g:if test="${grailsApplication.config.idrop.config.use.tickets==true}">
- <h3 id="infoAccordionTickets"><a href="#infoAccordionTickets" ><g:message code="text.tickets" /></a></h3>
- <div id="infoAccordionTicketsInner">
- </div>
- </g:if>
- <h3 id="infoAccordionAudit"><a href="#infoAccordionAudit"><g:message code="text.audit" /></a></h3>
- <div >
- <div id="infoAccordionAuditInner">
- </div>
+ </g:if>
+ <div class="tab-pane" id="audit">
+ <div id="infoAccordionAuditInner"></div>
+ </div>
</div>
-
</div><!-- toggle html area -->
<script>
$(function() {
-
+
$(".idropLiteBulkUpload").show();
$("#menuDownload").hide();
$("#menuUpload").show();
$("#menuBulkUpload").show();
- $("#infoAccordion").accordion({
- clearStyle: true,
- autoHeight: false
- }).bind("accordionchange", function(event, ui) {
-
- var infoSection = ui.newHeader[0].id;
- updateInfoSection(infoSection);
- });
- });
-
- function callUpdateTags() {
- updateTags();
- }
-
-
- /**
- Update the info for a section in the info accordion based on the provided section id
- */
- function updateInfoSection(sectionToUpdate) {
- //alert("sectionToUpdate:" + sectionToUpdate);
- if (sectionToUpdate=="infoAccordionMetadata") {
+ $('#infoTabs a').click(function (e) {
+ e.preventDefault();
+ $(this).tab('show');
+ });
+
+ $('#infoTab').on('shown', function (e) {
+ //e.target // activated tab
+ //e.relatedTarget // previous tab
+ showMetadataView(selectedPath, "#infoAccordionMetadataInner");
+ });
+
+ $('#metadataTab').on('shown', function (e) {
showMetadataView(selectedPath, "#infoAccordionMetadataInner");
- } else if (sectionToUpdate=="infoAccordionACL") {
+ });
+
+ $('#permissionTab').on('shown', function (e) {
showSharingView(selectedPath, "#infoAccordionACLInner");
- } else if (sectionToUpdate=="infoAccordionTickets") {
+ });
+
+ $('#ticketTab').on('shown', function (e) {
showTicketView(selectedPath, "#infoAccordionTicketsInner");
- } else if (sectionToUpdate=="infoAccordionAudit") {
- showAuditView(selectedPath, "#infoAccordionAuditInner");
- } else {
- }
- }
+ });
+ $('#auditTab').on('shown', function (e) {
+ showAuditView(selectedPath, "#infoAccordionAuditInner");
+ });
+
+ });
+ function callUpdateTags() {
+ updateTags();
+ }
-
</script>
diff --git a/idrop-web/grails-app/views/browse/collectionInfoMini.gsp b/idrop-web/grails-app/views/browse/collectionInfoMini.gsp
index 2a3c93d..8e2ab67 100644
--- a/idrop-web/grails-app/views/browse/collectionInfoMini.gsp
+++ b/idrop-web/grails-app/views/browse/collectionInfoMini.gsp
@@ -42,7 +42,7 @@
</div>
<div>
<div></div>
- <div><button type="button" class="ui-state-default ui-corner-all" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
+ <div><button type="button" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
</div>
<div>
<div><label>Created At:</label></div>
diff --git a/idrop-web/grails-app/views/browse/dataObjectInfo.gsp b/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
index 0cf620a..8785a7d 100644
--- a/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
+++ b/idrop-web/grails-app/views/browse/dataObjectInfo.gsp
@@ -8,21 +8,21 @@
<!-- area to show idrop lite applet -->
</div>
<div id="toggleHtmlArea">
- <div id="displayArea" style="position:relative;width:100%;height:95%;display:block;">
-
+ <div id="displayArea">
+ <g:render template="/browse/dataObjectInfoToolbar" />
<div id="infoDialogArea"><!-- no empty divs --></div>
- <div class="roundedContainer">
+ <div class="well">
<image style="float:left;margin-right:10px;" src="<g:resource dir="images" file="file.png" alt="file icon" />"/>
<div id="container" style="height:100%;width:100%;">
<div >
- <div><label>File Name:</label></div>
+ <div><label><g:message code="text.file.name" />:</label></div>
<div style="overflow:auto;"><g:link url="${'file/download' + dataObject.absolutePath}">${dataObject.dataName}</g:link></div>
</div>
<div>
- <div style="width:20%;"><label>Parent Collection:</label></div>
+ <div style="width:20%;"><label><g:message code="text.parent" />:</label></div>
<div style="overflow:auto;">${dataObject.collectionName}</div>
</div>
</div>
@@ -37,116 +37,159 @@
</div>
</div>
-
-<div id="infoAccordion" style="width:98%;margin:10px;">
- <h3 id="infoAccordionBasicInfo"><a href="#infoAccordionBasicInfo"><g:message code="text.info" /></a></h3>
-
- <div id="container" style="height:100%;width:100%;">
+ <ul class="nav nav-tabs" id="infoTabs">
+ <li class="active"><a href="#info" id="infoTab"><g:message code="text.info" /></a></li>
+ <li><a href="#metadata" id="metadataTab"><g:message code="text.metadata" /></a></li>
+ <li><a href="#permissions" id="permissionTab"><g:message code="text.permissions" /></a></li>
+ <g:if test="${grailsApplication.config.idrop.config.use.tickets==true}">
+ <li><a href="#tickets" id="ticketTab"><g:message code="text.tickets" /></a></li>
+ </g:if>
+ <li><a href="#audit" id="auditTab"><g:message code="text.audit" /></a></li>
+ </ul>
+
+ <div class="tab-content">
+ <div class="tab-pane active" id="info">
+ <div id="container" style="height:100%;width:100%;">
<div >
- <div style="width:20%;"><label>Size:</label></div>
+ <div style="width:20%;"><label><g:message code="text.length" />:</label></div>
<div>${dataObject.displayDataSize}</div>
</div>
<div>
- <div><label>Created At:</label></div>
+ <div><label><g:message code="text.created" />:</label></div>
<div>${dataObject.createdAt}</div>
</div>
<div>
- <div><label>Updated At:</label></div>
+ <div><label><g:message code="text.modified" />:</label></div>
<div>${dataObject.updatedAt}</div>
</div>
<div>
- <div><label>Owner:</label></div>
+ <div><label><g:message code="text.owner" />:</label></div>
<div>${dataObject.dataOwnerName}</div>
</div>
<div>
- <div><label>Owner Zone:</label></div>
+ <div><label><g:message code="text.owner.zone" />:</label></div>
<div>${dataObject.dataOwnerZone}</div>
</div>
<div>
- <div><label>Data Path:</label></div>
+ <div><label><g:message code="text.data.path" />:</label></div>
<div style="overflow:auto;"><span class="longText">${dataObject.dataPath}</span></div>
</div>
<div>
- <div><label>Resource Group:</label></div>
+ <div><label><g:message code="text.resource.group" />:</label></div>
<div>${dataObject.resourceGroupName}</div>
</div>
<div>
- <div><label>Checksum:</label></div>
+ <div><label><g:message code="text.checksum" />:</label></div>
<div>${dataObject.checksum}</div>
</div>
<div>
- <div><label>Resource:</label></div>
+ <div><label><g:message code="text.resource" />:</label></div>
<div>${dataObject.resourceName}</div>
</div>
<div>
- <div><label>Replica Number:</label></div>
+ <div><label><g:message code="text.replica.number" />:</label></div>
<div>${dataObject.dataReplicationNumber}</div>
</div>
<div>
- <div><label>Replication Status:</label></div>
+ <div><label><g:message code="text.replication.status" />:</label></div>
<div>${dataObject.replicationStatus}</div>
</div>
<div>
- <div><label>Status:</label></div>
+ <div><label><g:message code="text.status" />:</label></div>
<div>${dataObject.dataStatus}</div>
</div>
<div>
- <div><label>Type:</label></div>
+ <div><label><g:message code="text.type" />:</label></div>
<div>${dataObject.dataTypeName}</div>
</div>
<div>
- <div><label>Version:</label></div>
+ <div><label><g:message code="text.version" />:</label></div>
<div>${dataObject.dataVersion}</div>
</div>
</div>
-
- <h3 id="infoAccordionTags"><a href="#infoAccordionTags"><g:message code="text.tags" /></a></h3>
-
- <div id="container" style="height:100%;width:100%;">
+ <div id="container" style="height:100%;width:100%;">
<div>
- <div><label>Tags:</label></div>
+ <div><label><g:message code="text.tags" />:</label></div>
<div><g:textField id="infoTags" name="tags"
value="${tags.spaceDelimitedTagsForDomain}" /></div>
</div>
<div>
- <div><label>Comment:</label></div>
+ <div><label><g:message code="text.comment" />:</label></div>
<div><g:textArea id="infoComment" name="comment" rows="5" cols="80"
value="${comment}" /></div>
</div>
<div>
<div></div>
- <div><button type="button" class="ui-state-default ui-corner-all" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
+ <div><button type="button" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
</div>
- </div>
-
- <h3 id="infoAccordionMetadata"><a href="#infoAccordionMetadata" ><g:message code="text.metadata" /></a></h3>
- <div id="infoAccordionMetadataInner"></div>
- <h3 id="infoAccordionACL"><a href="#infoAccordionACL" ><g:message code="text.permissions" /></a></h3>
- <div id="infoAccordionACLInner">
- </div>
-
- <g:if test="${grailsApplication.config.idrop.config.use.tickets==true}">
- <h3 id="infoAccordionTickets"><a href="#infoAccordionTickets" ><g:message code="text.tickets" /></a></h3>
- <div id="infoAccordionTicketsInner"></div>
- </g:if>
- <h3 id="infoAccordionAudit"><a href="#infoAccordionAudit"><g:message code="text.audit" /></a></h3>
- <div id="infoAccordionAuditInner">
- </div>
- <div >
- </div>
+ </div>
+ </div>
+ <div class="tab-pane" id="metadata">
+ <div id="infoAccordionMetadataInner"></div>
+ </div>
+ <div class="tab-pane" id="permissions">
+ <div id="infoAccordionACLInner"></div>
+ </div>
+ <g:if test="${grailsApplication.config.idrop.config.use.tickets==true}">
+ <div class="tab-pane" id="tickets">
+ <div id="infoAccordionTicketsInner">
+ </div>
+ </div>
+ </g:if>
+ <div class="tab-pane" id="audit">
+ <div id="infoAccordionAuditInner"></div>
+ </div>
</div>
-
+
+</div><!-- toggle html area -->
+
<script>
$(function() {
- showDetailsToolbar();
$(".idropLiteBulkUpload").hide();
$("#menuDownload").show();
$("#menuUpload").hide();
$("#menuBulkUpload").hide();
+
+ $('#infoTabs a').click(function (e) {
+ e.preventDefault();
+ $(this).tab('show');
+ });
+
+ $('#infoTab').on('shown', function (e) {
+ //e.target // activated tab
+ //e.relatedTarget // previous tab
+ showMetadataView(selectedPath, "#infoAccordionMetadataInner");
+ });
+
+ $('#metadataTab').on('shown', function (e) {
+ showMetadataView(selectedPath, "#infoAccordionMetadataInner");
+ });
+
+ $('#permissionTab').on('shown', function (e) {
+ showSharingView(selectedPath, "#infoAccordionACLInner");
+ });
+
+ $('#ticketTab').on('shown', function (e) {
+ showTicketView(selectedPath, "#infoAccordionTicketsInner");
+ });
+
+ $('#auditTab').on('shown', function (e) {
+ showAuditView(selectedPath, "#infoAccordionAuditInner");
+ });
+
+ });
+
+ function callUpdateTags() {
+ updateTags();
+ }
+
+ /*
+
+
$("#infoAccordion").accordion({
clearStyle : true,
autoHeight : false
@@ -154,8 +197,7 @@
var infoSection = ui.newHeader[0].id;
updateDataObjectInfoSection(infoSection);
});
-
- });
+ */
/**
Update the info for a section in the info accordion based on the provided section id
diff --git a/idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp b/idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp
index a1a936a..286a875 100644
--- a/idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp
+++ b/idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp
@@ -8,13 +8,12 @@
<!-- area to show idrop lite applet -->
</div>
<div id="toggleHtmlArea">
- <div id="displayArea" style="position:relative;width:100%;height:95%;display:block;">
-
+ <div id="displayArea" >
<div id="infoDialogArea"><!-- no empty divs --></div>
<!-- display area lays out info in a main and side column -->
- <div id="infoDisplayLayout" style="display:table;width:100%;height:100%;">
+ <div id="infoDisplayLayout">
@@ -28,11 +27,11 @@
<div >
- <div><label>File Name:</label></div>
+ <div><label><g:message code="text.file.name" />:</label></div>
<div style="overflow:auto;"><g:link url="${'file/download' + dataObject.absolutePath}">${dataObject.dataName}</g:link></div>
</div>
<div>
- <div style="width:20%;"><label>Parent Collection:</label></div>
+ <div style="width:20%;"><label><g:message code="text.parent" />:</label></div>
<div style="overflow:auto;">${dataObject.collectionName}</div>
</div>
</div>
@@ -60,73 +59,73 @@
<div id="container" style="height:100%;width:100%;">
<div >
- <div style="width:20%;"><label>Size:</label></div>
+ <div style="width:20%;"><label><g:message code="text.length" />:</label></div>
<div>${dataObject.displayDataSize}</div>
</div>
<div>
- <div><label>Tags:</label></div>
+ <div><label><g:message code="text.tags" />:</label></div>
<div><g:textField id="infoTags" name="tags"
value="${tags.spaceDelimitedTagsForDomain}" /></div>
</div>
<div>
- <div><label>Comment:</label></div>
+ <div><label><g:message code="text.comment" />:</label></div>
<div><g:textArea id="infoComment" name="comment" rows="5" cols="80"
value="${comment}" /></div>
</div>
<div>
<div></div>
- <div><button type="button" class="ui-state-default ui-corner-all" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
+ <div><button type="button" id="updateTags" value="updateTags" onclick="callUpdateTags()">Update Tags</button></div>
</div>
<div>
- <div><label>Created At:</label></div>
+ <div><label><g:message code="text.created" />:</label></div>
<div>${dataObject.createdAt}</div>
</div>
<div>
- <div><label>Updated At:</label></div>
+ <div><label><g:message code="text.modified" />:</label></div>
<div>${dataObject.updatedAt}</div>
</div>
<div>
- <div><label>Owner:</label></div>
+ <div><label><g:message code="text.owner" />:</label></div>
<div>${dataObject.dataOwnerName}</div>
</div>
<div>
- <div><label>Owner Zone:</label></div>
+ <div><label><g:message code="text.owner.zone" />:</label></div>
<div>${dataObject.dataOwnerZone}</div>
</div>
<div>
- <div><label>Data Path:</label></div>
+ <div><label><g:message code="text.data.path" />:</label></div>
<div style="overflow:auto;"><span class="longText">${dataObject.dataPath}</span></div>
</div>
<div>
- <div><label>Resource Group:</label></div>
+ <div><label><g:message code="text.resource.group" />:</label></div>
<div>${dataObject.resourceGroupName}</div>
</div>
<div>
- <div><label>Checksum:</label></div>
+ <div><label><g:message code="text.checksum" />:</label></div>
<div>${dataObject.checksum}</div>
</div>
<div>
- <div><label>Resource:</label></div>
+ <div><label><g:message code="text.resource" />:</label></div>
<div>${dataObject.resourceName}</div>
</div>
<div>
- <div><label>Replica Number:</label></div>
+ <div><label><g:message code="text.replica.number" />:</label></div>
<div>${dataObject.dataReplicationNumber}</div>
</div>
<div>
- <div><label>Replication Status:</label></div>
+ <div><label><g:message code="text.replication.status" />:</label></div>
<div>${dataObject.replicationStatus}</div>
</div>
<div>
- <div><label>Status:</label></div>
+ <div><label><g:message code="text.status" />:</label></div>
<div>${dataObject.dataStatus}</div>
</div>
<div>
- <div><label>Type:</label></div>
+ <div><label><g:message code="text.type" />:</label></div>
<div>${dataObject.dataTypeName}</div>
</div>
<div>
- <div><label>Version:</label></div>
+ <div><label><g:message code="text.version" />:</label></div>
<div>${dataObject.dataVersion}</div>
</div>
</div>
@@ -137,16 +136,6 @@
</div><!-- table -->
</div><!-- toggle html area -->
-<script>
-$(function() {
-
-});
-
-function callUpdateTags() {
- updateTags();
-}
-
-</script>
<g:if test="${getThumbnail}">
<script>
diff --git a/idrop-web/grails-app/views/browse/galleryView.gsp b/idrop-web/grails-app/views/browse/galleryView.gsp
index e69f03a..8ffd167 100644
--- a/idrop-web/grails-app/views/browse/galleryView.gsp
+++ b/idrop-web/grails-app/views/browse/galleryView.gsp
@@ -19,7 +19,6 @@
<script type="text/javascript">
jQuery(document).ready(function($) {
- hideAllToolbars();
Galleria.loadTheme(context + '/js/themes/classic/galleria.classic.min.js');
$("#gallery").galleria({
width: 800,
diff --git a/idrop-web/grails-app/views/browse/index.gsp b/idrop-web/grails-app/views/browse/index.gsp
new file mode 100644
index 0000000..149134b
--- /dev/null
+++ b/idrop-web/grails-app/views/browse/index.gsp
@@ -0,0 +1,43 @@
+<head>
+ <meta name="layout" content="mainNoSidebar" />
+ <g:javascript library="mydrop/home" />
+ <g:javascript library="mydrop/metadata" />
+</head>
+<div class="wrapper clearfix"
+ style="height: 820px; overflow:hidden;">
+ <g:hiddenField name="mode" id="mode" value="${mode}"/>
+ <g:hiddenField name="presetPath" id="presetPath" value="${path}"/>
+ <g:render template="/browse/browseTabContent" />
+
+</div>
+<script type="text/javascript">
+ var dataLayout;
+ var tabs;
+ $(document).ready(function() {
+
+ $("#topbarBrowser").addClass("active");
+
+ $.ajaxSetup({
+ cache : false
+ });
+
+ $("#infoDiv").resize();
+
+ dataLayout = $("#dataTreeView").layout({
+ applyDefaultStyles : false,
+ size : "auto",
+ west__minSize : 150,
+ west__resizable : true
+ });
+
+ var mode = $("#mode").val();
+ var startPath = $("#presetPath").val();
+
+ if (mode == null || mode=="") {
+ retrieveBrowserFirstView("detect","");
+ } else {
+ retrieveBrowserFirstView(mode, startPath);
+ }
+
+ });
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/browse/listCart.gsp b/idrop-web/grails-app/views/browse/listCart.gsp
deleted file mode 100644
index 590ccf5..0000000
--- a/idrop-web/grails-app/views/browse/listCart.gsp
+++ /dev/null
@@ -1,34 +0,0 @@
-<div id="cartTopSection" class="box" style="width:100%;height:100%;">
-
-<div id="cartToggleDiv" style="width:100%;height:100%;">
-<div id="cartToolbar" class="fg-toolbar ui-widget-header" style="height:10%;">
- <div id="cartMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: left, clear: both;">
- <button type="button" id="clearCartButton"
- class="ui-state-default ui-corner-all" value="clearCart"
- onclick="clearCart()")><g:message code="default.button.clear.label" /></button>
- <button type="button" id="deleteFromCartButton"
- class="ui-state-default ui-corner-all" value="deleteFromCart"
- onclick="deleteFromCart()")><g:message code="default.button.delete.label" /></button>
- <button type="button" id="reloadCartButton"
- class="ui-state-default ui-corner-all" value="reloadCart"
- onclick="refreshCartFiles()")><g:message code="default.button.reload.label" /></button>
- <button type="button" id="checkout"
- class="ui-state-default ui-corner-all" value="checkout"
- onclick="checkOut()")><g:message code="text.check.out" /></button>
- </div>
-</div>
-<div id="cartTableDiv" style="overflow:auto;height:90%;">
-<!-- cart table -->
-</div>
-</div>
-<div id="cartAppletDiv">
-<!-- empty div --></div>
-</div>
-<script type="text/javascript">
-
- $(function() {
- refreshCartFiles();
- });
-
- </script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/browse/newFolderDialog.gsp b/idrop-web/grails-app/views/browse/newFolderDialog.gsp
index e1f3d08..55cea87 100644
--- a/idrop-web/grails-app/views/browse/newFolderDialog.gsp
+++ b/idrop-web/grails-app/views/browse/newFolderDialog.gsp
@@ -1,33 +1,34 @@
-<div id="newFolderDialog" class="roundedContainer">
- <h2><g:message code="heading.new.folder.dialog"/></h2>
- <div id="newFolderDialogMessageArea" style="width:90%;">
- <!-- no empty divs -->
- </div>
+<div id="newFolderDialog">
+
+ <div class="modal-header">
+ <h3><g:message code="heading.new.folder.dialog"/></h3>
+ </div>
+
+ <div class="modal-body">
+ <label for="fileName"><g:message code="text.new.folder" />:<g:textArea name="fileName" id="fileName" value="${fileName}" /></label>
+ <g:hiddenField name="absPath" id="newFolderDialogAbsPath" value = "${absPath }" />
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" id="updateNewFolderButton"
+ value="update"
+ onclick="submitNewFolderDialog()")><g:message code="default.button.update.label" /></button>
+ <button type="button" id="cancelRenameButton"
+ value="cancelAdd"
+ onclick="closeNewFolderDialog()")><g:message code="text.cancel" /></button>
+ </div>
- <fieldset id="verticalForm">
-
- <label for="fileName"><g:message code="text.new.folder" />:</label>
- <g:textArea name="fileName" id="fileName" value="${fileName}" />
- <g:hiddenField name="absPath" id="newFolderDialogAbsPath" value = "${absPath }" />
- <br />
- <div id="newFolderDialogToolbar" class="fg-toolbar ui-widget-header">
- <div id="newFolderDialogMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: left, clear : both; width: 90%;">
- <button type="button" id="updateNewFolderButton"
- class="ui-state-default ui-corner-all" value="update"
- onclick="submitNewFolderDialog()")><g:message code="default.button.update.label" /></button>
- <button type="button" id="cancelRenameButton"
- class="ui-state-default ui-corner-all" value="cancelAdd"
- onclick="closeNewFolderDialog()")><g:message code="text.cancel" /></button>
- </div>
- </div>
- </fieldset>
- </div>
+</div>
<script>
$(function() {
- $("#newFolderDialog").dialog({width:500, modal:true});
+ $("#newFolderDialog").dialog(
+ {
+ "modal":true,
+ "width":"500px"
+ }
+ );
});
diff --git a/idrop-web/grails-app/views/browse/publicLinkDialog.gsp b/idrop-web/grails-app/views/browse/publicLinkDialog.gsp
index 5dd4da4..50d3efd 100644
--- a/idrop-web/grails-app/views/browse/publicLinkDialog.gsp
+++ b/idrop-web/grails-app/views/browse/publicLinkDialog.gsp
@@ -1,42 +1,42 @@
-<div class="roundedContainer" id="publicLinkDialog">
- <g:hiddenField name="publicLinkDialogAbsPath" id="publicLinkDialogAbsPath" value = "${absPath}" />
- <div style="clear: both;">
+<div class="well" id="publicLinkDialog">
+ <g:hiddenField name="publicLinkDialogAbsPath" id="publicLinkDialogAbsPath" value = "${absPath}" />
+ <div>
<g:if test="${accessSet == true}">
- <h1><g:message code="heading.anonymous.access.set" /></h1>
- <fieldset id="verticalForm">
+ <div class="alert alert-info">
+ <g:message code="heading.anonymous.access.set" />
+ </div>
+ <fieldset>
<g:textArea name="url" rows="4" columns="200" value="${accessUrlString}"/>
<br />
- <div id="publicLinkDialogMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: right; clear : both; width: 90%;">
+ <div id="publicLinkDialogMenu"
+ class="pull-right">
<button type="button" id="cancelPublicLinkButton"
- class="ui-state-default ui-corner-all" value="cancelPublicLink"
+ value="cancelPublicLink"
onclick="closePublicLinkDialog()")><g:message code="text.cancel" /></button>
</div>
</fieldset>
</g:if>
<g:else>
- <h1><g:message code="heading.anonymous.access.enable" /></h1>
- <fieldset id="verticalForm">
+ <div class="alert alert-info">
+ <g:message code="heading.anonymous.access.enable" />
+ </div>
+
+ <fieldset>
<br />
<div id="publicLinkDialogToolbar" >
- <div id="publicLinkDialogMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: right; clear : both; width: 90%;">
+ <div id="publicLinkDialogMenu"
+ class="pull-right">
<button type="button" id="grantLinkButton"
- class="ui-state-default ui-corner-all" value="grant"
+ value="grant"
onclick="grantPublicLink()")><g:message code="text.grant" /></button>
<button type="button" id="cancelPublicLinkButton"
- class="ui-state-default ui-corner-all" value="cancelPublicLink"
+ value="cancelPublicLink"
onclick="closePublicLinkDialog()")><g:message code="text.cancel" /></button>
</div>
</div>
-
-
-
-
-
</fieldset>
</g:else>
diff --git a/idrop-web/grails-app/views/browse/renameDialog.gsp b/idrop-web/grails-app/views/browse/renameDialog.gsp
index 1bfecce..3c7c78a 100644
--- a/idrop-web/grails-app/views/browse/renameDialog.gsp
+++ b/idrop-web/grails-app/views/browse/renameDialog.gsp
@@ -1,30 +1,32 @@
-<div id="renameDialog" class="roundedContainer">
+<div id="renameDialog">
- <div style="clear: both;">
+ <div class="modal-header">
+ <h3><g:message code="heading.rename.dialog"/></h3>
+ </div>
- <div id="renameDialogMessageArea" style="width:90%;">
- <!-- no empty divs -->
- </div>
+ <div class="modal-body">
<fieldset id="verticalForm">
-
<label for="fileName"><g:message code="text.name" />:</label>
<g:textArea name="fileName" id="fileName" value="${fileName}" />
- <g:hiddenField name="absPath" id="renameDialogAbsPath" value = "${absPath }" />
- <br />
- <div id="renameDialogToolbar" class="fg-toolbar ui-widget-header">
- <div id="renameDialogMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: left, clear : both; width: 90%;">
- <button type="button" id="updateRenameButton"
- class="ui-state-default ui-corner-all" value="update"
- onclick="submitRenameDialog()")><g:message code="default.button.update.label" /></button>
- <button type="button" id="cancelRenameButton"
- class="ui-state-default ui-corner-all" value="cancelAdd"
- onclick="closeRenameDialog()")><g:message code="text.cancel" /></button>
- </div>
- </div>
+ <g:hiddenField name="absPath" id="renameDialogAbsPath" value = "${absPath}" />
+ <g:hiddenField name="parentPath" id="renameDialogParentPath" value = "${parentPath}" />
</fieldset>
- </div>
+ </div>
+
+ <div class="modal-footer">
+ <div id="renameDialogToolbar">
+ <div id="renameDialogMenu" class="pull-right">
+ <button type="button" id="updateRenameButton"
+ value="update"
+ onclick="submitRenameDialog()")><g:message code="default.button.update.label" /></button>
+ <button type="button" id="cancelRenameButton"
+ value="cancelAdd"
+ onclick="closeRenameDialog()")><g:message code="text.cancel" /></button>
+ </div>
+ </div>
+ </div>
+ </div>
</div>
<script>
diff --git a/idrop-web/grails-app/views/common/_browseLegend.gsp b/idrop-web/grails-app/views/common/_browseLegend.gsp
new file mode 100644
index 0000000..fbcdc59
--- /dev/null
+++ b/idrop-web/grails-app/views/common/_browseLegend.gsp
@@ -0,0 +1,11 @@
+<div class='row-fluid well'>
+ <div class='span1 offset2'>
+ <i class="icon-folder-open"></i> Open folder in browse view
+ </div>
+ <div class='span1'>
+ <i class='icon-upload'></i> Quick upload
+ </div>
+ <div class='span1'>
+ <i class='icon-download'></i> Quick download
+ </div>
+</div> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/common/_cssAndJs.gsp b/idrop-web/grails-app/views/common/_cssAndJs.gsp
new file mode 100644
index 0000000..c058386
--- /dev/null
+++ b/idrop-web/grails-app/views/common/_cssAndJs.gsp
@@ -0,0 +1,40 @@
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title><g:layoutTitle default="iDrop-web - iRODS Cloud Browser" /></title>
+ <link rel="stylesheet" href="${resource(dir:'css',file:'style.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'bootstrap.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'jqcloud.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'layout-default-latest.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'jquery.fileupload-ui.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'superfish.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'jquery.gritter.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'overcast/jquery-ui-1.9.0.custom.css')}" />
+ <link rel="shortcut icon"
+ href="${resource(dir:'images',file:'favicon.ico')}" type="image/x-icon" />
+ <g:layoutHead />
+ <g:javascript library="jquery-1.7.2.min" />
+ <g:javascript library="jquery-ui-1.8.7.custom.min" />
+ <g:javascript library="bootstrap.min" />
+ <g:javascript library="jquery.hotkeys" />
+ <g:javascript library="jquery.jstree" />
+ <g:javascript library="jquery.jeditable.mini" />
+ <g:javascript library="jquery.dataTables.min" />
+ <g:javascript library="mydrop/ticket" />
+ <g:javascript library="jquery.i18n.properties-min-1.0.9" />
+ <g:javascript library="jqcloud-0.1.6" />
+ <g:javascript library="jquery.fileupload-ui" />
+ <g:javascript library="jquery.fileupload" />
+ <g:javascript library="jquery.media" />
+ <g:javascript library="mydrop/lingo_common" />
+ <g:javascript library="mydrop/main" />
+ <g:javascript library="jquery-ui-13" />
+ <g:javascript library="jquery.blockUI" />
+ <g:javascript library="jquery.ba-bbq.min" />
+ <g:javascript library="jquery.layout-latest.min" />
+ <g:javascript library="jquery-ui-13" />
+ <g:javascript library="jquery.tools.min" />
+ <g:javascript library="mydrop/shopping_cart" />
+ <g:javascript library="mydrop/user" />
+ <g:javascript library="galleria-1.2.6" />
+ <g:javascript library="jquery.gritter.min" />
+ <g:javascript library="jquery.opacityrollover" />
+ <g:javascript library="superfish" /> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/common/_footer.gsp b/idrop-web/grails-app/views/common/_footer.gsp
index 2d0ce51..3879cb7 100644
--- a/idrop-web/grails-app/views/common/_footer.gsp
+++ b/idrop-web/grails-app/views/common/_footer.gsp
@@ -1 +1,30 @@
-<h3>iDrop-web developed by the DICE Group, developers of the <a href="http://www.irods.org">iRODS Data Grid</a> -- iDrop Project Page available <a href="https://code.renci.org/jargon">here</a> - version: ${grailsApplication.metadata.'app.version'} jargon:${org.irods.jargon.core.utils.JargonVersion.VERSION }</h3> \ No newline at end of file
+<div class="container-fluid">
+<g:ifAuthenticated>
+ <div class="row-fluid">
+
+ <div class="span8">
+ <span id="topBarLoginInfo" ></span>
+ </div>
+ <div class="span2 offset1">
+ <button id="logoutButton" name="logoutButton"
+ onclick="logout()")><g:message code="text.logout" /></button>
+ </div>
+ </div>
+ </g:ifAuthenticated>
+
+ <div class="span12">
+ <center>iDrop-web developed by the DICE Group, developers of the <a href="http://www.irods.org">iRODS Data Grid</a> -- iDrop Project Page available <a href="https://code.renci.org/jargon">here</a> - version: ${grailsApplication.metadata.'app.version'} jargon:${org.irods.jargon.core.utils.JargonVersion.VERSION }</center>
+ </div>
+ </div>
+</div>
+
+<script type="text/javascript">
+$(function() {
+ var url = "/browse/showLoginBar";
+ lcSendValueAndCallbackHtmlAfterErrorCheck(url, "#topBarLoginInfo",
+ "#topBarLoginInfo", null);
+});
+
+
+
+</script>
diff --git a/idrop-web/grails-app/views/common/_topToolbar.gsp b/idrop-web/grails-app/views/common/_topToolbar.gsp
index ab598a8..dae0926 100644
--- a/idrop-web/grails-app/views/common/_topToolbar.gsp
+++ b/idrop-web/grails-app/views/common/_topToolbar.gsp
@@ -1,129 +1,26 @@
-<div id="topToolbar"
- style="height: 100%; overflow: visible; margin-left: auto; margin-right: auto;">
+<div id="topToolbar" >
- <ul id="topToolbarMenu" class="sf-menu">
+ <div id="topToolbarMenu" class="btn-toolbar">
- <li id="menuFileDetails" class="detailsToolbarMenuItem"><a
- href="#file"><g:message code="text.file" /></a>
- <ul>
- <li id="menuRefresh"><a href="#refresh" onclick="refreshTree()"><g:message
- code="text.refresh" /></a></li>
- <li id="menuNewFolderDetails"><a href="#newFolderDetails"
- onclick="newFolderViaBrowseDetailsToolbar()"><g:message
- code="text.new.folder" /></a></li>
- <!-- <li id="menuRenameDetails"><a href="#renameDetails"
- onclick="renameViaBrowseDetailsToolbar()"><g:message
- code="text.rename" /></a></li>
- <li id="menuDeleteDetails"><a href="#deleteDetails"
- onclick="deleteViaBrowseDetailsToolbar()"><g:message
- code="default.button.delete.label" /></a></li>-->
-
- </ul></li>
- <li id="menuFile" class="toolbarMenuItem"><a href="#file"><g:message
- code="text.file" /></a>
- <ul>
- <li id="menuRefresh"><a href="#refresh" onclick="refreshTree()"><g:message
- code="text.refresh" /></a></li>
- <li id="menuNewFolder"><a href="#newFolder"
- onclick="newFolderViaToolbar()"><g:message
- code="text.new.folder" /></a></li>
- <li id="menuRename"><a href="#rename"
- onclick="renameViaToolbar()"><g:message code="text.rename" /></a></li>
- <li id="menuDelete"><a href="#delete"
- onclick="deleteViaToolbar()"><g:message
- code="default.button.delete.label" /></a></li>
- </ul></li>
-
- <li id="menuView"><a href="#view"><g:message code="text.view" /></a>
- <ul>
- <li id="menuBrowseView"><a href="#browseView"
- onclick="browseView()"><g:message
- code="text.browse" /></a></li>
- <li id="menuInfoView"><a href="#infoView" onclick="infoView()"> <g:message code="text.info" /></a></li>
- <li id="menuSharingView"><a href="#sharingView"
- onclick="sharingView()"><g:message
- code="text.sharing" /></a></li>
- <li id="menuMetadataView"><a href="#metadataView"
- onclick="metadataView()"><g:message
- code="text.metadata" /></a></li>
- <li id="menuGalleryView"><a href="#galleryView"
- onclick="galleryView()"><g:message
- code="text.gallery" /></a></li>
- <li id="menuAuditView"><a href="#auditView"
- onclick="auditView()"><g:message
- code="text.audit" /></a></li>
- <g:if test="${grailsApplication.config.idrop.config.use.tickets==true}">
- <li id="menuTicketView"><a href="#ticketView"
- onclick="ticketView()"><g:message
- code="text.tickets" /></a></li>
- </g:if>
- </ul></li>
-
- <!-- details toolbar -->
-
- <li id="menuUploadDownloadDetails" class="detailsToolbarMenuItem"><a
- href="#uploadDownloadDetails"><g:message
- code="text.upload.and.download" /></a>
- <ul>
- <li id="menuUploadDetails"><a href="#uploadDetails"
- onclick="showBrowseDetailsUploadDialog()"><g:message
- code="text.upload" /></a></li>
-
- <li id="menuBulkUploadDetails" class="idropLiteBulkUpload"><a href="#bulkuploadDetails"
- onclick="showBrowseDetailsIdropLite()"><g:message
- code="text.bulk.upload" /></a></li>
-
- <li id="menuAddToCartDetails"><a href="#addToCartDetails"
- onclick="addToCartViaBrowseDetailsToolbar()"><g:message
- code="text.add.to.cart" /></a></li>
-
-
- </ul></li>
-
- <li id="menuToolsDetails" class="detailsToolbarMenuItem"><a href="#menuToolsDetails"><g:message code="text.tools"/></a>
- <ul>
- <li id="menuToolsDetailsMakePublicLink"><a href="#makePublicLinkDetails" onclick="makePublicLinkAtPath()"><g:message code="text.create.public.link" /></a></li>
- </ul>
- </li>
-
-
- <li id="menuBulkActionDetails" class="detailsToolbarMenuItem"><a href="#applyActionToAllDetails"><g:message code="text.apply.to.all"/></a>
- <ul>
-
- <li id="menuAddToCartDetails"><a href="#addAllToCartDetails" onclick="addSelectedToCart()"><g:message code="text.add.all.to.cart" /></a></li>
- <li id="menuDeleteDetails"><a href="#deleteAllDetails" onclick="deleteSelected()"><g:message code="text.delete.all" /></a></li>
- </ul>
- </li>
-
-
-
-
- <!-- info toolbar -->
-
- <li id="menuTools" class="toolbarMenuItem"><a href="#menuToolsD"><g:message code="text.tools"/></a>
- <ul>
- <li id="menuToolsMakePublicLink"><a href="#makePublicLink" onclick="makePublicLinkAtPath()"><g:message code="text.create.public.link" /></a></li>
- </ul>
- </li>
-
- <li id="menuUploadDownload" class="toolbarMenuItem"><a
- href="#uploadDownload"><g:message code="text.upload.and.download" /></a>
- <ul>
- <li id="menuUpload"><a href="#upload"
- onclick="showUploadDialogFromInfoToolbar()"><g:message
- code="text.upload" /></a></li>
- <li id="menuDownload"><a href="#download"
- onclick="downloadAction()"><g:message code="text.download" /></a></li>
- <li id="menuBulkUpload" class="idropLiteBulkUpload"><a href="#bulkupload"
- onclick="showIdropLite()"><g:message code="text.bulk.upload" /></a></li>
-
- <li id="menuAddToCart"><a href="#addToCart"
- onclick="addToCartViaToolbar()"><g:message
- code="text.add.to.cart" /></a></li>
+ <div id="menuFileDetails" class="btn-group">
+ <button id="menuRefresh" onclick="refreshTree()"><img class="icon-refresh"/><g:message
+ code="text.refresh" /></button>
+ <button id="menuNewFolderDetails"
+ onclick="newFolderViaBrowseDetailsToolbar()"><img class="icon-plus-sign"/><g:message
+ code="text.new.folder" /></button>
+
+ </div>
-
- </ul></li>
- </ul>
+ <div id="menuView" class="btn-group">
+
+ <button id="menuBrowseView"
+ onclick="browseView()"><img class="icon-list"/><g:message
+ code="text.browse" /></button>
+ <button id="menuInfoView" onclick="infoView()"><img class="icon-info-sign"/> <g:message code="text.info" /></button>
+ <button id="menuGalleryView"
+ onclick="galleryView()"><img class="icon-picture"/><g:message
+ code="text.gallery" /></button>
+ </div>
</div>
@@ -133,7 +30,7 @@
$(function() {
$(".toolbarMenuItem").hide();
$(".detailsToolbarMenuItem").hide();
- $("ul.sf-menu").superfish();
+ //$("ul.sf-menu").superfish();
});
function setDefaultView(view) {
@@ -151,15 +48,6 @@
}
/**
- * audit view selected
- */
- function auditView() {
- setDefaultView("audit");
- showAuditView(selectedPath);
-
- }
-
- /**
* browse view selected
*/
function browseView() {
@@ -177,30 +65,6 @@
}
/**
- * Show the sharing (ACL) view
- */
- function sharingView() {
- setDefaultView("sharing");
- showSharingView(selectedPath);
- }
-
- /**
- * Show the metadata (AVU) view
- */
- function metadataView() {
- setDefaultView("metadata");
- showMetadataView(selectedPath);
- }
-
- /**
- * Show the ticket view
- */
- function ticketView() {
- setDefaultView("ticket");
- showTicketView(selectedPath);
- }
-
- /**
* Show the gallery (photo) view
*/
function galleryView() {
@@ -257,35 +121,6 @@
downloadViaToolbar(path);
}
- function showBulkShareDialogFromToolbar() {
- var path = $("#infoAbsPath").val();
- showBulkShareDialog(path);
- }
-
- function showIdropLiteFromToolbar() {
- var path = $("#infoAbsPath").val();
- showBulkShareDialog(path);
- }
-
- /**
- * Show the dialog to allow upload of data using the abs path in the info pane
- */
- function showUploadDialogFromInfoToolbar() {
- var uploadPath = $("#infoAbsPath").val();
- if (uploadPath == null) {
- showErrorMessage("No path was found to upload, application error occurred");
- return;
- }
-
- showUploadDialogUsingPath(uploadPath);
-
- }
-
- function sharingSelectedFromToolbar() {
- var path = $("#infoAbsPath").val();
- showSharingView(path);
- }
-
/*
* Cause a dialog to appear that has a link for a public path for the current path
*/
diff --git a/idrop-web/grails-app/views/common/_topbar.gsp b/idrop-web/grails-app/views/common/_topbar.gsp
index ce1c402..2763cd1 100644
--- a/idrop-web/grails-app/views/common/_topbar.gsp
+++ b/idrop-web/grails-app/views/common/_topbar.gsp
@@ -1,72 +1,48 @@
-<g:ifAuthenticated>
- <div id="headerSearchBox" class="box">
-
- <div id="searchMenu" class="fg-buttonset fg-buttonset-multi" style="float:left">
- <input id="searchTerm" type="text"
- name="searchTerm" />
-
- <button type="button" id="search"
- class="ui-state-default ui-corner-all" value="search"
- onclick="search()")><g:message code="text.search" /></button><span>as a<g:select name="searchType" id="searchType" from="${['file', 'tag']}" /></span>
-
- <span> or </span><button type="button" id="selectTreePath"
- class="ui-state-default ui-corner-all" value="search"
- onclick="selectTreePath()")><g:message code="text.find.path.in.tree" /></button>
- </div>
-
- <div id="toggleMenu" style="float:right">
+<div class="navbar navbar-fixed-top navbar-inverse">
+<div class="navbar-inner">
+ <a class="brand" href="#">iDrop</a>
+
+ <ul class="nav">
+ <g:ifAuthenticated>
+
+ <!-- menu items shown if user has been authenticated -->
+
+ <li id="topbarHome" class="topbarItem"><g:link controller="home" action="index"><g:message code="text.home" /></g:link></li>
+ <li id="topbarBrowser" class="topbarItem"><g:link controller="browse" action="index"><g:message code="text.browse" /></g:link></li>
+ <g:if test="${grailsApplication.config.idrop.config.use.userprofile==true}">
+ <li id="topbarPreferences" class="topbarItem"><g:link controller="profile" action="index">Profile</g:link></li>
+ </g:if>
+
+
+
+
+ </g:ifAuthenticated>
- <span id="topBarLoginInfo" ><!-- login bar goes here --></span>
-
- <button type="button" id="logoutButton"
- class="ui-state-default ui-corner-all" value="logout"
- onclick="logout()")><g:message code="text.logout" /></button>
-
-
- <button type="button" id="toggleMenuButton"
- class="ui-state-default ui-corner-all" value="showMenu"
- onclick="showMenu()")><g:message code="text.show.menu" /></button>
-
-
+ <li id="topbarAccount" class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+ <g:message code="text.account" /><b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+
+ <g:ifAuthenticated>
+ <li><a href="#" id="logoutButton" onclick="logout()")><g:message code="text.logout" /></a></li>
+ </g:ifAuthenticated>
+
+ </ul>
+
+
+
+
+ </li>
- </div>
-
- </div>
-</g:ifAuthenticated>
-
-<script type="text/javascript">
-var menuShown = true;
-function showMenu() {
-
- if (menuShown) {
- $("#secondaryDiv").hide('slow');
- $("#secondaryDiv").width="0%";
- menuShown = false;
- $("#mainDiv").width="100%";
- $("#mainDivCol1").width="100%";
- $("#mainDivCol1").removeClass();
- dataLayout.resizeAll();
- } else {
- $("#secondaryDiv").show('slow');
- $("#mainDiv").width="80%";
- $("#mainDivCol1").width="80%";
- $("#secondaryDiv").width="20%";
- $("#mainDivCol1").addClass("yui-u first");
- refreshTagCloud();
- dataLayout.resizeAll();
- menuShown = true;
- }
-}
-
-$(function() {
- var url = "/browse/showLoginBar";
- lcSendValueAndCallbackHtmlAfterErrorCheck(url, "#topBarLoginInfo",
- "#topBarLoginInfo", null);
-});
-
-
-
-</script>
-
+ <g:ifAuthenticated>
+ <li id="topbarShoppingCart" class="topbarItem"><g:link class="pull-right" controller="shoppingCart" action="index"><span id="shoppingCartToolbarLabel"><g:message code="text.shopping.cart" /></span></g:link></li>
+ </g:ifAuthenticated>
+
+ </ul>
+
+
+ </div>
+</div>
diff --git a/idrop-web/grails-app/views/file/deleteResult.gsp b/idrop-web/grails-app/views/file/deleteResult.gsp
new file mode 100644
index 0000000..b851396
--- /dev/null
+++ b/idrop-web/grails-app/views/file/deleteResult.gsp
@@ -0,0 +1 @@
+${absPath} \ No newline at end of file
diff --git a/idrop-web/grails-app/views/file/uploadDialog.gsp b/idrop-web/grails-app/views/file/uploadDialog.gsp
index c4aa285..c07c463 100644
--- a/idrop-web/grails-app/views/file/uploadDialog.gsp
+++ b/idrop-web/grails-app/views/file/uploadDialog.gsp
@@ -1,25 +1,45 @@
<div id="uploadDialogDiv">
- <g:form controller="file" action="upload" method="post"
- name="uploadForm" enctype="multipart/form-data"
- target="upload_target">
-
- <b>Parent Collection:</b>
- ${irodsTargetCollection}
- <g:hiddenField id="collectionParentName" name="collectionParentName" value="${irodsTargetCollection}"/>
- <br />
- <div id="file_upload_container">
- <input type="file" name="file">
- <button type="button" id="upload" value="upload"
- onclick="upload()")>Upload</button>
- </div>
- <div id="upload_message_area">
- </div>
- <table id="files"></table>
-
- </g:form>
+ <div class="modal-header">
+ <h3><g:message code="heading.upload.dialog"/></h3>
+ </div>
+
+ <div class="modal-body">
+ <g:form controller="file" action="upload" method="post"
+ name="uploadForm" enctype="multipart/form-data"
+ target="upload_target">
+
+ <label><g:message
+ code="text.parent" />
+ ${irodsTargetCollection}</label>
+ <g:hiddenField id="collectionParentName" name="collectionParentName" value="${irodsTargetCollection}"/>
+ <br />
+ <div id="file_upload_container">
+ <input type="file" name="file">
+ <button type="button" id="upload" value="upload"
+ onclick="upload()")>Upload</button>
+ </div>
+ <div id="upload_message_area">
+ </div>
+ <table id="files"></table>
+
+ </g:form>
+ </div>
+
+ <div class="modal-footer">
+ <button type="button" id="cancelRenameButton"
+ value="cancelAdd"
+ onclick="closeUploadDialog()")><g:message code="text.cancel" /></button>
+ </div>
+
</div>
+<script>
+function closeUploadDialog() {
+ $("#uploadDialog").dialog('close');
+ $("#uploadDialog").remove();
+}
+</script>
diff --git a/idrop-web/grails-app/views/home/index.gsp b/idrop-web/grails-app/views/home/index.gsp
index 70e8fde..f511862 100644
--- a/idrop-web/grails-app/views/home/index.gsp
+++ b/idrop-web/grails-app/views/home/index.gsp
@@ -1,97 +1,82 @@
-<head>
-<meta name="layout" content="main" />
-<g:javascript library="mydrop/home" />
-<g:javascript library="mydrop/search" />
-<g:javascript library="mydrop/metadata" />
-<g:javascript library="mydrop/profile" />
-</head>
-<div id="tabs" class="wrapper clearfix"
- style="height: 820px; overflow:hidden;">
-
- <g:hiddenField name="mode" id="mode" value="${mode}"/>
- <g:hiddenField name="presetPath" id="presetPath" value="${path}"/>
-
- <ul>
- <li><a href="#browseTab"><g:message code="text.browse" /> </a></li>
- <li><a href="#searchTab"><g:message code="text.search" /> </a></li>
- <g:if test="${grailsApplication.config.idrop.config.use.userprofile==true}">
- <li><a href="#profileTab"><g:message code="text.profile" /> </a></li>
- </g:if>
- </ul>
-
-
- <div id="browseTab" style="height:100%;">
- <g:render template="/browse/browseTabContent" />
- </div><!-- browse tab -->
-
- <div id="searchTab">
-
- <div id="searchDivOuter"
- style="display: block; width: 95%; height: 90%; position: relative; overflow: hidden;"
- class="ui-layout-center">
- <!-- this will be filled in with the search results table -->
- <div id="searchTableDiv"
- style="width: 100%; height: 100%; overflow: auto;">
- <h2>
- <g:message code="heading.no.search.yet" />
- </h2>
- </div> <!-- searchTableDiv -->
- </div> <!-- searchDivOuter -->
- </div> <!-- search tab -->
-
- <g:if test="${grailsApplication.config.idrop.config.use.userprofile==true}">
- <div id="profileTab" style="height:100%;overflow:hidden;">
- <g:render template="/profile/profileTabContent" />
- </div><!-- profile tab -->
- </g:if>
-
-
-</div> <!-- tabs -->
-<script type="text/javascript">
- var dataLayout;
- var tabs;
- var globalMessageArea = "#javascript_message_area";
- $(document).ready(function() {
-
- $.ajaxSetup({
- cache : false
- });
-
- menuShown = false;
- $("#secondaryDiv").hide('slow');
- $("#secondaryDiv").width = "0%";
- menuShown = false;
- $("#mainDiv").width = "100%";
- $("#mainDivCol1").width = "100%";
- $("#mainDivCol1").removeClass();
- $("#infoDiv").resize();
-
- dataLayout = $("#dataTreeView").layout({
- applyDefaultStyles : false,
- size : "auto",
- west__minSize : 150,
- west__resizable : true
- });
-
- var mode = $("#mode").val();
- var startPath = $("#presetPath").val();
-
- if (mode == null || mode=="") {
- retrieveBrowserFirstView("detect","");
- } else {
- retrieveBrowserFirstView(mode, startPath);
- }
- tabs = $("#tabs").tabs({});
-
- tabs.bind("tabsselect", function(event, ui) {
-
- var state = {};
- // Get the id of this tab widget.
- //alert(ui.tab.hash);
- state["#tabs"] = ui.tab.hash;
- $.bbq.pushState(state);
-
- });
-
- });
-</script> \ No newline at end of file
+<head>
+<meta name="layout" content="mainNoSidebar" />
+<g:javascript library="mydrop/home" />
+</head>
+<div class="row-fluid">
+ <div class="span12">
+ <center><h1>iDrop Dashboard</h1></center>
+ </div>
+<div class="row-fluid">
+ <div class="span1 offset4" ><g:img dir="images" file="upload.png" style="margin-top:40px;" width="100" height="100"/></div>
+ <div class="span4 well"><h2>Quick upload</h2> - Use this option to quickly upload files to iRODS, automatically organized based on rules on the current grid.</div>
+</div>
+<div class="row-fluid">
+ <div class="span12">
+ <center><h1>iDrop Quick Folders</h1></center>
+ </div>
+</div>
+<g:render template="/common/browseLegend" />
+<div class="row-fluid">
+ <div class="span8 offset2">
+ <table class="table table-striped table-hover">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Action</th>
+ <th>Name</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
+ <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
+ <td>Some Name</td>
+ <td>Description text</td>
+ </tr>
+ <tr>
+ <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
+ <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
+ <td>Some Name</td>
+ <td>Description text</td>
+ </tr>
+ <tr>
+ <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
+ <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
+ <td>Some Name</td>
+ <td>Description text</td>
+ </tr>
+ <tr>
+ <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
+ <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
+ <td>Some Name</td>
+ <td>Description text</td>
+ </tr>
+ <tr>
+ <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
+ <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
+ <td>Some Name</td>
+ <td>Description text</td>
+ </tr>
+ <tr>
+ <td><g:img dir="images" file="folder_icon.png" width="20" height="20"/></td>
+ <td><i class="icon-folder-open"></i><i class="icon-upload"></i></td>
+ <td>Some Name</td>
+ <td>Description text</td>
+ </tr>
+ </tbody>
+
+ </table>
+ </div>
+</div>
+<script type="text/javascript">
+
+ $(document).ready(function() {
+
+ $.ajaxSetup({
+ cache : false
+ });
+ $("#topbarHome").addClass("active");
+
+ });
+</script>
diff --git a/idrop-web/grails-app/views/idropLite/appletLoader.gsp b/idrop-web/grails-app/views/idropLite/appletLoader.gsp
index 9745ef5..297e853 100644
--- a/idrop-web/grails-app/views/idropLite/appletLoader.gsp
+++ b/idrop-web/grails-app/views/idropLite/appletLoader.gsp
@@ -1,6 +1,6 @@
-<div id="appletMenu" class="fg-buttonset fg-buttonset-single" style="float:right">
+<div id="appletMenu" class="pull-right">
<button type="button" id="toggleMenuButton"
- class="ui-state-default ui-corner-all" value="closeIdropApplet"
+ value="closeIdropApplet"
onclick="closeApplet()")>Close iDrop Lite</button>
</div>
<div id="appletLoadDiv">
diff --git a/idrop-web/grails-app/views/layouts/basic.gsp b/idrop-web/grails-app/views/layouts/basic.gsp
index 707e79d..c5e105b 100644
--- a/idrop-web/grails-app/views/layouts/basic.gsp
+++ b/idrop-web/grails-app/views/layouts/basic.gsp
@@ -1,47 +1,33 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 //EN">
-<html>
+<!DOCTYPE html>
+<html lang="en">
<head>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><g:layoutTitle default="iDrop-web - iRODS Cloud Browser" /></title>
-<link rel="stylesheet" href="${resource(dir:'css',file:'main.css')}" />
-<link rel="stylesheet" href="${resource(dir:'css',file:'base.css')}" />
-<link rel="stylesheet" href="${resource(dir:'css',file:'style.css')}" />
-<link rel="stylesheet" href="${resource(dir:'css',file:'layout-default-latest.css')}" />
-<link rel="stylesheet" href="${resource(dir:'css',file:'jquery.fileupload-ui.css')}" />
-<link rel="stylesheet" href="${resource(dir:'css',file:'superfish.css')}" />
-<link rel="stylesheet" href="${resource(dir:'css',file:'jquery.gritter.css')}" />
-<link rel="stylesheet"
- href="${resource(dir:'css',file:'reset-fonts-grids.css')}" />
-<link rel="stylesheet" href="${resource(dir:'css',file:'start/jquery-ui-1.8.18.custom.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'bootstrap.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'jqcloud.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'layout-default-latest.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'jquery.fileupload-ui.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'superfish.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'jquery.gritter.css')}" />
+ <link rel="stylesheet" href="${resource(dir:'css',file:'overcast/jquery-ui-1.9.0.custom.css')}" />
-<link rel="shortcut icon"
- href="${resource(dir:'images',file:'favicon.ico')}" type="image/x-icon" />
-<g:layoutHead />
-<g:javascript library="jquery-1.7.1.min" />
-<g:javascript library="jquery-ui-1.8.7.custom.min" />
- <g:javascript library="jquery.hotkeys" />
- <g:javascript library="jquery.jstree" />
-<g:javascript library="jquery.jeditable.mini" />
-<g:javascript library="jquery.dataTables.min" />
-<g:javascript library="mydrop/ticket" />
-<g:javascript library="jquery.i18n.properties-min-1.0.9" />
-<g:javascript library="jqcloud-0.1.6" />
-<g:javascript library="jquery.fileupload-ui" />
-<g:javascript library="jquery.fileupload" />
-<g:javascript library="jquery.media" />
-<g:javascript library="mydrop/lingo_common" />
-<g:javascript library="mydrop/main" />
-<g:javascript library="jquery-ui-13" />
-<g:javascript library="jquery.blockUI" />
-<g:javascript library="jquery.ba-bbq.min" />
-<g:javascript library="jquery.layout.min-1.3.0" />
-<g:javascript library="jquery-ui-13" />
-<g:javascript library="jquery.tools.min" />
-<g:javascript library="mydrop/shopping_cart" />
-<g:javascript library="mydrop/user" />
-<g:javascript library="galleria-1.2.6" />
-<g:javascript library="jquery.gritter.min" />
-<g:javascript library="jquery.opacityrollover" />
-<g:javascript library="superfish" />
+ <link rel="shortcut icon"
+ href="${resource(dir:'images',file:'favicon.ico')}" type="image/x-icon" />
+ <g:layoutHead />
+ <g:javascript library="jquery-1.7.2.min" />
+ <g:javascript library="jquery-ui-1.8.7.custom.min" />
+ <g:javascript library="bootstrap.min" />
+
+ <g:javascript library="jquery.i18n.properties-min-1.0.9" />
+ <g:javascript library="mydrop/lingo_common" />
+ <g:javascript library="mydrop/main" />
+ <g:javascript library="jquery-ui-13" />
+ <g:javascript library="jquery.blockUI" />
+ <g:javascript library="jquery.ba-bbq.min" />
+ <g:javascript library="jquery-ui-13" />
+ <g:javascript library="jquery.tools.min" />
+ <g:javascript library="jquery.gritter.min" />
+ <g:javascript library="jquery.opacityrollover" />
<!-- preserve the application context as a js variable for use in AJAX callbacks -->
<script type="text/javascript">
context = "${request.contextPath}";
@@ -85,12 +71,10 @@
</script>
</head>
-<body style="height:100%;">
-<div id="hd"><!-- PUT MASTHEAD CODE HERE -->
+<body>
<div id="bannercontainer">
<!-- image banner -->
</div>
-</div>
<div id="bd" style="height:100%;">
<div id="defaultDialogDiv"><!-- default for general jquery dialogs --></div>
<div id="yui-main" style="height:100%;">
diff --git a/idrop-web/grails-app/views/layouts/main.gsp b/idrop-web/grails-app/views/layouts/main.gsp
index 3be6a05..2cc23ca 100644
--- a/idrop-web/grails-app/views/layouts/main.gsp
+++ b/idrop-web/grails-app/views/layouts/main.gsp
@@ -1,48 +1,7 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 //EN">
-<html>
+<!DOCTYPE html>
+<html lang="en">
<head>
- <title><g:layoutTitle default="iDrop-web - iRODS Cloud Browser" /></title>
- <link rel="stylesheet" href="${resource(dir:'css',file:'main.css')}" />
- <link rel="stylesheet" href="${resource(dir:'css',file:'base.css')}" />
- <link rel="stylesheet" href="${resource(dir:'css',file:'style.css')}" />
- <link rel="stylesheet" href="${resource(dir:'css',file:'jqcloud.css')}" />
- <link rel="stylesheet" href="${resource(dir:'css',file:'layout-default-latest.css')}" />
- <link rel="stylesheet" href="${resource(dir:'css',file:'jquery.fileupload-ui.css')}" />
- <link rel="stylesheet" href="${resource(dir:'css',file:'superfish.css')}" />
- <link rel="stylesheet" href="${resource(dir:'css',file:'jquery.gritter.css')}" />
- <link rel="stylesheet"
- href="${resource(dir:'css',file:'reset-fonts-grids.css')}" />
- <link rel="stylesheet" href="${resource(dir:'css',file:'start/jquery-ui-1.8.18.custom.css')}" />
-
- <link rel="shortcut icon"
- href="${resource(dir:'images',file:'favicon.ico')}" type="image/x-icon" />
- <g:layoutHead />
- <g:javascript library="jquery-1.7.2.min" />
- <g:javascript library="jquery-ui-1.8.7.custom.min" />
- <g:javascript library="jquery.hotkeys" />
- <g:javascript library="jquery.jstree" />
- <g:javascript library="jquery.jeditable.mini" />
- <g:javascript library="jquery.dataTables.min" />
- <g:javascript library="mydrop/ticket" />
- <g:javascript library="jquery.i18n.properties-min-1.0.9" />
- <g:javascript library="jqcloud-0.1.6" />
- <g:javascript library="jquery.fileupload-ui" />
- <g:javascript library="jquery.fileupload" />
- <g:javascript library="jquery.media" />
- <g:javascript library="mydrop/lingo_common" />
- <g:javascript library="mydrop/main" />
- <g:javascript library="jquery-ui-13" />
- <g:javascript library="jquery.blockUI" />
- <g:javascript library="jquery.ba-bbq.min" />
- <g:javascript library="jquery.layout-latest.min" />
- <g:javascript library="jquery-ui-13" />
- <g:javascript library="jquery.tools.min" />
- <g:javascript library="mydrop/shopping_cart" />
- <g:javascript library="mydrop/user" />
- <g:javascript library="galleria-1.2.6" />
- <g:javascript library="jquery.gritter.min" />
- <g:javascript library="jquery.opacityrollover" />
- <g:javascript library="superfish" />
+ <g:render template="/common/cssAndJs"/>
<!-- preserve the application context as a js variable for use in AJAX callbacks -->
<script type="text/javascript">
context = "${request.contextPath}";
@@ -80,31 +39,29 @@
</script>
</head>
<body style="height:100%;overflow:visible;">
- <div id="hd"><!-- PUT MASTHEAD CODE HERE -->
- <g:render template="/common/topbar"/>
- <g:render template="/common/messages"/>
- </div>
- <div id="bd" style="height:100%;">
- <div id="defaultDialogDiv"><!-- default for general jquery dialogs --></div>
- <div id="yui-main" style="height:100%;">
- <div class="yui-b" style="height:100%;">
- <div id="mainDiv" class="yui-ge" style="height:100%;">
- <div id="mainDivCol1" class="yui-u first" style="height:100%;"><!-- PUT MAIN COLUMN 1 CODE HERE -->
- <g:layoutBody />
- </div>
- <div id="secondaryDiv" class="yui-u" style="height:100%;"><!-- PUT MAIN COLUMN 2 CODE HERE -->
- <g:ifAuthenticated>
- <g:render template="/common/secondarymain"/>
- </g:ifAuthenticated>
-
- </div>
- </div>
- </div>
- </div>
+
+ <g:render template="/common/topbar"/>
+ <div id="defaultDialogDiv"><!-- default for general jquery dialogs --></div>
+ <div class="container-fluid">
+
+ <div class="row-fluid">
+ <div id="mainDivCol1" class="span10"><!-- PUT MAIN COLUMN 1 CODE HERE -->
+ <g:layoutBody />
+ </div>
+ <div id="secondaryDiv" class="span2"><!-- PUT MAIN COLUMN 2 CODE HERE -->
+ <g:ifAuthenticated>
+ <g:render template="/common/secondarymain"/>
+ </g:ifAuthenticated>
+ </div>
+ </div>
- </div>
- <div id="ft"><!-- PUT FOOTER CODE HERE -->
- <g:render template="/common/footer" />
- </div>
+ <div class="row-fluid"><!-- PUT FOOTER CODE HERE -->
+ <div class="span12">
+ <g:render template="/common/footer" />
+ </div>
+ </div>
+
+ </div>
+
</body>
</html> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/layouts/mainNoSidebar.gsp b/idrop-web/grails-app/views/layouts/mainNoSidebar.gsp
new file mode 100644
index 0000000..f7bdced
--- /dev/null
+++ b/idrop-web/grails-app/views/layouts/mainNoSidebar.gsp
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <g:render template="/common/cssAndJs"/>
+ <!-- preserve the application context as a js variable for use in AJAX callbacks -->
+ <script type="text/javascript">
+ context = "${request.contextPath}";
+ context = context.replace("/null", "");
+ scheme = "${request.scheme}";
+ host = "${request.localName}";
+ port = "${request.localPort}";
+
+ $(function(){
+ // Keep a mapping of url-to-container for caching purposes.
+ /* var cache = {
+ // If url is '' (no fragment), display this div's content.
+ '': $('.bbq-default')
+ };*/
+
+
+ // Bind an event to window.onhashchange that, when the history state changes,
+ // gets the url from the hash and displays either our cached content or fetches
+ // new content to be displayed.
+ /* $(window).bind( 'hashchange', function(e) {
+
+ processStateChange( $.bbq.getState());
+
+ });*/
+
+ jQuery.i18n.properties({
+ name:'messages',
+ path:'js/bundles/',
+ mode:'both'
+ });
+
+
+ });
+
+ </script>
+</head>
+<body style="height:100%;padding-top: 40px;">
+
+ <g:render template="/common/topbar"/>
+ <div id="defaultDialogDiv"><!-- default for general jquery dialogs --></div>
+ <div class="container-fluid">
+ <g:layoutBody />
+ </div>
+ <footer><g:render template="/common/footer" /></footer>
+</body>
+</html> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/login/login.gsp b/idrop-web/grails-app/views/login/login.gsp
index 36f6dfc..bacffe7 100644
--- a/idrop-web/grails-app/views/login/login.gsp
+++ b/idrop-web/grails-app/views/login/login.gsp
@@ -20,7 +20,7 @@
<div id="normalLoginWrapper">
<!--begin-normalLogin-->
- <div id="normalLoginForm" class="roundedContainer" style="float:left;clear:both;background:grey">
+ <div id="normalLoginForm" class="roundedContainer" style="width:auto;height:auto;margin-top:100px;clear:both;background:grey">
<g:form class="normalLogin" id="normalLogin" method="post" controller="login" action="authenticate">
diff --git a/idrop-web/grails-app/views/metadata/metadataDetails.gsp b/idrop-web/grails-app/views/metadata/metadataDetails.gsp
index c9e7c01..e7e1aa2 100644
--- a/idrop-web/grails-app/views/metadata/metadataDetails.gsp
+++ b/idrop-web/grails-app/views/metadata/metadataDetails.gsp
@@ -1,41 +1,47 @@
-<h2>
- <g:message code="heading.metadata" />
-</h2>
-<div id="detailsTopSection" class="box">
+<h4><g:message code="text.metadata" /></h4>
- <div id="detailsToolbar" class="fg-toolbar ui-widget-header">
- <div id="detailsMenu" class="fg-buttonset fg-buttonset-multi"
+<g:hiddenField name='metadataDetailsAbsPath' id='metadataDetailsAbsPath' value='${absPath}'/>
+
+ <!-- div for metadata table -->
+</div>
+
+
+<div id="metadataMessageArea">
+ <!-- -->
+</div>
+
+<div id="metadataDialogArea">
+ <!-- area for generating dialogs -->
+</div>
+
+<div id="metadataDetailsArea">
+
+ <div class="alert alert-info">
+ <g:message code="heading.metadata" />
+ </div>
+
+
+ <div id="detailsToolbar" class="well">
+ <div id="detailsMenu"
style="float: left, clear : both;">
<button type="button" id="addMetadataButton"
- class="ui-state-default ui-corner-all" value="addMetadata"
+ value="addMetadata"
onclick="prepareMetadataDialog()")>
<g:message code="default.button.create.label" />
</button>
<button type="button" id="deleteMetadataButton"
- class="ui-state-default ui-corner-all" value="deleteMetadata"
+ value="deleteMetadata"
onclick="deleteMetadata()")>
<g:message code="default.button.delete.label" />
</button>
<button type="button" id="reloadAclButton"
- class="ui-state-default ui-corner-all" value="reloadMetadata"
+ value="reloadMetadata"
onclick="reloadMetadataDetailsTable()")>
<g:message code="default.button.reload.label" />
</button>
</div>
</div>
- <g:hiddenField name='metadataDetailsAbsPath' id='metadataDetailsAbsPath' value='${absPath}'/>
-
- <div id="metadataMessageArea">
- <!-- -->
- </div>
-
- <div id="metadataDialogArea">
- <!-- area for generating dialogs -->
- </div>
-
- <div id="metadataTableDiv">
- <!-- div for metadata table -->
- </div>
+ <div id="metadataTableDiv"><!-- table goes here --></div>
</div>
<script type="text/javascript">
@@ -46,7 +52,7 @@
if (path == null) {
path = baseAbsPath;
}
- reloadAclTable(path);
+
$(function() {
diff --git a/idrop-web/grails-app/views/metadata/metadataDialog.gsp b/idrop-web/grails-app/views/metadata/metadataDialog.gsp
index 17db110..86fa644 100644
--- a/idrop-web/grails-app/views/metadata/metadataDialog.gsp
+++ b/idrop-web/grails-app/views/metadata/metadataDialog.gsp
@@ -1,4 +1,7 @@
-<div id="metadataDialogDiv" class="roundedContainer">
+ <div class="alert alert-info">
+ <g:message code="heading.metadata.details" />
+</div>
+<div id="metadataDialogDiv" >
<div id="metadataDialogMessageArea" style="width:90%;">
<g:renderErrors bean="${cmd}" />
</div>
@@ -15,14 +18,14 @@
<label for="unit"><g:message code="text.unit" />:</label>
<g:textField name="unit" value="${unit}"/>
<br />
- <div id="detailsDialogToolbar" class="fg-toolbar ui-widget-header">
- <div id="detailsDialogMenu" class="fg-buttonset fg-buttonset-multi"
+ <div id="detailsDialogToolbar" class="well">
+ <div id="detailsDialogMenu"
style="float: left, clear : both; width: 90%;">
<button type="button" id="updateMetadataDetailButton"
- class="ui-state-default ui-corner-all" value="addMetadata"
+ value="addMetadata"
onclick="submitMetadataDialog()")><g:message code="default.button.update.label" /></button>
<button type="button" id="cancelAddMetadataButton"
- class="ui-state-default ui-corner-all" value="cancelAdd"
+ value="cancelAdd"
onclick="closeMetadataDialog()")><g:message code="text.cancel" /></button>
</div>
</div>
diff --git a/idrop-web/grails-app/views/profile/_profileTabContent.gsp b/idrop-web/grails-app/views/profile/_profileTabContent.gsp
deleted file mode 100644
index 32d6fab..0000000
--- a/idrop-web/grails-app/views/profile/_profileTabContent.gsp
+++ /dev/null
@@ -1,19 +0,0 @@
-<div id="profileTabContent" class="clearfix" style="display:block;width:100%;height:98%;">
- <h1><g:message code="text.profile.header"/></h1>
- <div id="profileToolbar" style="display:block;">
- <g:render template="/profile/profileToolbar" />
- </div> <!-- profileToolbar -->
- <div id="profileDialogArea"><!-- div for optional profile dialogs -->
- </div>
- <div id="profileDataArea" style="clear:both;">
- <!-- area for profile data -->
- </div>
-</div>
-<script>
-
-$(function() {
- loadProfileData();
-});
-
-
-</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/profile/changePasswordDialog.gsp b/idrop-web/grails-app/views/profile/changePasswordDialog.gsp
index 29564c3..642e108 100644
--- a/idrop-web/grails-app/views/profile/changePasswordDialog.gsp
+++ b/idrop-web/grails-app/views/profile/changePasswordDialog.gsp
@@ -28,8 +28,8 @@
</div>
<div>
<div></div>
- <div><button type="button" class="ui-state-default ui-corner-all" id="changePassword" value="changePassword" onclick="submitChangePassword()"><g:message code="text.update"/></button>
- <button type="button" class="ui-state-default ui-corner-all" id="cancelChangePassword" value="cancelChangePassword" onclick="closePasswordDialog()"><g:message code="text.cancel"/></button>
+ <div><button type="button" id="changePassword" value="changePassword" onclick="submitChangePassword()"><g:message code="text.update"/></button>
+ <button type="button" id="cancelChangePassword" value="cancelChangePassword" onclick="closePasswordDialog()"><g:message code="text.cancel"/></button>
</div>
</div>
</div>
diff --git a/idrop-web/grails-app/views/profile/index.gsp b/idrop-web/grails-app/views/profile/index.gsp
new file mode 100644
index 0000000..1863199
--- /dev/null
+++ b/idrop-web/grails-app/views/profile/index.gsp
@@ -0,0 +1,28 @@
+<head>
+<meta name="layout" content="mainNoSidebar" />
+<g:javascript library="mydrop/home" />
+<g:javascript library="mydrop/profile" />
+</head>
+<div id="profileTabContent" >
+ <h1><g:message code="text.profile.header"/></h1>
+ <div id="profileToolbar" style="display:block;">
+ <g:render template="/profile/profileToolbar" />
+ </div> <!-- profileToolbar -->
+ <div id="profileDialogArea"><!-- div for optional profile dialogs -->
+ </div>
+ <div id="profileDataArea" style="clear:both;">
+ <!-- area for profile data -->
+ </div>
+ </div>
+</div>
+<script>
+
+$(function() {
+ loadProfileData();
+ $("#topbarPreferences").addClass("active");
+
+
+});
+
+
+</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/profile/profileData.gsp b/idrop-web/grails-app/views/profile/profileData.gsp
index 77e957b..0c0443e 100644
--- a/idrop-web/grails-app/views/profile/profileData.gsp
+++ b/idrop-web/grails-app/views/profile/profileData.gsp
@@ -1,28 +1,38 @@
-<div id="container" style="height:100%;width:100%;">
- <div>
- <div style="width:15%;"><label><g:message code="text.user"/></label></div>
- <div>${userProfile.userName}</div>
- </div>
- <div>
- <div style="width:15%;"><label><g:message code="text.nickname"/></label></div>
- <div><g:textField id="nickName" name="nickName"
- value="${userProfile.userProfilePublicFields.nickName}" />
- </div>
- </div>
- <div>
- <div style="width:15%;"><label><g:message code="text.personal.blurb"/></label></div>
- <div><g:textArea id="description" name="description" rows="3" cols="40"
- value="${userProfile.userProfilePublicFields.description}" /></div>
- </div>
- <div>
- <div style="width:15%;"><label><g:message code="text.email"/></label></div>
- <div><g:textField id="email" name="email"
- value="${userProfile.userProfileProtectedFields.mail}" /></div>
- </div>
- <div>
- <div></div>
- <div><button type="button" class="ui-state-default ui-corner-all" id="updateProfile" value="updateProfile" onclick="updateProfile()"><g:message code="text.update"/></button>
- <button type="button" class="ui-state-default ui-corner-all" id="reloadProfile" value="reloadProfile" onclick="loadProfileData()"><g:message code="text.cancel"/></button>
- </div>
- </div>
-</div> \ No newline at end of file
+<div class="row-fluid">
+ <div class="span12">
+ <form class="form-horizontal">
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.user"/></label>
+ <div class="controls">
+ ${userProfile.userName}
+ </div>
+ </div>
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.nickname"/></label>
+ <div class="controls"><g:textField id="nickName" name="nickName" value="${userProfile.userProfilePublicFields.nickName}" /></div>
+ </div>
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.personal.blurb"/></label>
+ <div class="controls">
+ <g:textArea id="description" name="description" rows="3" cols="40" value="${userProfile.userProfilePublicFields.description}" />
+ </div>
+ </div>
+ <div class="control-group">
+ <label class="control-label"><g:message code="text.email"/></label>
+ <div class="controls">
+ <g:textField id="email" name="email"
+ value="${userProfile.userProfileProtectedFields.mail}" />
+ </div>
+ </div>
+ <div class="control-group">
+ <div class="controls">
+ <button type="button" id="updateProfile" value="updateProfile" onclick="updateUserProfile()"><g:message code="text.update"/></button>
+ <button type="button" id="reloadProfile" value="reloadProfile" onclick="loadProfileData()"><g:message code="text.cancel"/></button>
+ </div>
+ </div>
+
+ </div>
+ </form>
+ </div>
+</div>
+ <!-- updateProfile() --> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/sharing/aclDetails.gsp b/idrop-web/grails-app/views/sharing/aclDetails.gsp
index 752c9a4..520663d 100644
--- a/idrop-web/grails-app/views/sharing/aclDetails.gsp
+++ b/idrop-web/grails-app/views/sharing/aclDetails.gsp
@@ -1,20 +1,28 @@
-<h2><g:message code="heading.sharing" /></h2>
+<h4><g:message code="text.permissions" /></h4>
+
<div id="aclDialogArea"><!-- area for generating dialogs --></div>
<div id="aclDetailsArea">
+ <div class="alert alert-info">
+ <g:message code="heading.permissions" />
+ </div>
<div id="detailsTopSection" >
- <div id="detailsToolbar" class="fg-toolbar ui-widget-header">
- <div id="detailsMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: left, clear: both;">
- <button type="button" id="addAclButton"
- class="ui-state-default ui-corner-all" value="addAcl"
- onclick="prepareAclDialog()")><g:message code="default.button.create.label" /></button>
- <button type="button" id="deleteAclButton"
- class="ui-state-default ui-corner-all" value="deleteAcl"
- onclick="deleteAcl()")><g:message code="default.button.delete.label" /></button>
- <button type="button" id="reloadAclButton"
- class="ui-state-default ui-corner-all" value="reloadAcl"
- onclick="reloadAclTable(selectedPath)")><g:message code="default.button.reload.label" /></button>
+ <div id="detailsToolbar" class="well btn-toolbar">
+ <div id="detailsMenu">
+ <div class="btn-group">
+ <button type="button" id="addAclButton"
+ value="addAcl"
+ onclick="prepareAclDialog()")><g:message code="default.button.create.label" /></button>
+ <button type="button" id="deleteAclButton"
+ value="deleteAcl"
+ onclick="deleteAcl()")><g:message code="default.button.delete.label" /></button>
+ <button type="button" id="reloadAclButton"
+ value="reloadAcl"
+ onclick="reloadAclTable(selectedPath)")><g:message code="default.button.reload.label" /></button>
+ </div>
+ <div class="btn-group">
+ <button onclick="makePublicLinkAtPath()"><g:message code="text.create.public.link" /></button>
+ </div>
</div>
</div>
</div>
@@ -34,4 +42,70 @@
reloadAclTable(path);
});
+ /*
+ * Cause a dialog to appear that has a link for a public path for the current path
+ */
+ function makePublicLinkAtPath() {
+ $("#aclDialogArea").html();
+ var path = selectedPath;
+ if (selectedPath == null) {
+ return false;
+ }
+
+ // show the public link dialog
+ var url = "/browse/preparePublicLinkDialog";
+ var params = {
+ absPath : path
+ }
+
+ lcSendValueWithParamsAndPlugHtmlInDiv(url, params, "", function(data) {
+ fillInPublicLinkDialog(data);
+ });
+
+ }
+
+
+ /**
+ * Close the public link dialog
+ */
+ function closePublicLinkDialog() {
+
+ $("#aclDialogArea").hide("slow");
+ $("#aclDialogArea").html();
+ var path = $("#publicLinkDialogAbsPath").val();
+ reloadAclTable(path);
+ $("#aclDetailsArea").show("slow");
+ }
+
+ /**
+ * Grant public (anonymous access) via the public link dialog. Submit dialog and present the response
+ */
+ function grantPublicLink() {
+ var path = $("#publicLinkDialogAbsPath").val();
+ showBlockingPanel();
+ if (path == null) {
+ setMessage(jQuery.i18n.prop('msg.path.missing'));
+ unblockPanel();
+ }
+
+ var params = {
+ absPath : path
+ }
+
+ lcSendValueViaPostAndCallbackHtmlAfterErrorCheck("/browse/updatePublicLinkDialog", params, null, "#aclDialogArea", null, null);
+ unblockPanel();
+
+ }
+
+
+ /*
+ *Given the contents of the 'create public link' dialog,
+ */
+ function fillInPublicLinkDialog(data) {
+ $("#aclDetailsArea").hide("slow");
+ $("#aclDialogArea").html(data);
+ $("#aclDialogArea").show("slow");
+ }
+
+
</script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/sharing/aclDialog.gsp b/idrop-web/grails-app/views/sharing/aclDialog.gsp
index 2592d39..c4a9e4f 100644
--- a/idrop-web/grails-app/views/sharing/aclDialog.gsp
+++ b/idrop-web/grails-app/views/sharing/aclDialog.gsp
@@ -1,8 +1,10 @@
-<div id="aclDialogDiv">
+<div class="alert alert-info">
+ <g:message code="heading.enter.user.or.search" />
+</div>
+<div id="aclDialogDiv" class="alert alert-info">
+
+
-<div class="roundedContainer" style="margin:20px;">
- <h2 ><g:message code="heading.enter.user.or.search" /></h2>
- </div>
<form id="userDialogForm" name="userFormForm">
<fieldset id="verticalForm">
@@ -16,7 +18,7 @@
<g:textField id="userName" name="userName" value="${userName}" />
<br/>
<button type="button" id="lookUpUserNames"
- class="ui-state-default ui-corner-all" value="lookUpUserNames"
+ value="lookUpUserNames"
onclick="lookUpUserNameFromACLDialogClicked()")><g:message code="text.search" /></button>
<br/>
@@ -26,14 +28,14 @@
<!-- div for sharing pick list -->
</div>
<br/>
- <div id="detailsDialogToolbar" class="fg-toolbar ui-widget-header">
- <div id="detailsDialogMenu" class="fg-buttonset fg-buttonset-multi"
+ <div id="detailsDialogToolbar" class="well">
+ <div id="detailsDialogMenu"
style="float: left, clear : both; width: 90%;">
<button type="button" id="updateAclDetailButton"
- class="ui-state-default ui-corner-all" value="addAcl"
- onclick="submitAclDialog()")><g:message code="default.button.save.label" /></button>
+ value="addAcl"
+ onclick="submitAclDialog()")><g:message code="text.update" /></button>
<button type="button" id="cancelAddAclButton"
- class="ui-state-default ui-corner-all" value="cancelAdd"
+ value="cancelAdd"
onclick="closeAclAddDialog()")><g:message code="default.button.cancel.label" /></button>
</div>
</div>
diff --git a/idrop-web/grails-app/views/browse/cartDetails.gsp b/idrop-web/grails-app/views/shoppingCart/cartDetails.gsp
index a45a4bb..a45a4bb 100644
--- a/idrop-web/grails-app/views/browse/cartDetails.gsp
+++ b/idrop-web/grails-app/views/shoppingCart/cartDetails.gsp
diff --git a/idrop-web/grails-app/views/shoppingCart/index.gsp b/idrop-web/grails-app/views/shoppingCart/index.gsp
new file mode 100644
index 0000000..642fdbc
--- /dev/null
+++ b/idrop-web/grails-app/views/shoppingCart/index.gsp
@@ -0,0 +1,45 @@
+<head>
+ <meta name="layout" content="mainNoSidebar" />
+ <g:javascript library="mydrop/home" />
+ <g:javascript library="mydrop/shoppingCart" />
+</head>
+<div id="cartTopSection">
+ <div id="cartToggleDiv">
+ <div id="cartToggleDiv" class="row">
+ <div class="span12">
+ <div id="cartToolbar" class="btn-toolbar" >
+
+ <button type="button" id="clearCartButton"
+ onclick="clearCart()")><g:message code="default.button.clear.label" /></button>
+ <button type="button" id="deleteFromCartButton"
+ value="deleteFromCart"
+ onclick="deleteFromCart()")><g:message code="default.button.delete.label" /></button>
+ <button type="button" id="reloadCartButton"
+ value="reloadCart"
+ onclick="refreshCartFiles()")><g:message code="default.button.reload.label" /></button>
+ <button type="button" id="checkout"
+ value="checkout"
+ onclick="checkOut()")><g:message code="text.check.out" /></button>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="row">
+ <div id="cartTableDiv" class="span12">
+ <!-- cart table -->
+ </div>
+ </div>
+</div>
+
+<div id="cartAppletDiv">
+<!-- empty div --></div>
+</div>
+<script type="text/javascript">
+
+ $(function() {
+ $("#topbarShoppingCart").addClass("active");
+ refreshCartFiles();
+ });
+
+ </script> \ No newline at end of file
diff --git a/idrop-web/grails-app/views/ticket/ticketDetails.gsp b/idrop-web/grails-app/views/ticket/ticketDetails.gsp
index 50d82c5..2d3384c 100644
--- a/idrop-web/grails-app/views/ticket/ticketDetails.gsp
+++ b/idrop-web/grails-app/views/ticket/ticketDetails.gsp
@@ -1,29 +1,32 @@
-<h2><g:message code="text.tickets" /></h2>
+<h4><g:message code="text.tickets" /></h4>
+ <div id="ticketDialogArea"><!-- area for generating dialogs --></div>
+ <div id="ticketMessageArea"><!-- area for messages --></div>
+
<g:javascript library="jquery.gchart.min" />
-<div id="ticketDialogArea"><!-- area for generating dialogs --></div>
-<div id="ticketMessageArea"><!-- area for messages --></div>
<div id="ticketDetailsTableArea">
- <div class="fg-toolbar ui-widget-header" id="ticketDetailsTopSection" >
- <div id="detailsMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: left, clear : both;">
+ <div class="alert alert-info">
+ <g:message code="heading.tickets" />
+ </div>
+ <div class="well" id="ticketDetailsTopSection" >
+ <div id="detailsMenu"">
<button type="button" id="addTicketButton"
- class="ui-state-default ui-corner-all" value="addTicket"
+ value="addTicket"
onclick="prepareTicketDetailsDialog()")>
<g:message code="default.button.create.label" />
</button>
<button type="button" id="editTicketButton"
- class="ui-state-default ui-corner-all" value="editTicket"
+ value="editTicket"
onclick="editTicketDialog()")>
<g:message code="default.button.edit.label" />
</button>
<button type="button" id="deleteTicketButton"
- class="ui-state-default ui-corner-all" value="deleteTicket"
+ value="deleteTicket"
onclick="deleteTicket()")>
<g:message code="default.button.delete.label" />
</button>
<button type="button" id="reloadTickets"
- class="ui-state-default ui-corner-all" value="reloadTickets"
+ value="reloadTickets"
onclick="reloadTickets()")>
<g:message code="default.button.reload.label" />
</button>
diff --git a/idrop-web/grails-app/views/ticket/ticketPulldown.gsp b/idrop-web/grails-app/views/ticket/ticketPulldown.gsp
index 6831e6c..f931b2a 100644
--- a/idrop-web/grails-app/views/ticket/ticketPulldown.gsp
+++ b/idrop-web/grails-app/views/ticket/ticketPulldown.gsp
@@ -1,4 +1,4 @@
-<div id="ticketPulldownDiv" style="overflow:visible;width:auto;">
+<div id="ticketPulldownDiv" class="alert alert-info">
<g:if test="${flash.error}">
<script>
$(function() { setErrorMessage("${flash.error}"); });
@@ -42,7 +42,7 @@
<div>
<div style="width:15%;"><label><g:message code="text.ticket.string" />:</label></div>
<div><g:textField id="ticketString" name="ticketString" width="20em"
- value="${ticket.ticketString}" /></div>
+ value="${ticket.ticketString}" placeholder="Enter a ticket key or let iRODS generate one"/></div>
</div>
<div>
<div style="width:15%;"><label><g:message code="text.ticket.type" />:</label></div>
@@ -103,13 +103,13 @@
<div><!-- pie chart row -->
- <div style="width:33%;height:auto;" class="roundedContainer">
+ <div style="width:33%;height:auto;" class="well">
<!-- pie chart cell usage -->
<div id="ticketUsesChart" style="height:auto;width:auto;"></div>
<label><g:message code="text.ticket.uses.count" /></label><br/>${ticket.usesCount}<br/>
<label><g:message code="text.ticket.uses.limit" /></label><br/><g:textField id="usesLimit" name="usesLimit" value="${ticket.usesLimit}" />
</div>
- <div style="width:33%;height:auto;" class="roundedContainer">
+ <div style="width:33%;height:auto;" class="well">
<!-- pie chart cell write files -->
<div id="ticketWriteFilesChart" style="height:auto;width:auto%;" ></div>
<label><g:message code="text.ticket.file.count" /></label><br/>${ticket.writeFileCount}<br/>
@@ -117,7 +117,7 @@
<g:textField id="writeFileLimit" name="writeFileLimit" value="${ticket.writeFileLimit}" />
</div>
- <div style="width:33%;height:auto;" class="roundedContainer">
+ <div style="width:33%;height:auto;" class="well">
<!-- pie chart cell write bytes -->
<div id="ticketWriteBytesChart" style="height:auto;width:auto;"></div>
<label><g:message code="text.ticket.byte.count" /></label><br/>${ticket.writeByteCount}<br/>
@@ -129,26 +129,25 @@
</div> <!-- pie chart table end -->
<g:if test="${ticket.isDialog}">
- <div id="detailsDialogMenu" class="fg-buttonset fg-buttonset-multi"
- style="float: left, clear : both; width: 90%;">
+ <div id="detailsDialogMenu"
+ class="pull-right">
<button type="button" id="updateTicketDetailButton"
- class="ui-state-default ui-corner-all" value="update Ticket"
- onclick="submitTicketDialog()")><g:message code="default.button.save.label" /></button>
+ value="update Ticket"
+ onclick="submitTicketDialog()")><g:message code="text.update" /></button>
<button type="button" id="cancelAddTicketButton"
- class="ui-state-default ui-corner-all" value="cancelAdd"
+ value="cancelAdd"
onclick="closeTicketDialog()")><g:message code="default.button.cancel.label" /></button>
</div>
-
</g:if>
<g:else>
- <div id="detailsDialogMenu" class="fg-buttonset fg-buttonset-multi"
- style="width: auto;">
+ <div id="detailsDialogMenu" class="well pull-right"
+ >
<button type="button" id="updateTicketPulldownButton"
- class="ui-state-default ui-corner-all"
- onclick="updateTicketFromPulldown()")><g:message code="default.button.save.label" /></button>
+
+ onclick="updateTicketFromPulldown()")><g:message code="text.update" /></button>
<button type="button" id="cancelTicketPulldownButton"
- class="ui-state-default ui-corner-all"
+
onclick="cancelTicketFromPulldown()")><g:message code="default.button.cancel.label" /></button>
</div>
diff --git a/idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp b/idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp
index 8c893d5..dd63788 100644
--- a/idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp
+++ b/idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp
@@ -26,7 +26,6 @@
<div>
<div style="width:20%;"><label><g:message code="text.actions" />:</label></div>
<div><button type="button" id="uploadToCollectionButton"
- class="ui-state-default ui-corner-all"
onclick="uploadToCollectionButton()")><g:message code="text.upload" /></button></div>
</div>
</div>
diff --git a/idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp b/idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp
index 7383840..2a296cb 100644
--- a/idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp
+++ b/idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp
@@ -25,7 +25,6 @@
<div>
<div style="width:20%;"><label><g:message code="text.actions" />:</label></div>
<div><button type="button" id="downloadDataObjectButton"
- class="ui-state-default ui-corner-all"
onclick="downloadDataObjectButton()")><g:message code="text.download" /></button></div>
</div>
</div>
diff --git a/idrop-web/grails-app/views/user/index.gsp b/idrop-web/grails-app/views/user/index.gsp
index e2f14b4..5517ac8 100644
--- a/idrop-web/grails-app/views/user/index.gsp
+++ b/idrop-web/grails-app/views/user/index.gsp
@@ -1,6 +1,6 @@
<div id="userTopSection" class="box" style="height:8%;">
<div id="userPopupDialogArea"><!-- empty div for user popup dialogs --></div>
- <div id="searchMenu" class="fg-buttonset fg-buttonset-multi"
+ <div id="searchMenu"
style="float: left, clear:both; margin: 5px;">
<label for=""><g:message code="heading.user.search" /></label>
@@ -11,7 +11,7 @@
<input id="userSearchTerm" type="text" name="userSearchTerm" />
<button type="button" id="searchUser"
- class="ui-state-default ui-corner-all" value="searchUser"
+ value="searchUser"
onclick="searchUsers()")>
<g:message code="text.search" />
</button>
diff --git a/idrop-web/release_notes.txt b/idrop-web/release_notes.txt
index d305307..7eda236 100644
--- a/idrop-web/release_notes.txt
+++ b/idrop-web/release_notes.txt
@@ -1,12 +1,11 @@
*'''Project''': idrop-web
-*'''Date''': 10/23/2012
-*'''Release Version''': 1.0.2-SNAPSHOT
-*'''git tag''': development branch
+*'''Date''': 02/13/2013
+*'''Release Version''': 2.0.0-beta1
+*'''git tag''': 2.0.0-beta1
==News==
-This is a release of iDrop web version 1.0.2
-
+This is a release of iDrop web with the version 2.0 redesign work
==Requirements==
@@ -17,17 +16,6 @@ This is a release of iDrop web version 1.0.2
Note that the following bug and feature requests are logged in GForge with related commit information [[https://code.renci.org/gf/project/irodsidrop/tracker/]]
==Bug Fixes==
-* [#959] firefox browse div float error
-
-* [#950] unable to browse to location message in idrop web tree for new safari/mac
-** temp catch of icon assignment added as shim in jstree javascript
-
-* [#990] update user profile i18n message missing
-
-* [#986] hit home in browse tree causes error message when timed out
-** fixed lingo-common method that handles json call to check for continue
-
-*[#1013] null appended to url path in browse view download links
*[#1028] upload mac opera shows javascript exception in idrop web v2
** added a 'no data available' display in the browse details panel instead of double notifications using the 'growler' pop up. Errors tend to happen in the tree
@@ -38,16 +26,6 @@ the secondary exception is muted.
**work in progress, adding additional logging
==Features==
-
-* [#922] User Profile Management
-** added profile management tab, including ability to change password by user
-
-* [#962] missing file icon in info view for data objects
-Fixed data object info to include icon and be clearer about file versus collection
-
-*[#1023] add Version class in jargon-core
-**Added iDrop web and Jargon version numbers in footer
-
-*Updated Grails version to version 2.1.0
-
-*Removed delete and rename buttons from browse details view
+[#984] iDrop web '2.0' redesign effort
+** switched to twitter bootstrap model
+** refactoring and simplification of GUI
diff --git a/idrop-web/test/unit/org/irods/mydrop/controller/BrowseControllerTests.groovy b/idrop-web/test/unit/org/irods/mydrop/controller/BrowseControllerTests.groovy
index dbfb37d..3b5f327 100644
--- a/idrop-web/test/unit/org/irods/mydrop/controller/BrowseControllerTests.groovy
+++ b/idrop-web/test/unit/org/irods/mydrop/controller/BrowseControllerTests.groovy
@@ -4,8 +4,6 @@ package org.irods.mydrop.controller
import grails.converters.*
import grails.test.*
-import java.util.Properties
-
import org.irods.jargon.core.connection.IRODSAccount
import org.irods.jargon.core.connection.IRODSServerProperties
import org.irods.jargon.core.exception.JargonException
@@ -18,11 +16,11 @@ import org.irods.jargon.core.pub.domain.DataObject
import org.irods.jargon.core.query.CollectionAndDataObjectListingEntry
import org.irods.jargon.core.query.MetaDataAndDomainData
import org.irods.jargon.testutils.TestingPropertiesHelper
-import org.irods.jargon.usertagging.FreeTaggingService
-import org.irods.jargon.usertagging.IRODSTaggingService
-import org.irods.jargon.usertagging.TaggingServiceFactory
import org.irods.jargon.usertagging.domain.IRODSTagGrouping
import org.irods.jargon.usertagging.domain.IRODSTagValue
+import org.irods.jargon.usertagging.tags.FreeTaggingService
+import org.irods.jargon.usertagging.tags.IRODSTaggingService
+import org.irods.jargon.usertagging.tags.TaggingServiceFactory
import org.mockito.Matchers
import org.mockito.Mockito
diff --git a/idrop-web/test/unit/org/irods/mydrop/controller/SearchControllerTests.groovy b/idrop-web/test/unit/org/irods/mydrop/controller/SearchControllerTests.groovy
index 6b088fa..5a056c6 100644
--- a/idrop-web/test/unit/org/irods/mydrop/controller/SearchControllerTests.groovy
+++ b/idrop-web/test/unit/org/irods/mydrop/controller/SearchControllerTests.groovy
@@ -2,8 +2,6 @@ package org.irods.mydrop.controller
import grails.test.ControllerUnitTestCase
-import java.util.Properties
-
import org.irods.jargon.core.connection.IRODSAccount
import org.irods.jargon.core.exception.JargonException
import org.irods.jargon.core.pub.CollectionAndDataObjectListAndSearchAO
@@ -11,9 +9,9 @@ import org.irods.jargon.core.pub.IRODSAccessObjectFactory
import org.irods.jargon.core.pub.IRODSFileSystem
import org.irods.jargon.core.query.CollectionAndDataObjectListingEntry
import org.irods.jargon.testutils.TestingPropertiesHelper
-import org.irods.jargon.usertagging.FreeTaggingService
-import org.irods.jargon.usertagging.TaggingServiceFactory
import org.irods.jargon.usertagging.domain.TagQuerySearchResult
+import org.irods.jargon.usertagging.tags.FreeTaggingService
+import org.irods.jargon.usertagging.tags.TaggingServiceFactory
import org.mockito.Mockito
class SearchControllerTests extends ControllerUnitTestCase {
diff --git a/idrop-web/test/unit/org/irods/mydrop/controller/ShoppingCartControllerTests.groovy b/idrop-web/test/unit/org/irods/mydrop/controller/ShoppingCartControllerTests.groovy
new file mode 100644
index 0000000..94248b7
--- /dev/null
+++ b/idrop-web/test/unit/org/irods/mydrop/controller/ShoppingCartControllerTests.groovy
@@ -0,0 +1,19 @@
+package org.irods.mydrop.controller
+
+
+
+import grails.test.mixin.*
+
+import org.irods.mydrop.controller.ShoppingCartController;
+import org.junit.*
+
+/**
+ * See the API for {@link grails.test.mixin.web.ControllerUnitTestMixin} for usage instructions
+ */
+@TestFor(ShoppingCartController)
+class ShoppingCartControllerTests {
+
+ void testSomething() {
+ fail "Implement me"
+ }
+}
diff --git a/idrop-web/test/unit/org/irods/mydrop/controller/TagsControllerTests.groovy b/idrop-web/test/unit/org/irods/mydrop/controller/TagsControllerTests.groovy
index eeca57b..57fbf38 100644
--- a/idrop-web/test/unit/org/irods/mydrop/controller/TagsControllerTests.groovy
+++ b/idrop-web/test/unit/org/irods/mydrop/controller/TagsControllerTests.groovy
@@ -5,19 +5,17 @@ package org.irods.mydrop.controller
import grails.converters.*
import grails.test.*
-import java.util.Properties
-
import org.irods.jargon.core.connection.IRODSAccount
import org.irods.jargon.core.exception.*
import org.irods.jargon.core.pub.IRODSAccessObjectFactory
import org.irods.jargon.core.pub.IRODSFileSystem
import org.irods.jargon.testutils.TestingPropertiesHelper
-import org.irods.jargon.usertagging.FreeTaggingService
-import org.irods.jargon.usertagging.IRODSTaggingService
-import org.irods.jargon.usertagging.TaggingServiceFactory
-import org.irods.jargon.usertagging.UserTagCloudService
import org.irods.jargon.usertagging.domain.IRODSTagValue
import org.irods.jargon.usertagging.domain.UserTagCloudView
+import org.irods.jargon.usertagging.tags.FreeTaggingService
+import org.irods.jargon.usertagging.tags.IRODSTaggingService
+import org.irods.jargon.usertagging.tags.TaggingServiceFactory
+import org.irods.jargon.usertagging.tags.UserTagCloudService
import org.mockito.Mockito
diff --git a/idrop-web/web-app/css/base.css b/idrop-web/web-app/css/base.css
deleted file mode 100644
index 601ecf8..0000000
--- a/idrop-web/web-app/css/base.css
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-Copyright (c) 2008, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.5.1
-*/
-/* base.css, part of YUI's CSS Foundation */
-h1 {
- /*18px via YUI Fonts CSS foundation*/
- font-size:138.5%;
-}
-h2 {
- /*16px via YUI Fonts CSS foundation*/
- font-size:123.1%;
-}
-h3 {
- /*14px via YUI Fonts CSS foundation*/
- font-size:108%;
-}
-h1,h2,h3 {
- /* top & bottom margin based on font size */
- margin:1em 0;
-}
-h1,h2,h3,h4,h5,h6,strong {
- /*bringing boldness back to headers and the strong element*/
- font-weight:bold;
-}
-abbr,acronym {
- /*indicating to users that more info is available */
- border-bottom:1px dotted #000;
- cursor:help;
-}
-em {
- /*bringing italics back to the em element*/
- font-style:italic;
-}
-blockquote,ul,ol,dl {
- /*giving blockquotes and lists room to breath*/
- margin:.5em;
-}
-ol,ul,dl {
- /*bringing lists on to the page with breathing room */
- margin-left:1em;
-}
-ol li {
- /*giving OL's LIs generated numbers*/
- list-style: decimal outside;
-}
-ul li {
- /*giving UL's LIs generated disc markers*/
- list-style: disc outside;
-}
-dl dd {
- /*giving UL's LIs generated numbers*/
- margin-left:1em;
-}
-th,td {
- /*borders and padding to make the table readable*/
- /*border:1px solid #000;*/
- /*padding:.5em;*/
-}
-th {
- /*distinguishing table headers from data cells*/
- font-weight:bold;
- text-align:center;
-}
-caption {
- /*coordinated margin to match cell's padding*/
- margin-bottom:.5em;
- /*centered so it doesn't blend in to other content*/
- text-align:center;
-}
-p,fieldset,table,pre {
- /*so things don't run into each other*/
- margin-bottom:1em;
-}
-/* setting a consistent width, 160px;
- control of type=file still not possible */
-input[type=text],input[type=password],textarea{width:12.25em;*width:11.9em;}
diff --git a/idrop-web/web-app/css/bootstrap.css b/idrop-web/web-app/css/bootstrap.css
new file mode 100644
index 0000000..0b21229
--- /dev/null
+++ b/idrop-web/web-app/css/bootstrap.css
@@ -0,0 +1,5837 @@
+/*!
+ * Bootstrap v2.1.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 {
+ 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,
+input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ cursor: pointer;
+ -webkit-appearance: button;
+}
+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;
+}
+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 {
+ 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;
+ 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 .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;
+}
+.text-warning {
+ color: #c09853;
+}
+.text-error {
+ color: #b94a48;
+}
+.text-info {
+ color: #3a87ad;
+}
+.text-success {
+ color: #468847;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 10px 0;
+ font-family: inherit;
+ font-weight: bold;
+ line-height: 1;
+ 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 {
+ font-size: 36px;
+ line-height: 40px;
+}
+h2 {
+ font-size: 30px;
+ line-height: 40px;
+}
+h3 {
+ font-size: 24px;
+ line-height: 40px;
+}
+h4 {
+ font-size: 18px;
+ line-height: 20px;
+}
+h5 {
+ font-size: 14px;
+ line-height: 20px;
+}
+h6 {
+ font-size: 12px;
+ line-height: 20px;
+}
+h1 small {
+ font-size: 24px;
+}
+h2 small {
+ font-size: 18px;
+}
+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;
+}
+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] {
+ 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: 16px;
+ font-weight: 300;
+ line-height: 25px;
+}
+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;
+ 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;
+ background-color: transparent;
+ border: 0;
+}
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.label,
+.badge {
+ 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;
+}
+.label {
+ padding: 1px 4px 2px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+.badge {
+ padding: 1px 9px 2px;
+ -webkit-border-radius: 9px;
+ -moz-border-radius: 9px;
+ border-radius: 9px;
+}
+a.label:hover,
+a.badge:hover {
+ 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;
+}
+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-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 {
+ -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 {
+ -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 tfoot:last-child tr:last-child td:first-child {
+ -webkit-border-radius: 0 0 0 4px;
+ -moz-border-radius: 0 0 0 4px;
+ border-radius: 0 0 0 4px;
+ -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 tfoot:last-child tr:last-child td:last-child {
+ -webkit-border-bottom-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
+}
+.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-topleft: 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 [class*=span],
+.row-fluid table [class*=span] {
+ display: table-cell;
+ float: none;
+ margin-left: 0;
+}
+.table .span1 {
+ float: none;
+ width: 44px;
+ margin-left: 0;
+}
+.table .span2 {
+ float: none;
+ width: 124px;
+ margin-left: 0;
+}
+.table .span3 {
+ float: none;
+ width: 204px;
+ margin-left: 0;
+}
+.table .span4 {
+ float: none;
+ width: 284px;
+ margin-left: 0;
+}
+.table .span5 {
+ float: none;
+ width: 364px;
+ margin-left: 0;
+}
+.table .span6 {
+ float: none;
+ width: 444px;
+ margin-left: 0;
+}
+.table .span7 {
+ float: none;
+ width: 524px;
+ margin-left: 0;
+}
+.table .span8 {
+ float: none;
+ width: 604px;
+ margin-left: 0;
+}
+.table .span9 {
+ float: none;
+ width: 684px;
+ margin-left: 0;
+}
+.table .span10 {
+ float: none;
+ width: 764px;
+ margin-left: 0;
+}
+.table .span11 {
+ float: none;
+ width: 844px;
+ margin-left: 0;
+}
+.table .span12 {
+ float: none;
+ width: 924px;
+ margin-left: 0;
+}
+.table .span13 {
+ float: none;
+ width: 1004px;
+ margin-left: 0;
+}
+.table .span14 {
+ float: none;
+ width: 1084px;
+ margin-left: 0;
+}
+.table .span15 {
+ float: none;
+ width: 1164px;
+ margin-left: 0;
+}
+.table .span16 {
+ float: none;
+ width: 1244px;
+ margin-left: 0;
+}
+.table .span17 {
+ float: none;
+ width: 1324px;
+ margin-left: 0;
+}
+.table .span18 {
+ float: none;
+ width: 1404px;
+ margin-left: 0;
+}
+.table .span19 {
+ float: none;
+ width: 1484px;
+ margin-left: 0;
+}
+.table .span20 {
+ float: none;
+ width: 1564px;
+ margin-left: 0;
+}
+.table .span21 {
+ float: none;
+ width: 1644px;
+ margin-left: 0;
+}
+.table .span22 {
+ float: none;
+ width: 1724px;
+ margin-left: 0;
+}
+.table .span23 {
+ float: none;
+ width: 1804px;
+ margin-left: 0;
+}
+.table .span24 {
+ float: none;
+ width: 1884px;
+ 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;
+}
+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: 9px;
+ font-size: 14px;
+ line-height: 20px;
+ color: #555555;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+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 .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 */
+
+ -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: 0;
+ /* IE7 */
+
+ margin-top: 1px \9;
+ /* IE8-9 */
+
+ line-height: normal;
+ cursor: pointer;
+}
+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;
+ -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);
+ 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: 18px;
+ padding-left: 18px;
+}
+.radio input[type="radio"],
+.checkbox input[type="checkbox"] {
+ float: left;
+ margin-left: -18px;
+}
+.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"] {
+ float: left;
+}
+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 > 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 > 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 > 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 > 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:required:invalid,
+textarea:focus:required:invalid,
+select:focus:required:invalid {
+ color: #b94a48;
+ border-color: #ee5f5b;
+}
+input:focus:required:invalid:focus,
+textarea:focus:required:invalid:focus,
+select:focus:required: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;
+ 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 {
+ margin-bottom: 5px;
+ 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 {
+ position: relative;
+ margin-bottom: 0;
+ *margin-left: 0;
+ font-size: 14px;
+ vertical-align: top;
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 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 {
+ 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: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.input-append input,
+.input-append select,
+.input-append .uneditable-input {
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.input-append .add-on,
+.input-append .btn {
+ margin-left: -1px;
+}
+.input-append .add-on:last-child,
+.input-append .btn:last-child {
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 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 .add-on:first-child,
+.input-prepend.input-append .btn:first-child {
+ margin-right: -1px;
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.input-prepend.input-append .add-on:last-child,
+.input-prepend.input-append .btn:last-child {
+ margin-left: -1px;
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 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;
+ /* 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 {
+ margin-top: 10px;
+}
+.form-horizontal .form-actions {
+ padding-left: 180px;
+}
+.btn {
+ display: inline-block;
+ *display: inline;
+ /* IE7 inline-block hack */
+
+ *zoom: 1;
+ padding: 4px 14px;
+ margin-bottom: 0;
+ font-size: 14px;
+ line-height: 20px;
+ *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;
+ 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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=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);
+ *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 #bbbbbb;
+ *border: 0;
+ border-bottom-color: #a2a2a2;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ *margin-left: .3em;
+ -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: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 {
+ color: #333333;
+ text-decoration: none;
+ background-color: #e6e6e6;
+ *background-color: #d9d9d9;
+ /* Buttons in IE7 don't get borders, so darken on hover */
+
+ 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-color: #e6e6e6;
+ background-color: #d9d9d9 \9;
+ 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-color: #e6e6e6;
+ background-image: none;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+.btn-large {
+ padding: 9px 14px;
+ font-size: 16px;
+ line-height: normal;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.btn-large [class^="icon-"] {
+ margin-top: 2px;
+}
+.btn-small {
+ padding: 3px 9px;
+ font-size: 12px;
+ line-height: 18px;
+}
+.btn-small [class^="icon-"] {
+ margin-top: 0;
+}
+.btn-mini {
+ padding: 2px 6px;
+ font-size: 11px;
+ line-height: 17px;
+}
+.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 {
+ border-color: #c5c5c5;
+ border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
+}
+.btn-primary {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #006dcc;
+ 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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
+ 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: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-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);
+ 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: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-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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
+ 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: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-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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
+ 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: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-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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
+ 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: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-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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
+ 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: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 {
+ border-color: transparent;
+ cursor: pointer;
+ color: #0088cc;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.btn-link:hover {
+ color: #005580;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.btn-link[disabled]:hover {
+ color: #333333;
+ text-decoration: none;
+}
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ *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;
+ margin-top: 1px;
+}
+/* White icons with optional class, or on hover/active states of certain elements */
+.icon-white,
+.nav-tabs > .active > a > [class^="icon-"],
+.nav-tabs > .active > a > [class*=" icon-"],
+.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-"] {
+ 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 {
+ background-position: -216px -120px;
+ width: 16px;
+}
+.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 {
+ background-position: -384px -120px;
+}
+.icon-folder-open {
+ background-position: -408px -120px;
+ width: 16px;
+}
+.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;
+}
+.btn-group {
+ position: relative;
+ 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-group {
+ display: inline-block;
+ *display: inline;
+ /* IE7 inline-block hack */
+
+ *zoom: 1;
+}
+.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 {
+ font-size: 14px;
+}
+.btn-group > .btn-mini {
+ font-size: 11px;
+}
+.btn-group > .btn-small {
+ font-size: 12px;
+}
+.btn-group > .btn-large {
+ font-size: 16px;
+}
+.btn-group > .btn:first-child {
+ margin-left: 0;
+ -webkit-border-top-left-radius: 4px;
+ -moz-border-radius-topleft: 4px;
+ border-top-left-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -moz-border-radius-bottomleft: 4px;
+ border-bottom-left-radius: 4px;
+}
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
+ -webkit-border-top-right-radius: 4px;
+ -moz-border-radius-topright: 4px;
+ border-top-right-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
+ border-bottom-right-radius: 4px;
+}
+.btn-group > .btn.large:first-child {
+ margin-left: 0;
+ -webkit-border-top-left-radius: 6px;
+ -moz-border-radius-topleft: 6px;
+ border-top-left-radius: 6px;
+ -webkit-border-bottom-left-radius: 6px;
+ -moz-border-radius-bottomleft: 6px;
+ border-bottom-left-radius: 6px;
+}
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
+ -webkit-border-top-right-radius: 6px;
+ -moz-border-radius-topright: 6px;
+ border-top-right-radius: 6px;
+ -webkit-border-bottom-right-radius: 6px;
+ -moz-border-radius-bottomright: 6px;
+ border-bottom-right-radius: 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-left: 8px;
+ padding-right: 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);
+ *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;
+ -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-mini .caret,
+.btn-small .caret,
+.btn-large .caret {
+ margin-top: 6px;
+}
+.btn-large .caret {
+ border-left-width: 5px;
+ border-right-width: 5px;
+ border-top-width: 5px;
+}
+.dropup .btn-large .caret {
+ border-bottom: 5px solid #000000;
+ border-top: 0;
+}
+.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;
+ width: 100%;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.btn-group-vertical .btn + .btn {
+ margin-left: 0;
+ margin-top: -1px;
+}
+.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;
+}
+.nav {
+ margin-left: 0;
+ margin-bottom: 20px;
+ list-style: none;
+}
+.nav > li > a {
+ display: block;
+}
+.nav > li > a:hover {
+ text-decoration: none;
+ background-color: #eeeeee;
+}
+.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 {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+ background-color: #0088cc;
+}
+.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;
+ -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 {
+ border-color: #eeeeee #eeeeee #dddddd;
+}
+.nav-tabs > .active > a,
+.nav-tabs > .active > a:hover {
+ 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;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.nav-pills > .active > a,
+.nav-pills > .active > a:hover {
+ 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;
+ -moz-border-radius-topright: 4px;
+ border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -moz-border-radius-topleft: 4px;
+ border-top-left-radius: 4px;
+}
+.nav-tabs.nav-stacked > li:last-child > a {
+ -webkit-border-bottom-right-radius: 4px;
+ -moz-border-radius-bottomright: 4px;
+ border-bottom-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -moz-border-radius-bottomleft: 4px;
+ border-bottom-left-radius: 4px;
+}
+.nav-tabs.nav-stacked > li > a:hover {
+ 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-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 {
+ border-top-color: #0088cc;
+ border-bottom-color: #0088cc;
+ margin-top: 6px;
+}
+.nav .dropdown-toggle:hover .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 {
+ cursor: pointer;
+}
+.nav-tabs .open .dropdown-toggle,
+.nav-pills .open .dropdown-toggle,
+.nav > li.dropdown.open.active > a:hover {
+ 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 {
+ border-top-color: #ffffff;
+ border-bottom-color: #ffffff;
+ opacity: 1;
+ filter: alpha(opacity=100);
+}
+.tabs-stacked .open > a:hover {
+ 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 {
+ -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 {
+ border-bottom-color: transparent;
+ border-top-color: #ddd;
+}
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover {
+ 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 {
+ border-color: #eeeeee #dddddd #eeeeee #eeeeee;
+}
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover {
+ 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 {
+ border-color: #eeeeee #eeeeee #eeeeee #dddddd;
+}
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover {
+ border-color: #ddd #ddd #ddd transparent;
+ *border-left-color: #ffffff;
+}
+.nav > .disabled > a {
+ color: #999999;
+}
+.nav > .disabled > a:hover {
+ text-decoration: none;
+ background-color: transparent;
+ cursor: default;
+}
+.navbar {
+ overflow: visible;
+ margin-bottom: 20px;
+ color: #777777;
+ *position: relative;
+ *z-index: 2;
+}
+.navbar-inner {
+ min-height: 40px;
+ padding-left: 20px;
+ padding-right: 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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
+ border: 1px solid #d4d4d4;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -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);
+ *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;
+}
+.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 {
+ text-decoration: none;
+}
+.navbar-text {
+ margin-bottom: 0;
+ line-height: 40px;
+}
+.navbar-link {
+ color: #777777;
+}
+.navbar-link:hover {
+ color: #333333;
+}
+.navbar .divider-vertical {
+ height: 40px;
+ 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 {
+ 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: 6px;
+ 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;
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ border-radius: 15px;
+}
+.navbar-static-top {
+ position: static;
+ width: 100%;
+ 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-left: 0;
+ padding-right: 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: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1);
+}
+.navbar-fixed-bottom {
+ bottom: 0;
+}
+.navbar-fixed-bottom .navbar-inner {
+ -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 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 {
+ 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;
+ -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-left: 5px;
+ margin-right: 5px;
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #ededed;
+ 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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
+ 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);
+ -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: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 {
+ 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.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: #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 {
+ 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;
+ -webkit-border-radius: 6px 0 6px 6px;
+ -moz-border-radius: 6px 0 6px 6px;
+ border-radius: 6px 0 6px 6px;
+}
+.navbar-inverse {
+ color: #999999;
+}
+.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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
+ 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 {
+ color: #ffffff;
+}
+.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 {
+ 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 > .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;
+ -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);
+ outline: 0;
+}
+.navbar-inverse .btn-navbar {
+ color: #ffffff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #0e0e0e;
+ 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;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
+ 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: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;
+ /* IE7 inline-block hack */
+
+ *zoom: 1;
+ text-shadow: 0 1px 0 #ffffff;
+}
+.breadcrumb .divider {
+ padding: 0 5px;
+ color: #ccc;
+}
+.breadcrumb .active {
+ color: #999999;
+}
+.pagination {
+ height: 40px;
+ margin: 20px 0;
+}
+.pagination ul {
+ display: inline-block;
+ *display: inline;
+ /* IE7 inline-block hack */
+
+ *zoom: 1;
+ margin-left: 0;
+ margin-bottom: 0;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ -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: 0 14px;
+ line-height: 38px;
+ text-decoration: none;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-left-width: 0;
+}
+.pagination ul > li > a:hover,
+.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 {
+ color: #999999;
+ background-color: transparent;
+ cursor: default;
+}
+.pagination ul > li:first-child > a,
+.pagination ul > li:first-child > span {
+ border-left-width: 1px;
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.pagination ul > li:last-child > a,
+.pagination ul > li:last-child > span {
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+.pagination-centered {
+ text-align: center;
+}
+.pagination-right {
+ text-align: right;
+}
+.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 a,
+.pager 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 a:hover {
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+.pager .next a,
+.pager .next span {
+ float: right;
+}
+.pager .previous a {
+ float: left;
+}
+.pager .disabled a,
+.pager .disabled a:hover,
+.pager .disabled span {
+ color: #999999;
+ background-color: #fff;
+ cursor: default;
+}
+.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-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 {
+ 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-left: auto;
+ margin-right: auto;
+}
+.thumbnail .caption {
+ padding: 9px;
+ color: #555555;
+}
+.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;
+ 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-danger,
+.alert-error {
+ background-color: #f2dede;
+ border-color: #eed3d7;
+ color: #b94a48;
+}
+.alert-info {
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ 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;
+}
+@-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;
+ 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;
+ 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);
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.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;
+ 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);
+}
+.hero-unit {
+ padding: 60px;
+ margin-bottom: 30px;
+ 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;
+ color: inherit;
+ letter-spacing: -1px;
+}
+.hero-unit p {
+ font-size: 18px;
+ font-weight: 200;
+ line-height: 30px;
+ color: inherit;
+}
+.tooltip {
+ position: absolute;
+ z-index: 1030;
+ display: block;
+ visibility: visible;
+ padding: 5px;
+ font-size: 11px;
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.tooltip.in {
+ opacity: 0.8;
+ filter: alpha(opacity=80);
+}
+.tooltip.top {
+ margin-top: -3px;
+}
+.tooltip.right {
+ margin-left: 3px;
+}
+.tooltip.bottom {
+ margin-top: 3px;
+}
+.tooltip.left {
+ margin-left: -3px;
+}
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 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-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;
+ width: 236px;
+ padding: 1px;
+ 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);
+ -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);
+}
+.popover.top {
+ margin-bottom: 10px;
+}
+.popover.right {
+ margin-left: 10px;
+}
+.popover.bottom {
+ margin-top: 10px;
+}
+.popover.left {
+ margin-right: 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;
+ -webkit-border-radius: 5px 5px 0 0;
+ -moz-border-radius: 5px 5px 0 0;
+ border-radius: 5px 5px 0 0;
+}
+.popover-content {
+ padding: 9px 14px;
+}
+.popover-content p,
+.popover-content ul,
+.popover-content ol {
+ margin-bottom: 0;
+}
+.popover .arrow,
+.popover .arrow:after {
+ position: absolute;
+ display: inline-block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.popover .arrow:after {
+ content: "";
+ z-index: -1;
+}
+.popover.top .arrow {
+ bottom: -10px;
+ left: 50%;
+ margin-left: -10px;
+ border-width: 10px 10px 0;
+ border-top-color: #ffffff;
+}
+.popover.top .arrow:after {
+ border-width: 11px 11px 0;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -1px;
+ left: -11px;
+}
+.popover.right .arrow {
+ top: 50%;
+ left: -10px;
+ margin-top: -10px;
+ border-width: 10px 10px 10px 0;
+ border-right-color: #ffffff;
+}
+.popover.right .arrow:after {
+ border-width: 11px 11px 11px 0;
+ border-right-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px;
+ left: -1px;
+}
+.popover.bottom .arrow {
+ top: -10px;
+ left: 50%;
+ margin-left: -10px;
+ border-width: 0 10px 10px;
+ border-bottom-color: #ffffff;
+}
+.popover.bottom .arrow:after {
+ border-width: 0 11px 11px;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -1px;
+ left: -11px;
+}
+.popover.left .arrow {
+ top: 50%;
+ right: -10px;
+ margin-top: -10px;
+ border-width: 10px 0 10px 10px;
+ border-left-color: #ffffff;
+}
+.popover.left .arrow:after {
+ border-width: 11px 0 11px 11px;
+ border-left-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px;
+ right: -1px;
+}
+.modal-open .modal .dropdown-menu {
+ z-index: 2050;
+}
+.modal-open .modal .dropdown.open {
+ *z-index: 2050;
+}
+.modal-open .modal .popover {
+ z-index: 2060;
+}
+.modal-open .modal .tooltip {
+ z-index: 2080;
+}
+.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: 50%;
+ left: 50%;
+ z-index: 1050;
+ overflow: auto;
+ width: 560px;
+ margin: -250px 0 0 -280px;
+ background-color: #ffffff;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ *border: 1px solid #999;
+ /* IE6-7 */
+
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+ -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 {
+ -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: 50%;
+}
+.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 {
+ 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;
+ -webkit-border-radius: 0 0 6px 6px;
+ -moz-border-radius: 0 0 6px 6px;
+ border-radius: 0 0 6px 6px;
+ -webkit-box-shadow: inset 0 1px 0 #ffffff;
+ -moz-box-shadow: inset 0 1px 0 #ffffff;
+ box-shadow: inset 0 1px 0 #ffffff;
+ *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;
+}
+.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 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 {
+ text-decoration: none;
+ color: #ffffff;
+ background-color: #0088cc;
+ 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 {
+ color: #ffffff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #0088cc;
+ 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 .disabled > a,
+.dropdown-menu .disabled > a:hover {
+ color: #999999;
+}
+.dropdown-menu .disabled > a:hover {
+ text-decoration: none;
+ background-color: transparent;
+ 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;
+ -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;
+}
+.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 .dropdown-menu .nav-header {
+ padding-left: 20px;
+ padding-right: 20px;
+}
+.typeahead {
+ margin-top: 2px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.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 {
+ overflow: hidden;
+ width: 100%;
+ position: relative;
+}
+.carousel .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 .item > img {
+ display: block;
+ line-height: 1;
+}
+.carousel .active,
+.carousel .next,
+.carousel .prev {
+ display: block;
+}
+.carousel .active {
+ left: 0;
+}
+.carousel .next,
+.carousel .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.carousel .next {
+ left: 100%;
+}
+.carousel .prev {
+ left: -100%;
+}
+.carousel .next.left,
+.carousel .prev.right {
+ left: 0;
+}
+.carousel .active.left {
+ left: -100%;
+}
+.carousel .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 {
+ left: auto;
+ right: 15px;
+}
+.carousel-control:hover {
+ color: #ffffff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.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;
+}
+.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;
+}
+.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 {
+ 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;
+}
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+.hide {
+ display: none;
+}
+.show {
+ display: block;
+}
+.invisible {
+ visibility: hidden;
+}
+.affix {
+ position: fixed;
+}
+.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;
+}
+.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;
+ }
+}
+@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"],
+ .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;
+ }
+ .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.in {
+ top: auto;
+ }
+}
+@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;
+ }
+ .modal {
+ top: 10px;
+ left: 10px;
+ right: 10px;
+ }
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+ .carousel-caption {
+ position: static;
+ }
+}
+@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 .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 (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 .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 (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;
+ -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 .dropdown-menu a:hover {
+ background-color: #f2f2f2;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a:hover,
+ .navbar-inverse .nav-collapse .dropdown-menu a:hover {
+ 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: block;
+ max-width: none;
+ margin: 0 15px;
+ padding: 0;
+ 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 .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 {
+ 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/idrop-web/web-app/css/jquery.gritter.css b/idrop-web/web-app/css/jquery.gritter.css
index c4aa9fe..c7f617f 100644
--- a/idrop-web/web-app/css/jquery.gritter.css
+++ b/idrop-web/web-app/css/jquery.gritter.css
@@ -5,6 +5,7 @@
right:20px;
width:301px;
z-index:9999;
+ background:#000000;
}
#gritter-notice-wrapper.top-left {
left: 20px;
diff --git a/idrop-web/web-app/css/main.css b/idrop-web/web-app/css/main.css
index bc8f384..a55945d 100644
--- a/idrop-web/web-app/css/main.css
+++ b/idrop-web/web-app/css/main.css
@@ -1,854 +1,596 @@
-html * {
- margin: 0;
- /*padding: 0; SELECT NOT DISPLAYED CORRECTLY IN FIREFOX */
-}
-
-/* GENERAL */
-body {
- background: #ffffff;
- color: #210021;
- font: 12px verdana, arial, helvetica, sans-serif;
- height: 500px;
+/* FONT STACK */
+body,
+input, select, textarea {
+ font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
}
-a:link,a:visited,a:hover {
- color: #330033;
- font-weight: bold;
- text-decoration: none;
+h1, h2, h3, h4, h5, h6 {
+ line-height: 1.1;
}
-h1 {
- color: #210021;
- font-weight: normal;
- font-size: 16px;
- margin: .8em 0 .3em 0;
-}
+/* BASE LAYOUT */
-label {
- font-weight: bold;
+html {
+ background-color: #ddd;
+ background-image: -moz-linear-gradient(center top, #aaa, #ddd);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #aaa), color-stop(1, #ddd));
+ background-image: linear-gradient(top, #aaa, #ddd);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorStr = '#aaaaaa', EndColorStr = '#dddddd');
+ background-repeat: no-repeat;
+ height: 100%;
+ /* change the box model to exclude the padding from the calculation of 100% height (IE8+) */
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-ul {
- padding-left: 15px;
+html.no-cssgradients {
+ background-color: #aaa;
}
-/*
-Trick to handle long text, use elipsis, then hover to show all text
-*/
-.longText {
- text-overflow: ellipsis;
+.ie6 html {
+ height: 100%;
}
-.longText:hover {
- text-overflow: inherit;
- overflow: visible;
+html * {
+ margin: 0;
}
-/* form styling */
-div.box {
- background: none repeat scroll 0 0 #ffffff;
- border: 1px solid #C6CFE1;
+body {
+ background: #ffffff;
color: #333333;
- /*padding: 5px;
- margin: 5px;*/
+ margin: 0 auto;
+ max-width: 960px;
+ overflow-x: hidden; /* prevents box-shadow causing a horizontal scrollbar in firefox when viewport < 960px wide */
+ -moz-box-shadow: 0 0 0.3em #255b17;
+ -webkit-box-shadow: 0 0 0.3em #255b17;
+ box-shadow: 0 0 0.3em #255b17;
}
-div.box .input-text {
- background: #;
- border: 1px solid;
- color: #666666;
+#grailsLogo {
+ background-color: #abbf78;
}
-div.box label { /*display: block;*/
- float: left;
- /*margin-bottom: 10px;*/
- color: #555555;
+/* replace with .no-boxshadow body if you have modernizr available */
+.ie6 body,
+.ie7 body,
+.ie8 body {
+ border-color: #255b17;
+ border-style: solid;
+ border-width: 0 1px;
}
-div.box label span {
- display: block;
- float: left;
- padding-right: 6px;
- width: 70px;
- text-align: right;
+.ie6 body {
+ height: 100%;
}
-div.scroll {
- overflow: auto;
- padding: 8px;
+a:link, a:visited, a:hover {
+ color: #48802c;
}
-div#tabs { /*width: 100%;
- height: 100%;
- display: inline-block;
- clear: both;*/
- clear: both; overflow; auto;
- display: block;
- position: relative;
+a:hover, a:active {
+ outline: none; /* prevents outline in webkit on active links but retains it for tab focus */
}
-.wrapper {
- text-align: left;
- /*margin: 0px auto;
- position: relative;
- padding: 0px;*/
- border: 0;
- /*display: inline-block;*/
- width: 100%;
- height: 100%;
+h1 {
+ color: #48802c;
+ font-weight: normal;
+ font-size: 1.25em;
+ margin: 0.8em 0 0.3em 0;
}
-.colRight {
- position: relative;
- float: right;
- width: 350px;
- display: block;
- overflow: auto;
+ul {
+ padding: 0;
}
-.colLeft {
- position: relative;
- float: left;
- width: 450px;
- display: block;
- overflow: auto;
-}
-
-.roundedContainer {
- -moz-background-clip: border;
- -moz-background-inline-policy: continuous;
- -moz-background-origin: padding;
- -moz-border-radius-bottomleft: 8pt;
- -moz-border-radius-bottomright: 8pt;
- -moz-border-radius-topleft: 8pt;
- -moz-border-radius-topright: 8pt;
- background: #FFFFFF none repeat scroll 0 0;
- border: 2px solid #000000;
- cursor: default;
- padding: 2px;
- margin: 2px;
- display: block;
- position: relative;
+img {
+ border: 0;
}
-.body {
- float: left;
- margin: 0 15px 10px 15px;
-}
+/* GENERAL */
-/* banner and top bar */
-#bannercontainer {
- width: 800px;
- height: 80px;
- padding: 0;
- margin-left: auto;
- margin-right: auto;
- background: #fff url(../images/iDropLogo.png) left center no-repeat;
- /*background: #fff url(../images/Lifetime-Library.png) left center no-repeat;*/
+#grailsLogo a {
display: inline-block;
- position: relative;
+ margin: 1em;
}
-#headerSearchBox {
- width: 100%;
- height: auto;
- margin: 1px;
- display: block;
- position: relative;
- float: left;
+.content {
}
-#mainDivColl {
- clear: both;
- width: auto;
- height: auto;
- position: relative;
+.content h1 {
+ border-bottom: 1px solid #CCCCCC;
+ margin: 0.8em 1em 0.3em;
+ padding: 0 0.25em;
}
-/* NAVIGATION MENU */
-.nav {
- background: #aabbc2 bottom repeat-x;
- border: 1px solid #ccc;
- border-style: solid none solid none;
- margin-top: 5px;
- padding: 7px 12px;
+.scaffold-list h1 {
+ border: none;
}
-.fg-toolbar {
- padding: .5em;
- margin: 0;
- display: block;
+.footer {
+ background: #abbf78;
+ color: #000;
clear: both;
+ font-size: 0.8em;
+ margin-top: 1.5em;
+ padding: 1em;
+ min-height: 1em;
}
-.fg-toolbar .fg-buttonset {
- /*margin-right: 1.5em;*/
- padding-left: 1px;
-}
-
-.fg-toolbar .fg-button {
- font-size: 1em;
-}
-
-.menuButton {
- font-size: 10px;
- padding: 0 5px;
+.footer a {
+ color: #255b17;
}
-.menuButton a {
- color: #A19E51;
- padding: 4px 6px;
+.spinner {
+ background: url(../images/spinner.gif) 50% 50% no-repeat transparent;
+ height: 16px;
+ width: 16px;
+ padding: 0.5em;
+ position: absolute;
+ right: 0;
+ top: 0;
+ text-indent: -9999px;
}
-.menuButton a.home {
- background: url(../images/skin/house.png) center left no-repeat;
- color: #A19E51;
- padding-left: 25px;
-}
+/* NAVIGATION MENU */
-.menuButton a.list {
- background: url(../images/skin/database_table.png) center left no-repeat;
- color: #A19E51;
- padding-left: 25px;
+.nav {
+ background-color: #efefef;
+ padding: 0.5em 0.75em;
+ -moz-box-shadow: 0 0 3px 1px #aaaaaa;
+ -webkit-box-shadow: 0 0 3px 1px #aaaaaa;
+ box-shadow: 0 0 3px 1px #aaaaaa;
+ zoom: 1;
}
-.menuButton a.create {
- background: url(../images/skin/database_add.png) center left no-repeat;
- color: #A19E51;
- padding-left: 25px;
+.nav ul {
+ overflow: hidden;
+ padding-left: 0;
+ zoom: 1;
}
-/* MESSAGES AND ERRORS */
-.message {
- background: #331B00 url(../images/skin/information.png) 8px 50%
- no-repeat;
- border: 1px solid #b2d1ff;
- color: #fff;
- margin: 10px 0 5px 0;
- padding: 5px 5px 5px 30px;
+.nav li {
display: block;
- overflow: auto;
- width: 90%;
- /*height:55px;*/
- position: relative;
-}
-
-div.errors {
- background: #992699;
- border: 1px solid;
- color: #f0f0f0;
- margin: 10px 0 5px 0;
- padding: 5px 0 5px 0;
-}
-
-div.errors ul {
- list-style: none;
+ float: left;
+ list-style-type: none;
+ margin-right: 0.5em;
padding: 0;
}
-div.errors li {
- background: url(../images/skin/exclamation.png) 8px 0% no-repeat;
- line-height: 16px;
- padding-left: 30px;
-}
-
-td.errors select {
- border: 1px solid red;
-}
-
-td.errors input {
- border: 1px solid red;
-}
-
-td.errors textarea {
- border: 1px solid red;
-}
-
-/* TABLES */
-
-.details {
- overflow:auto;
-}
-
-table {
- border: 1px solid #ccc;
- width: 100%
-}
-
-tr {
- border: 0;
- padding: 3px;
-}
-
-td,th {
- font: 12px verdana, arial, helvetica, sans-serif;
- line-height: 10px;
- padding: 2px;
- text-align: left;
- vertical-align: top;
-}
-
-th {
- background: #fff url(../images/skin/shadow.jpg);
- color: #666;
- font-size: 11px;
- font-weight: bold;
- line-height: 17px;
- padding: 1px 2px;
-}
-
-th a:link,th a:visited,th a:hover {
- color: #333;
+.nav a {
+ color: #666666;
display: block;
- font-size: 10px;
+ padding: 0.25em 0.7em;
text-decoration: none;
- width: 100%;
+ -moz-border-radius: 0.3em;
+ -webkit-border-radius: 0.3em;
+ border-radius: 0.3em;
}
-th.asc a,th.desc a {
- background-position: right;
- background-repeat: no-repeat;
+.nav a:active, .nav a:visited {
+ color: #666666;
}
-th.asc a {
- background-image: url(../images/skin/sorted_asc.gif);
+.nav a:focus, .nav a:hover {
+ background-color: #999999;
+ color: #ffffff;
+ outline: none;
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
}
-th.desc a {
- background-image: url(../images/skin/sorted_desc.gif);
+.no-borderradius .nav a:focus, .no-borderradius .nav a:hover {
+ background-color: transparent;
+ color: #444444;
+ text-decoration: underline;
}
-.odd {
- background: #ffffff;
+.nav a.home, .nav a.list, .nav a.create {
+ background-position: 0.7em center;
+ background-repeat: no-repeat;
+ text-indent: 25px;
}
-.even {
- background: #caf0ef;
+.nav a.home {
+ background-image: url(../images/skin/house.png);
}
-/* ACTION BUTTONS */
-.buttons {
- background: #244857 url(../images/skin/shadow.jpg) bottom repeat-x;
- text-align: right;
- border: 1px solid;
- color: #fff;
- font-size: 10px;
- margin-top: 5px;
- overflow: hidden;
- padding: 0;
- border: 1px solid;
+.nav a.list {
+ background-image: url(../images/skin/database_table.png);
}
-.buttons input {
- background: #011720;
- border: 0;
- color: #fff;
- cursor: pointer;
- font-size: 10px;
- font-weight: bold;
- margin-left: 3px;
- overflow: visible;
- padding: 2px 6px;
+.nav a.create {
+ background-image: url(../images/skin/database_add.png);
}
-#quickView {
- background: none repeat scroll 0 0 #FFFFFF;
- color: #333333;
- margin-bottom: 3px;
- padding: 3px;
- width: auto;
- height: auto;
- display: block;
- overflow: auto;
-}
-/* object container */
-.objectContainer {
- color: #333333;
- dislay: inline-block;
- clear: both;
- -moz-background-clip: border;
- -moz-background-inline-policy: continuous;
- -moz-background-origin: padding;
- -moz-border-radius-bottomleft: 8pt;
- -moz-border-radius-bottomright: 8pt;
- -moz-border-radius-topleft: 8pt;
- -moz-border-radius-topright: 8pt;
- background: #FFFFFF none repeat scroll 0 0;
- border: 3px solid #000000;
- cursor: default;
- padding: 3px;
- margin: 3px;
- display: inline-block;
-}
+/* CREATE/EDIT FORMS AND SHOW PAGES */
-.objectContainerGrouping {
- color: #999999;
- font-weight: normal;
- left: -5em;
- padding-top: 9px;
+fieldset,
+.property-list {
+ margin: 0.6em 1.25em 0 1.25em;
+ padding: 0.3em 1.8em 1.25em;
position: relative;
- text-align: left;
- top: -1px;
- width: 5em;
+ zoom: 1;
+ border: none;
}
-.objectContainerDetails {
- float: right;
- text-align: left;
- display: inline-block;
+.property-list .fieldcontain {
+ list-style: none;
+ overflow: hidden;
+ zoom: 1;
}
-.objectHeader {
- display: block;
- fload: left;
- margin-bottom: 10px;
- color: #555555;
- margin-bottom: 10px;
+.fieldcontain {
+ margin-top: 1em;
}
-.objectDescription {
- color: #210021;
- font-weight: normal;
- font-size: 12px;
- margin: .8em 0 .3em 0;
+.fieldcontain label,
+.fieldcontain .property-label {
+ color: #666666;
+ text-align: right;
+ width: 25%;
}
-.objectContainerActions {
- display: block;
+.fieldcontain .property-label {
float: left;
- padding: 10px;
}
-.objectContainerTags {
+.fieldcontain .property-value {
display: block;
- float: right;
- padding: 10px;
+ margin-left: 27%;
}
-/* standard form layouts */
-#columnarForm fieldset {
- float: left;
- display: block;
- width: 17em;
- margin: 0 1em 1em 0;
- padding: 0 1em 1em 1em;
+label {
+ cursor: pointer;
+ display: inline-block;
+ margin: 0 0.25em 0 0;
}
-#columnarForm fieldset.radio {
- width: 15em;
- margin: 1em 0 2em 0;
+input, select, textarea {
+ background-color: #fcfcfc;
+ border: 1px solid #cccccc;
+ font-size: 1em;
+ padding: 0.2em 0.4em;
}
-#columnarForm fieldset.radio input {
- clear: both;
- float: left;
- width: auto;
+select {
+ padding: 0.2em 0.2em 0.2em 0;
}
-#columnarForm fieldset.radio label {
- font-weight: normal;
+select[multiple] {
+ vertical-align: top;
}
-#columnarForm input {
- display: block;
- width: 15em;
+textarea {
+ width: 250px;
+ height: 150px;
+ overflow: auto; /* IE always renders vertical scrollbar without this */
+ vertical-align: top;
}
-#columnarForm textarea {
- display: block;
- width: 15em;
+input[type=checkbox], input[type=radio] {
+ background-color: transparent;
+ border: 0;
+ padding: 0;
}
-#columnarForm label {
- display: block;
- margin-bottom: 1em;
- font-weight: bold;
+input:focus, select:focus, textarea:focus {
+ background-color: #ffffff;
+ border: 1px solid #eeeeee;
+ outline: 0;
+ -moz-box-shadow: 0 0 0.5em #ffffff;
+ -webkit-box-shadow: 0 0 0.5em #ffffff;
+ box-shadow: 0 0 0.5em #ffffff;
}
-#columnarForm label.first {
- padding-top: 1em;
+.required-indicator {
+ color: #48802C;
+ display: inline-block;
+ font-weight: bold;
+ margin-left: 0.3em;
+ position: relative;
+ top: 0.1em;
}
-#columnarForm select {
- display: block;
+ul.one-to-many {
+ display: inline-block;
+ list-style-position: inside;
+ vertical-align: top;
}
-#horizontalForm fieldset {
- display: block;
- margin: 0 0 3em 0;
- padding: 0 1em 1em 1em;
+.ie6 ul.one-to-many, .ie7 ul.one-to-many {
+ display: inline;
+ zoom: 1;
}
-#horizontalForm fieldset.radio {
- margin: 1em 0 2em 0;
+ul.one-to-many li.add {
+ list-style-type: none;
}
-#horizontalForm fieldset.radio input {
- clear: both;
- float: left;
- width: auto;
-}
+/* EMBEDDED PROPERTIES */
-#horizontalForm fieldset.radio label {
- font-weight: normal;
+fieldset.embedded {
+ background-color: transparent;
+ border: 1px solid #CCCCCC;
+ margin-left: 0;
+ margin-right: 0;
+ padding-left: 0;
+ padding-right: 0;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
}
-#horizontalForm input {
- display: block;
- width: 15em;
+fieldset.embedded legend {
+ margin: 0 1em;
}
-#horizontalForm textarea {
- display: block;
- width: 15em;
-}
+/* MESSAGES AND ERRORS */
-#horizontalForm input.submit {
- clear: both;
+.errors,
+.message {
+ font-size: 0.8em;
+ line-height: 2;
+ margin: 1em 2em;
+ padding: 0.25em;
}
-#horizontalForm label {
- float: left;
- display: block;
- margin: 1em 1em 0 0;
- font-weight: bold;
+.message {
+ background: #f3f3ff;
+ border: 1px solid #b2d1ff;
+ color: #006dba;
+ -moz-box-shadow: 0 0 0.25em #b2d1ff;
+ -webkit-box-shadow: 0 0 0.25em #b2d1ff;
+ box-shadow: 0 0 0.25em #b2d1ff;
}
-#horizontalForm select {
- display: block;
+.errors {
+ background: #fff3f3;
+ border: 1px solid #ffaaaa;
+ color: #cc0000;
+ -moz-box-shadow: 0 0 0.25em #ff8888;
+ -webkit-box-shadow: 0 0 0.25em #ff8888;
+ box-shadow: 0 0 0.25em #ff8888;
}
-#marginForm fieldset {
- display: block;
- margin: 0 0 1em 0;
- border: 0 solid #FFFFFF;
- border-top: 1px solid #000000;
- padding: 0 1em 1em 1em;
+.errors ul,
+.message {
+ padding: 0;
}
-#marginForm fieldset.radio {
- margin: 0 0 0 -1em;
- border: 0 solid #FFFFFF;
+.errors li {
+ list-style: none;
+ background: transparent url(../images/skin/exclamation.png) 0.5em 50% no-repeat;
+ text-indent: 2.2em;
}
-#marginForm fieldset.radio input {
- position: static;
- clear: both;
- float: left;
+.message {
+ background: transparent url(../images/skin/information.png) 0.5em 50% no-repeat;
+ text-indent: 2.2em;
}
-#marginForm fieldset.radio label {
- position: relative;
- top: -1.25em;
- display: inline;
- width: auto;
- margin: 0 0 0 8em;
- font-weight: bold;
- font-weight: normal;
-}
+/* form fields with errors */
-#marginForm fieldset.radio legend {
- float: left;
- font-weight: bold;
+.error input, .error select, .error textarea {
+ background: #fff3f3;
+ border-color: #ffaaaa;
+ color: #cc0000;
}
-#marginForm input {
- position: relative;
- top: -1.4em;
- left: 8em;
- display: block;
+.error input:focus, .error select:focus, .error textarea:focus {
+ -moz-box-shadow: 0 0 0.5em #ffaaaa;
+ -webkit-box-shadow: 0 0 0.5em #ffaaaa;
+ box-shadow: 0 0 0.5em #ffaaaa;
}
-#marginForm textarea {
- position: relative;
- top: -1.4em;
- left: 8em;
- display: block;
-}
+/* same effects for browsers that support HTML5 client-side validation (these have to be specified separately or IE will ignore the entire rule) */
-#marginForm input.submit {
- clear: both;
- top: 0;
+input:invalid, select:invalid, textarea:invalid {
+ background: #fff3f3;
+ border-color: #ffaaaa;
+ color: #cc0000;
}
-#marginForm label {
- clear: both;
- float: left;
- display: block;
- width: 8em;
- margin-top: -1em;
- font-weight: bold;
+input:invalid:focus, select:invalid:focus, textarea:invalid:focus {
+ -moz-box-shadow: 0 0 0.5em #ffaaaa;
+ -webkit-box-shadow: 0 0 0.5em #ffaaaa;
+ box-shadow: 0 0 0.5em #ffaaaa;
}
-#marginForm label.first {
- margin-top: 1em;
-}
+/* TABLES */
-#marginForm select {
- position: relative;
- top: -1.4em;
- left: 8em;
- display: block;
+table {
+ border-top: 1px solid #DFDFDF;
+ border-collapse: collapse;
+ width: 100%;
+ margin-bottom: 1em;
}
-#verticalForm fieldset {
- display: block;
- width: 17em;
- margin: 0 0 3em 0;
- padding: 0 1em 1em 1em;
+tr {
+ border: 0;
}
-#verticalForm label {
- float: none;
+tr>td:first-child, tr>th:first-child {
+ padding-left: 1.25em;
}
-#verticalForm fieldset.radio {
- width: 15em;
- margin: 1em 0 2em 0;
+tr>td:last-child, tr>th:last-child {
+ padding-right: 1.25em;
}
-#verticalForm fieldset.radio input {
- clear: both;
- float: left;
- width: auto;
+td, th {
+ line-height: 1.5em;
+ padding: 0.5em 0.6em;
+ text-align: left;
+ vertical-align: top;
}
-#verticalForm fieldset.radio label {
- font-weight: normal;
+th {
+ background-color: #efefef;
+ background-image: -moz-linear-gradient(top, #ffffff, #eaeaea);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ffffff), color-stop(1, #eaeaea));
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorStr = '#ffffff', EndColorStr = '#eaeaea');
+ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#eaeaea')";
+ color: #666666;
+ font-weight: bold;
+ line-height: 1.7em;
+ padding: 0.2em 0.6em;
}
-#verticalForm input {
- display: block;
- width: 20em;
+thead th {
+ white-space: nowrap;
}
-#verticalForm textarea {
+th a {
display: block;
- width: 20em;
+ text-decoration: none;
}
-#verticalForm label {
- display: block;
- margin-bottom: 1em;
- margin-top: 1em;
- font-weight: bold;
+th a:link, th a:visited {
+ color: #666666;
}
-#verticalForm label.first {
- padding-top: 1em;
+th a:hover, th a:focus {
+ color: #333333;
}
-#verticalForm select {
- display: block;
+th.sortable a {
+ background-position: right;
+ background-repeat: no-repeat;
+ padding-right: 1.1em;
}
-/* details section */
-#detailsTopSection {
- display: block;
- clear: both;
+th.asc a {
+ background-image: url(../images/skin/sorted_asc.gif);
}
-/* browser */
-/*
-#browse {
- background: #ffffff;
- padding: 0;
- height: 95%;
- width: 100%;
- margin: 0;
- padding: 0;
-} */
-#secondaryDiv {
- height: 400px;
- display: inline-block; //
- overflow: auto;
+th.desc a {
+ background-image: url(../images/skin/sorted_desc.gif);
}
-#tagCloudDiv {
- height: 800px;
- width: 100%;
- overflow: auto;
+.odd {
+ background: #f7f7f7;
}
-/*
-#dataTreeDiv {
- float: left;
- height: auto;
- width: 40%;
- border-top: solid 1px #9cbdff;
+.even {
background: #ffffff;
- overflow: auto;
}
-#dataTreeView {
- height: 90%;
- width: 100%;
- clear: both;
+th:hover, tr:hover {
+ background: #E1F2B6;
}
-*/
-#splitter {
- height: 100%;
- width: 100%;
- border: 5px solid #aaa;
-}
-#splitter div {
- overflow: auto;
-}
-.vsplitbar {
- width: 5px;
- background: #aaa;
-}
+/* PAGINATION */
-
-#infoDiv {
- width: auto;
- height: auto;
- padding: 3px;
- overflow: auto;
- /*height: 100%;*/
- /*background: #f4f4f4;*/
+.pagination {
+ border-top: 0;
+ margin: 0;
+ padding: 0.3em 0.2em;
+ text-align: center;
+ -moz-box-shadow: 0 0 3px 1px #AAAAAA;
+ -webkit-box-shadow: 0 0 3px 1px #AAAAAA;
+ box-shadow: 0 0 3px 1px #AAAAAA;
+ background-color: #EFEFEF;
}
-#detailsToolbar {
- text-align: left;
- height: 25px;
- margin: 0px auto;
- padding: 0px;
- border: 0;
+.pagination a,
+.pagination .currentStep {
+ color: #666666;
display: inline-block;
- overflow: auto;
- width: 100%;
-}
-
-/* file upload dialog */
-#file_upload_container {
- margin: 5px;
-}
-
-/* idrop lite area */
-#idropLiteArea {
- clear: both;
- display: block;
- position: relative;
+ margin: 0 0.1em;
+ padding: 0.25em 0.7em;
+ text-decoration: none;
+ -moz-border-radius: 0.3em;
+ -webkit-border-radius: 0.3em;
+ border-radius: 0.3em;
}
-#appletMenu {
- clear: both;
- display: block;
- position: relative;
- float: none;
+.pagination a:hover, .pagination a:focus,
+.pagination .currentStep {
+ background-color: #999999;
+ color: #ffffff;
+ outline: none;
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
}
-#appletTagDiv {
- clear: both;
- display: inline-block;
- position: relative;
+.no-borderradius .pagination a:hover, .no-borderradius .pagination a:focus,
+.no-borderradius .pagination .currentStep {
+ background-color: transparent;
+ color: #444444;
+ text-decoration: underline;
}
-/* simple css-based tooltip */
-.tooltip {
- background-color: #000;
- border: 1px solid #fff;
- padding: 10px 15px;
- width: 200px;
- display: none;
- color: #fff;
- text-align: left;
- font-size: 12px;
- /* outline radius for mozilla/firefox only */
- -moz-box-shadow: 0 0 10px #000;
- -webkit-box-shadow: 0 0 10px #000;
-}
-
-/*
-.ui-layout-pane {
- overflow:visible;
-}*/
-
-/* css table layout */
-#container {
- display: table;
- border-collapse: collapse;
- /*table-layout: fixed;*/
-
-}
+/* ACTION BUTTONS */
-#container>div {
- display: table-row;
- height: 20px;
+.buttons {
+ background-color: #efefef;
+ overflow: hidden;
+ padding: 0.3em;
+ -moz-box-shadow: 0 0 3px 1px #aaaaaa;
+ -webkit-box-shadow: 0 0 3px 1px #aaaaaa;
+ box-shadow: 0 0 3px 1px #aaaaaa;
+ margin: 0.1em 0 0 0;
+ border: none;
}
-#container>div>div {
- display: table-cell;
- padding: .2em;
- vertical-align: middle;
- overflow:hidden;
-}
+.buttons input,
+.buttons a {
+ background-color: transparent;
+ border: 0;
+ color: #666666;
+ cursor: pointer;
+ display: inline-block;
+ margin: 0 0.25em 0;
+ overflow: visible;
+ padding: 0.25em 0.7em;
+ text-decoration: none;
-form { /* set width in form, not fieldset (still takes up more room w/ fieldset width */
- font:100% verdana,arial,sans-serif;
- margin: 0;
- padding: 0;
- min-width: 500px;
- /* max-width: 600px;
- width: 560px; */
+ -moz-border-radius: 0.3em;
+ -webkit-border-radius: 0.3em;
+ border-radius: 0.3em;
}
-form fieldset {
- / * clear: both; note that this clear causes inputs to break to left in ie5.x mac, commented out */
- border-color: #000;
- border-width: 1px;
- border-style: solid;
- padding: 10px; /* padding in fieldset support spotty in IE */
- margin: 0;
+.buttons input:hover, .buttons input:focus,
+.buttons a:hover, .buttons a:focus {
+ background-color: #999999;
+ color: #ffffff;
+ outline: none;
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
}
-form fieldset legend {
- font-size:1.1em; /* bump up legend font size, not too large or it'll overwrite border on left */
- /* be careful with padding, it'll shift the nice offset on top of border */
+.no-borderradius .buttons input:hover, .no-borderradius .buttons input:focus,
+.no-borderradius .buttons a:hover, .no-borderradius .buttons a:focus {
+ background-color: transparent;
+ color: #444444;
+ text-decoration: underline;
}
-form label {
- display: block; /* block float the labels to left column, set a width */
- float: left;
- width: 150px;
- padding: 0;
- margin: 5px 0 0; /* set top margin same as form input - textarea etc. elements */
- text-align: right;
+.buttons .delete, .buttons .edit, .buttons .save {
+ background-position: 0.7em center;
+ background-repeat: no-repeat;
+ text-indent: 25px;
}
-form fieldset label:first-letter { /* use first-letter pseudo-class to underline accesskey, note that */
- text-decoration:underline; /* Firefox 1.07 WIN and Explorer 5.2 Mac don't support first-letter */
- /* pseudo-class on legend elements, but do support it on label elements */
- /* we instead underline first letter on each label element and accesskey */
- /* each input. doing only legends would lessens cognitive load */
- /* opera breaks after first letter underlined legends but not labels */
+.ie6 .buttons input.delete, .ie6 .buttons input.edit, .ie6 .buttons input.save,
+.ie7 .buttons input.delete, .ie7 .buttons input.edit, .ie7 .buttons input.save {
+ padding-left: 36px;
}
-form input, form textarea {
- /* display: inline; inline display must not be set or will hide submit buttons in IE 5x mac */
- width:auto; /* set width of form elements to auto-size, otherwise watch for wrap on resize */
- /*margin:5px 0 0 10px; /* set margin on left of form elements rather than right of
- label aligns textarea better in IE */
+.buttons .delete {
+ background-image: url(../images/skin/database_delete.png);
}
-form input#reset {
- margin-left:0px; /* set margin-left back to zero on reset button (set above) */
+.buttons .edit {
+ background-image: url(../images/skin/database_edit.png);
}
-textarea { overflow: auto; }
-
-form small {
- display: block;
- margin: 0 0 5px 160px; /* instructions/comments left margin set to align w/ right column inputs */
- padding: 1px 3px;
- font-size: 88%;
+.buttons .save {
+ background-image: url(../images/skin/database_save.png);
}
-form .required{font-weight:bold;} /* uses class instead of div, more efficient */
-
-form br {
- clear:left; /* setting clear on inputs didn't work consistently, so brs added for degrade */
+a.skip {
+ position: absolute;
+ left: -9999px;
}
-
diff --git a/idrop-web/web-app/css/nextPageArrow.gif b/idrop-web/web-app/css/nextPageArrow.gif
deleted file mode 100644
index 6300aae..0000000
--- a/idrop-web/web-app/css/nextPageArrow.gif
+++ /dev/null
Binary files differ
diff --git a/idrop-web/web-app/css/nextPageArrowWhite.gif b/idrop-web/web-app/css/nextPageArrowWhite.gif
deleted file mode 100644
index 96d6069..0000000
--- a/idrop-web/web-app/css/nextPageArrowWhite.gif
+++ /dev/null
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png b/idrop-web/web-app/css/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png
index 5b5dab2..5b5dab2 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_flat_0_eeeeee_40x100.png b/idrop-web/web-app/css/overcast/images/ui-bg_flat_0_eeeeee_40x100.png
index e44f861..e44f861 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_flat_0_eeeeee_40x100.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_flat_0_eeeeee_40x100.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_flat_55_c0402a_40x100.png b/idrop-web/web-app/css/overcast/images/ui-bg_flat_55_c0402a_40x100.png
index b8c9bb1..881ea6b 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_flat_55_c0402a_40x100.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_flat_55_c0402a_40x100.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_flat_55_eeeeee_40x100.png b/idrop-web/web-app/css/overcast/images/ui-bg_flat_55_eeeeee_40x100.png
index e44f861..e44f861 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_flat_55_eeeeee_40x100.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_flat_55_eeeeee_40x100.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png b/idrop-web/web-app/css/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png
index cd79e9f..cd79e9f 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_glass_35_dddddd_1x400.png b/idrop-web/web-app/css/overcast/images/ui-bg_glass_35_dddddd_1x400.png
index 3550f06..3550f06 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_glass_35_dddddd_1x400.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_glass_35_dddddd_1x400.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_glass_60_eeeeee_1x400.png b/idrop-web/web-app/css/overcast/images/ui-bg_glass_60_eeeeee_1x400.png
index 8ad921a..8ad921a 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_glass_60_eeeeee_1x400.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_glass_60_eeeeee_1x400.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_inset-hard_75_999999_1x100.png b/idrop-web/web-app/css/overcast/images/ui-bg_inset-hard_75_999999_1x100.png
index 89b88d8..89b88d8 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_inset-hard_75_999999_1x100.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_inset-hard_75_999999_1x100.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png b/idrop-web/web-app/css/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png
index a265c62..a265c62 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png
+++ b/idrop-web/web-app/css/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-icons_3383bb_256x240.png b/idrop-web/web-app/css/overcast/images/ui-icons_3383bb_256x240.png
index 5bc66fa..905274f 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-icons_3383bb_256x240.png
+++ b/idrop-web/web-app/css/overcast/images/ui-icons_3383bb_256x240.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-icons_454545_256x240.png b/idrop-web/web-app/css/overcast/images/ui-icons_454545_256x240.png
index b757102..59bd45b 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-icons_454545_256x240.png
+++ b/idrop-web/web-app/css/overcast/images/ui-icons_454545_256x240.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-icons_70b2e1_256x240.png b/idrop-web/web-app/css/overcast/images/ui-icons_70b2e1_256x240.png
index ed8543e..ed8543e 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-icons_70b2e1_256x240.png
+++ b/idrop-web/web-app/css/overcast/images/ui-icons_70b2e1_256x240.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-icons_999999_256x240.png b/idrop-web/web-app/css/overcast/images/ui-icons_999999_256x240.png
index 50ff803..50ff803 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-icons_999999_256x240.png
+++ b/idrop-web/web-app/css/overcast/images/ui-icons_999999_256x240.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/images/ui-icons_fbc856_256x240.png b/idrop-web/web-app/css/overcast/images/ui-icons_fbc856_256x240.png
index 9d1b027..18e65a1 100755..100644
--- a/idrop-web/web-app/css/overcast/images/ui-icons_fbc856_256x240.png
+++ b/idrop-web/web-app/css/overcast/images/ui-icons_fbc856_256x240.png
Binary files differ
diff --git a/idrop-web/web-app/css/overcast/jquery-ui-1.8.7.custom.css b/idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.css
index a6a9d73..455d497 100755..100644
--- a/idrop-web/web-app/css/overcast/jquery-ui-1.8.7.custom.css
+++ b/idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.css
@@ -1,24 +1,17 @@
-/*
- * jQuery UI CSS Framework 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
+/*! jQuery UI - v1.9.0 - 2012-10-11
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CHelvetica%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=dddddd&bgTextureHeader=02_glass.png&bgImgOpacityHeader=35&borderColorHeader=bbbbbb&fcHeader=444444&iconColorHeader=999999&bgColorContent=c9c9c9&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=50&borderColorContent=aaaaaa&fcContent=333333&iconColorContent=999999&bgColorDefault=eeeeee&bgTextureDefault=02_glass.png&bgImgOpacityDefault=60&borderColorDefault=cccccc&fcDefault=3383bb&iconColorDefault=70b2e1&bgColorHover=f8f8f8&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=bbbbbb&fcHover=599fcf&iconColorHover=3383bb&bgColorActive=999999&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=75&borderColorActive=999999&fcActive=ffffff&iconColorActive=454545&bgColorHighlight=eeeeee&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=ffffff&fcHighlight=444444&iconColorHighlight=3383bb&bgColorError=c0402a&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=c0402a&fcError=ffffff&iconColorError=fbc856&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0px
+* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
+.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
+.ui-helper-clearfix:after { clear: both; }
+.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
@@ -39,26 +32,202 @@
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+.ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }
+.ui-accordion .ui-accordion-icons { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-noicons { padding-left: .7em; }
+.ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
+.ui-autocomplete { position: absolute; cursor: default; }
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
-/*
- * jQuery UI CSS Framework 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Helvetica,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=dddddd&bgTextureHeader=02_glass.png&bgImgOpacityHeader=35&borderColorHeader=bbbbbb&fcHeader=444444&iconColorHeader=999999&bgColorContent=c9c9c9&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=50&borderColorContent=aaaaaa&fcContent=333333&iconColorContent=999999&bgColorDefault=eeeeee&bgTextureDefault=02_glass.png&bgImgOpacityDefault=60&borderColorDefault=cccccc&fcDefault=3383bb&iconColorDefault=70b2e1&bgColorHover=f8f8f8&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=bbbbbb&fcHover=599fcf&iconColorHover=3383bb&bgColorActive=999999&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=75&borderColorActive=999999&fcActive=ffffff&iconColorActive=454545&bgColorHighlight=eeeeee&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=ffffff&fcHighlight=444444&iconColorHighlight=3383bb&bgColorError=c0402a&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=c0402a&fcError=ffffff&iconColorError=fbc856&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0pxdow=0px
- */
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4; }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+ position: absolute; /*must have*/
+ z-index: -1; /*must have*/
+ filter: mask(); /*must have*/
+ top: -4px; /*must have*/
+ left: -4px; /*must have*/
+ width: 200px; /*must have*/
+ height: 200px; /*must have*/
+}.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }
+.ui-menu .ui-menu { margin-top: -3px; position: absolute; }
+.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }
+.ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }
+.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
+.ui-menu .ui-menu-item a.ui-state-focus,
+.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }
+
+.ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }
+.ui-menu .ui-state-disabled a { cursor: default; }
+
+/* icon support */
+.ui-menu-icons { position: relative; }
+.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
+
+/* left-aligned */
+.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
+
+/* right-aligned */
+.ui-menu .ui-menu-icon { position: static; float: right; }
+.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
+.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
+.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; z-index: 100; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
+.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
+.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
+.ui-spinner-up { top: 0; }
+.ui-spinner-down { bottom: 0; }
+
+/* TR overrides */
+span.ui-spinner { background: none; }
+.ui-spinner .ui-icon-triangle-1-s {
+ /* need to fix icons sprite */
+ background-position:-65px -16px;
+}
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tooltip {
+ padding:8px;
+ position:absolute;
+ z-index:9999;
+ -o-box-shadow: 0 0 5px #aaa;
+ -moz-box-shadow: 0 0 5px #aaa;
+ -webkit-box-shadow: 0 0 5px #aaa;
+ box-shadow: 0 0 5px #aaa;
+}
+/* Fades and background-images don't work well together in IE6, drop the image */
+* html .ui-tooltip {
+ background-image: none;
+}
+body .ui-tooltip { border-width:2px; }
/* Component containers
----------------------------------*/
-.ui-widget { font-family: Trebuchet MS, Helvetica, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget { font-family: Trebuchet MS,Helvetica,Arial,sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Helvetica, Arial, sans-serif; font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS,Helvetica,Arial,sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #aaaaaa; background: #c9c9c9 url(images/ui-bg_inset-soft_50_c9c9c9_1x100.png) 50% bottom repeat-x; color: #333333; }
.ui-widget-content a { color: #333333; }
.ui-widget-header { border: 1px solid #bbbbbb; background: #dddddd url(images/ui-bg_glass_35_dddddd_1x400.png) 50% 50% repeat-x; color: #444444; font-weight: bold; }
@@ -72,7 +241,6 @@
.ui-state-hover a, .ui-state-hover a:hover { color: #599fcf; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #999999; background: #999999 url(images/ui-bg_inset-hard_75_999999_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
-.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
@@ -225,8 +393,8 @@
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
@@ -280,293 +448,11 @@
----------------------------------*/
/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; }
-.ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
-.ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
-.ui-corner-top { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
-.ui-corner-right { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
-.ui-corner-left { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
-.ui-corner-all { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; }
+.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
/* Overlays */
-.ui-widget-overlay { background: #eeeeee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); }
-.ui-widget-shadow { margin: -4px 0 0 -4px; padding: 4px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 0pxdow=0px; -webkit-border-radius: 0pxdow=0px; border-radius: 0pxdow=0px; }/*
- * jQuery UI Resizable 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }/*
- * jQuery UI Autocomplete 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
- list-style:none;
- padding: 2px;
- margin: 0;
- display:block;
- float: left;
-}
-.ui-menu .ui-menu {
- margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
- margin:0;
- padding: 0;
- zoom: 1;
- float: left;
- clear: left;
- width: 100%;
-}
-.ui-menu .ui-menu-item a {
- text-decoration:none;
- display:block;
- padding:.2em .4em;
- line-height:1.5;
- zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
- font-weight: normal;
- margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; }
-button.ui-button-icons-only { width: 3.7em; }
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4; }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; }
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
- display: none; /*sorry for IE5*/
- display/**/: block; /*sorry for IE5*/
- position: absolute; /*must have*/
- z-index: -1; /*must have*/
- filter: mask(); /*must have*/
- top: -4px; /*must have*/
- left: -4px; /*must have*/
- width: 200px; /*must have*/
- height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.7
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file
+.ui-widget-overlay { background: #eeeeee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x; opacity: .8;filter:Alpha(Opacity=80); }
+.ui-widget-shadow { margin: -4px 0 0 -4px; padding: 4px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .6;filter:Alpha(Opacity=60); -moz-border-radius: 0px; -khtml-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; } \ No newline at end of file
diff --git a/idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.min.css b/idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.min.css
new file mode 100644
index 0000000..bd3ee5d
--- /dev/null
+++ b/idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.0 - 2012-10-11
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CHelvetica%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=dddddd&bgTextureHeader=02_glass.png&bgImgOpacityHeader=35&borderColorHeader=bbbbbb&fcHeader=444444&iconColorHeader=999999&bgColorContent=c9c9c9&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=50&borderColorContent=aaaaaa&fcContent=333333&iconColorContent=999999&bgColorDefault=eeeeee&bgTextureDefault=02_glass.png&bgImgOpacityDefault=60&borderColorDefault=cccccc&fcDefault=3383bb&iconColorDefault=70b2e1&bgColorHover=f8f8f8&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=bbbbbb&fcHover=599fcf&iconColorHover=3383bb&bgColorActive=999999&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=75&borderColorActive=999999&fcActive=ffffff&iconColorActive=454545&bgColorHighlight=eeeeee&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=ffffff&fcHighlight=444444&iconColorHighlight=3383bb&bgColorError=c0402a&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=c0402a&fcError=ffffff&iconColorError=fbc856&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0px
+* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}.ui-autocomplete{position:absolute;cursor:default}* html .ui-autocomplete{width:1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}span.ui-spinner{background:none}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Helvetica,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Helvetica,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#c9c9c9 url(images/ui-bg_inset-soft_50_c9c9c9_1x100.png) 50% bottom repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #bbb;background:#ddd url(images/ui-bg_glass_35_dddddd_1x400.png) 50% 50% repeat-x;color:#444;font-weight:bold}.ui-widget-header a{color:#444}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#eee url(images/ui-bg_glass_60_eeeeee_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#3383bb}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#3383bb;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #bbb;background:#f8f8f8 url(images/ui-bg_glass_100_f8f8f8_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#599fcf}.ui-state-hover a,.ui-state-hover a:hover{color:#599fcf;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #999;background:#999 url(images/ui-bg_inset-hard_75_999999_1x100.png) 50% 50% repeat-x;font-weight:bold;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fff;background:#eee url(images/ui-bg_flat_55_eeeeee_40x100.png) 50% 50% repeat-x;color:#444}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#444}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #c0402a;background:#c0402a url(images/ui-bg_flat_55_c0402a_40x100.png) 50% 50% repeat-x;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_999999_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_999999_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_999999_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_70b2e1_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_3383bb_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_3383bb_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_fbc856_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:6px;-webkit-border-top-left-radius:6px;-khtml-border-top-left-radius:6px;border-top-left-radius:6px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:6px;-webkit-border-top-right-radius:6px;-khtml-border-top-right-radius:6px;border-top-right-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:6px;-webkit-border-bottom-left-radius:6px;-khtml-border-bottom-left-radius:6px;border-bottom-left-radius:6px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:6px;-webkit-border-bottom-right-radius:6px;-khtml-border-bottom-right-radius:6px;border-bottom-right-radius:6px}.ui-widget-overlay{background:#eee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x;opacity:.8;filter:Alpha(Opacity=80)}.ui-widget-shadow{margin:-4px 0 0 -4px;padding:4px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.6;filter:Alpha(Opacity=60);-moz-border-radius:0;-khtml-border-radius:0;-webkit-border-radius:0;border-radius:0} \ No newline at end of file
diff --git a/idrop-web/web-app/css/prevPageArrow.gif b/idrop-web/web-app/css/prevPageArrow.gif
deleted file mode 100644
index 337c37a..0000000
--- a/idrop-web/web-app/css/prevPageArrow.gif
+++ /dev/null
Binary files differ
diff --git a/idrop-web/web-app/css/prevPageArrowWhite.gif b/idrop-web/web-app/css/prevPageArrowWhite.gif
deleted file mode 100644
index efe76e7..0000000
--- a/idrop-web/web-app/css/prevPageArrowWhite.gif
+++ /dev/null
Binary files differ
diff --git a/idrop-web/web-app/css/reset-fonts-grids.css b/idrop-web/web-app/css/reset-fonts-grids.css
deleted file mode 100644
index ee45367..0000000
--- a/idrop-web/web-app/css/reset-fonts-grids.css
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
-Copyright (c) 2008, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.5.1
-*/
-html {
- color: #000;
- background: #FFF;
-}
-
-body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td
- {
- /*margin: 0;
- padding: 0;*/
-}
-
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-fieldset,img {
- border: 0;
-}
-
-address,caption,cite,code,dfn,em,strong,th,var {
- font-style: normal;
- font-weight: normal;
-}
-
-li {
- list-style: none;
-}
-
-caption,th {
- text-align: left;
-}
-
-h1,h2,h3,h4,h5,h6 {
- font-size: 100%;
- font-weight: normal;
-}
-
-q:before,q:after {
- content: '';
-}
-
-abbr,acronym {
- border: 0;
- font-variant: normal;
-}
-
-sup {
- vertical-align: text-top;
-}
-
-sub {
- vertical-align: text-bottom;
-}
-
-input,textarea,select {
- font-family: inherit;
- font-size: inherit;
- font-weight: inherit;
-}
-
-input,textarea,select {
- *font-size: 100%;
-}
-
-legend {
- color: #000;
-}
-
-body {
- font: 13px/1.231 arial, helvetica, clean, sans-serif;
- *font-size: small;
- *font: x-small;
-}
-
-table {
- font-size: inherit;
- font: 100%;
-}
-
-pre,code,kbd,samp,tt {
- font-family: monospace;
- *font-size: 108%;
- line-height: 100%;
-}
-
-body {
- /*text-align: center;*/
-}
-
-#ft {
- clear: both;
-}
-
-#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7
- {
- margin: auto;
- text-align: left;
- width: 57.69em;
- *width: 56.25em;
- min-width: 750px;
-}
-
-#doc2 {
- width: 73.076em;
- *width: 71.25em;
-}
-
-#doc3 {
- margin: auto 10px;
- width: auto;
-}
-
-#doc4 {
- width: 74.923em;
- *width: 73.05em;
-}
-
-.yui-b {
- position: relative;
-}
-
-.yui-b {
- _position: static;
-}
-
-#yui-main .yui-b {
- position: static;
-}
-
-#yui-main {
- width: 100%;
-}
-
-.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main {
- float: right;
- margin-left: -25em;
-}
-
-.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main {
- float: left;
- margin-right: -25em;
-}
-
-.yui-t1 .yui-b {
- float: left;
- width: 12.30769em;
- *width: 12.00em;
-}
-
-.yui-t1 #yui-main .yui-b {
- margin-left: 13.30769em;
- *margin-left: 13.05em;
-}
-
-.yui-t2 .yui-b {
- float: left;
- width: 13.8461em;
- *width: 13.50em;
-}
-
-.yui-t2 #yui-main .yui-b {
- margin-left: 14.8461em;
- *margin-left: 14.55em;
-}
-
-.yui-t3 .yui-b {
- float: left;
- width: 23.0769em;
- *width: 22.50em;
-}
-
-.yui-t3 #yui-main .yui-b {
- margin-left: 24.0769em;
- *margin-left: 23.62em;
-}
-
-.yui-t4 .yui-b {
- float: right;
- width: 13.8456em;
- *width: 13.50em;
-}
-
-.yui-t4 #yui-main .yui-b {
- margin-right: 14.8456em;
- *margin-right: 14.55em;
-}
-
-.yui-t5 .yui-b {
- float: right;
- width: 18.4615em;
- *width: 18.00em;
-}
-
-.yui-t5 #yui-main .yui-b {
- margin-right: 19.4615em;
- *margin-right: 19.125em;
-}
-
-.yui-t6 .yui-b {
- float: right;
- width: 23.0769em;
- *width: 22.50em;
-}
-
-.yui-t6 #yui-main .yui-b {
- margin-right: 24.0769em;
- *margin-right: 23.62em;
-}
-
-.yui-t7 #yui-main .yui-b {
- display: block;
- margin: 0 0 1em 0;
-}
-
-#yui-main .yui-b {
- float: none;
- width: auto;
-}
-
-.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u
- {
- float: left;
-}
-
-.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u
- {
- float: right;
-}
-
-.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first
- {
- float: left;
-}
-
-.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf
- {
- width: 49.1%;
-}
-
-.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u
- {
- width: 32%;
- margin-left: 1.99%;
-}
-
-.yui-gb .yui-u {
- *margin-left: 1.9%;
- *width: 31.9%;
-}
-
-.yui-gc div.first,.yui-gd .yui-u {
- width: 66%;
-}
-
-.yui-gd div.first {
- width: 32%;
-}
-
-.yui-ge div.first,.yui-gf .yui-u {
- width: 74.2%;
-}
-
-.yui-ge .yui-u,.yui-gf div.first {
- width: 24%;
-}
-
-.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first
- {
- margin-left: 0;
-}
-
-.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u
- {
- width: 49%;
- *width: 48.1%;
- *margin-left: 0;
-}
-
-.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first {
- *margin-right: 0;
- *width: 32%;
- _width: 31.7%;
-}
-
-.yui-g .yui-gc div.first,.yui-gd .yui-g {
- width: 66%;
-}
-
-.yui-gb .yui-g div.first {
- *margin-right: 4%;
- _margin-right: 1.3%;
-}
-
-.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first {
- *margin-right: 0;
-}
-
-.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u {
- *margin-left: 1.8%;
- _margin-left: 4%;
-}
-
-.yui-g .yui-gb .yui-u {
- _margin-left: 1.0%;
-}
-
-.yui-gb .yui-gd .yui-u {
- *width: 66%;
- _width: 61.2%;
-}
-
-.yui-gb .yui-gd div.first {
- *width: 31%;
- _width: 29.5%;
-}
-
-.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u {
- width: 32%;
- _float: right;
- margin-right: 0;
- _margin-left: 0;
-}
-
-.yui-gb .yui-gc div.first {
- width: 66%;
- *float: left;
- *margin-left: 0;
-}
-
-.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u {
- margin: 0;
-}
-
-.yui-gb .yui-gb .yui-u {
- _margin-left: .7%;
-}
-
-.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first {
- *margin-left: 0;
-}
-
-.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u {
- *width: 48.1%;
- *margin-left: 0;
-}
-
-s .yui-gb .yui-gd div.first {
- width: 32%;
-}
-
-.yui-g .yui-gd div.first {
- _width: 29.9%;
-}
-
-.yui-ge .yui-g {
- width: 24%;
-}
-
-.yui-gf .yui-g {
- width: 74.2%;
-}
-
-.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u {
- float: right;
-}
-
-.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first {
- float: left;
-}
-
-.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first {
- *width: 24%;
- _width: 20%;
-}
-
-.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u {
- *width: 73.5%;
- _width: 65.5%;
-}
-
-.yui-ge div.first .yui-gd .yui-u {
- width: 65%;
-}
-
-.yui-ge div.first .yui-gd div.first {
- width: 32%;
-}
-
-#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after
- {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-
-#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf {
- zoom: 1;
-} \ No newline at end of file
diff --git a/idrop-web/web-app/css/style.css b/idrop-web/web-app/css/style.css
index 6ed6a0f..6a873fe 100644
--- a/idrop-web/web-app/css/style.css
+++ b/idrop-web/web-app/css/style.css
@@ -1,3 +1,53 @@
+div.dataTables_length label {
+ width: 460px;
+ float: left;
+ text-align: left;
+}
+
+div.dataTables_length select {
+ width: 75px;
+}
+
+div.dataTables_filter label {
+ float: right;
+ width: 460px;
+}
+
+div.dataTables_info {
+ padding-top: 8px;
+}
+
+div.dataTables_paginate {
+ float: right;
+ margin: 0;
+}
+
+table {
+ margin: 1em 0;
+ clear: both;
+}
+
+/* css table layout */
+#container {
+ display: table;
+ border-collapse: collapse;
+ /*table-layout: fixed;*/
+
+}
+
+#container>div {
+ display: table-row;
+ height: 20px;
+}
+
+#container>div>div {
+ display: table-cell;
+ padding: .2em;
+ vertical-align: middle;
+ overflow:hidden;
+}
+
+
/*
* jsTree default theme 1.0
* Supported features: dots/no-dots, icons/no-icons, focused, loading
diff --git a/idrop-web/web-app/images/folder_icon.png b/idrop-web/web-app/images/folder_icon.png
new file mode 100644
index 0000000..eb99e3c
--- /dev/null
+++ b/idrop-web/web-app/images/folder_icon.png
Binary files differ
diff --git a/idrop-web/web-app/images/upload.png b/idrop-web/web-app/images/upload.png
new file mode 100644
index 0000000..19c32e2
--- /dev/null
+++ b/idrop-web/web-app/images/upload.png
Binary files differ
diff --git a/idrop-web/web-app/img/glyphicons-halflings-white.png b/idrop-web/web-app/img/glyphicons-halflings-white.png
new file mode 100644
index 0000000..3bf6484
--- /dev/null
+++ b/idrop-web/web-app/img/glyphicons-halflings-white.png
Binary files differ
diff --git a/idrop-web/web-app/img/glyphicons-halflings.png b/idrop-web/web-app/img/glyphicons-halflings.png
new file mode 100644
index 0000000..a996999
--- /dev/null
+++ b/idrop-web/web-app/img/glyphicons-halflings.png
Binary files differ
diff --git a/idrop-web/web-app/js/bootstrap.min.js b/idrop-web/web-app/js/bootstrap.min.js
new file mode 100644
index 0000000..e0b220f
--- /dev/null
+++ b/idrop-web/web-app/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/**
+* Bootstrap.js by @fat & @mdo
+* plugins: bootstrap-transition.js, bootstrap-modal.js, bootstrap-dropdown.js, bootstrap-scrollspy.js, bootstrap-tab.js, bootstrap-tooltip.js, bootstrap-popover.js, bootstrap-affix.js, bootstrap-alert.js, bootstrap-button.js, bootstrap-collapse.js, bootstrap-carousel.js, bootstrap-typeahead.js
+* Copyright 2012 Twitter, Inc.
+* http://www.apache.org/licenses/LICENSE-2.0.txt
+*/
+!function(a){a(function(){a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this,c=a.Event("show");this.$element.trigger(c);if(this.isShown||c.isDefaultPrevented())return;a("body").addClass("modal-open"),this.isShown=!0,this.escape(),this.backdrop(function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in").attr("aria-hidden",!1).focus(),b.enforceFocus(),c?b.$element.one(a.support.transition.end,function(){b.$element.trigger("shown")}):b.$element.trigger("shown")})},hide:function(b){b&&b.preventDefault();var c=this;b=a.Event("hide"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,a("body").removeClass("modal-open"),this.escape(),a(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),a.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var b=this;a(document).on("focusin.modal",function(a){b.$element[0]!==a.target&&!b.$element.has(a.target).length&&b.$element.focus()})},escape:function(){var a=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(b){b.which==27&&a.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),b.hideModal()},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),b.hideModal()})},hideModal:function(a){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,a.proxy(this.removeBackdrop,this)):this.removeBackdrop()):b&&b()}},a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=a.extend({},a.fn.modal.defaults,d.data(),typeof c=="object"&&c);e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():f.show&&e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},a.fn.modal.Constructor=b,a(function(){a("body").on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f).one("hide",function(){c.focus()})})})}(window.jQuery),!function(a){function d(){e(a(b)).removeClass("open")}function e(b){var c=b.attr("data-target"),d;return c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,"")),d=a(c),d.length||(d=b.parent()),d}var b="[data-toggle=dropdown]",c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),f,g;if(c.is(".disabled, :disabled"))return;return f=e(c),g=f.hasClass("open"),d(),g||(f.toggleClass("open"),c.focus()),!1},keydown:function(b){var c,d,f,g,h,i;if(!/(38|40|27)/.test(b.keyCode))return;c=a(this),b.preventDefault(),b.stopPropagation();if(c.is(".disabled, :disabled"))return;g=e(c),h=g.hasClass("open");if(!h||h&&b.keyCode==27)return c.click();d=a("[role=menu] li:not(.divider) a",g);if(!d.length)return;i=d.index(d.filter(":focus")),b.keyCode==38&&i>0&&i--,b.keyCode==40&&i<d.length-1&&i++,~i||(i=0),d.eq(i).focus()}},a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a(function(){a("html").on("click.dropdown.data-api touchstart.dropdown.data-api",d),a("body").on("click.dropdown touchstart.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",b,c.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",b+", [role=menu]",c.prototype.keydown)})}(window.jQuery),!function(a){function b(b,c){var d=a.proxy(this.process,this),e=a(b).is("body")?a(window):a(b),f;this.options=a.extend({},a.fn.scrollspy.defaults,c),this.$scrollElement=e.on("scroll.scroll-spy.data-api",d),this.selector=(this.options.target||(f=a(b).attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=a("body"),this.refresh(),this.process()}b.prototype={constructor:b,refresh:function(){var b=this,c;this.offsets=a([]),this.targets=a([]),c=this.$body.find(this.selector).map(function(){var b=a(this),c=b.data("target")||b.attr("href"),d=/^#\w/.test(c)&&a(c);return d&&d.length&&[[d.position().top,c]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},activate:function(b){var c,d;this.activeTarget=b,a(this.selector).parent(".active").removeClass("active"),d=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',c=a(d).parent("li").addClass("active"),c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active")),c.trigger("activate")}},a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f,g;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active a").last()[0],g=a.Event("show",{relatedTarget:e}),b.trigger(g);if(g.isDefaultPrevented())return;f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}},a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a(function(){a("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})})}(window.jQuery),!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.remove().css({top:0,left:0,display:"block"}).appendTo(b?this.$element:document.body),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.css(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).remove()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.remove()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.remove(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0,html:!0}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(a){var b=function(b,c){this.options=a.extend({},a.fn.affix.defaults,c),this.$window=a(window).on("scroll.affix.data-api",a.proxy(this.checkPosition,this)),this.$element=a(b),this.checkPosition()};b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var b=a(document).height(),c=this.$window.scrollTop(),d=this.$element.offset(),e=this.options.offset,f=e.bottom,g=e.top,h="affix affix-top affix-bottom",i;typeof e!="object"&&(f=g=e),typeof g=="function"&&(g=e.top()),typeof f=="function"&&(f=e.bottom()),i=this.unpin!=null&&c+this.unpin<=d.top?!1:f!=null&&d.top+this.$element.height()>=b-f?"bottom":g!=null&&c<=g?"top":!1;if(this.affixed===i)return;this.affixed=i,this.unpin=i=="bottom"?d.top-c:null,this.$element.removeClass(h).addClass("affix"+(i?"-"+i:""))},a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("affix"),f=typeof c=="object"&&c;e||d.data("affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.defaults={offset:0},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery),!function(a){var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning)return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),a.support.transition&&this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning)return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();c[a(e).hasClass("in")?"addClass":"removeClass"]("collapsed"),a(e).collapse(f)})})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=c,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},to:function(b){var c=this.$element.find(".item.active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j=a.Event("slide",{relatedTarget:e[0]});this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();if(e.hasClass("active"))return;if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=a(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(a)).change(),this.hide()},updater:function(a){return a},show:function(){var b=a.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:b.top+b.height,left:b.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(c=a.isFunction(this.source)?this.source(this.query,a.proxy(this.process,this)):this.source,c?this.process(c):this)},process:function(b){var c=this;return b=a.grep(b,function(a){return c.matcher(a)}),b=this.sorter(b),b.length?this.render(b.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(a){return~a.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){var b=[],c=[],d=[],e;while(e=a.shift())e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?c.push(e):d.push(e):b.push(e);return b.concat(c,d)},highlighter:function(a){var b=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return a.replace(new RegExp("("+b+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),(a.browser.chrome||a.browser.webkit||a.browser.msie)&&this.$element.on("keydown",a.proxy(this.keydown,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this))},move:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault(),this.prev();break;case 40:a.preventDefault(),this.next()}a.stopPropagation()},keydown:function(b){this.suppressKeyPressRepeat=!~a.inArray(b.keyCode,[40,38,9,13,27]),this.move(b)},keypress:function(a){if(this.suppressKeyPressRepeat)return;this.move(a)},keyup:function(a){switch(a.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation(),a.preventDefault()},blur:function(a){var b=this;setTimeout(function(){b.hide()},150)},click:function(a){a.stopPropagation(),a.preventDefault(),this.select()},mouseenter:function(b){this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")}},a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},a.fn.typeahead.Constructor=b,a(function(){a("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;b.preventDefault(),c.typeahead(c.data())})})}(window.jQuery) \ No newline at end of file
diff --git a/idrop-web/web-app/js/bundles/messages.properties b/idrop-web/web-app/js/bundles/messages.properties
index 09a604f..f465db7 100644
--- a/idrop-web/web-app/js/bundles/messages.properties
+++ b/idrop-web/web-app/js/bundles/messages.properties
@@ -2,6 +2,8 @@
msg_hello = Hello
msg_world = World
msg_complex = Good morning {0}!
+msg_delete_selected_file=Delete selected file?
+msg_file_deleted=File deleted
msg.path.missing = No file selected
msg_password_no_data = No password data found
msg_password_successful = Password change successful
diff --git a/idrop-web/web-app/js/jquery.layout.min-1.3.0.js b/idrop-web/web-app/js/jquery.layout.min-1.3.0.js
deleted file mode 100644
index 09e92fb..0000000
--- a/idrop-web/web-app/js/jquery.layout.min-1.3.0.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- jquery.layout 1.3.0 - Release Candidate 29.15
- $Date: 2011-06-25 08:00:00 (Sat, 25 Jun 2011) $
- $Rev: 302915 $
-
- Copyright (c) 2010
- Fabrizio Balliano (http://www.fabrizioballiano.net)
- Kevin Dalman (http://allpro.net)
-
- Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html)
- and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
-
- Changelog: http://layout.jquery-dev.net/changelog.cfm#1.3.0.rc29.15
-
- Docs: http://layout.jquery-dev.net/documentation.html
- Tips: http://layout.jquery-dev.net/tips.html
- Help: http://groups.google.com/group/jquery-ui-layout
-*/
-(function($){$.layout={version:"1.3.rc29.15",revision:0.032915,language:{Open:"Open",Close:"Close",Resize:"Resize",Slide:"Slide Open",Pin:"Pin",Unpin:"Un-Pin",noRoomToOpenTip:"Not enough room to show this pane.",pane:"pane",selector:"selector",errButton:"Error Adding Button \n\nInvalid ",errContainerMissing:"UI Layout Initialization Error\n\nThe specified layout-container does not exist.",errCenterPaneMissing:"UI Layout Initialization Error\n\nThe center-pane element does not exist.\n\nThe center-pane is a required element.",
-errContainerHeight:"UI Layout Initialization Warning\n\nThe layout-container \"CONTAINER\" has no height.\n\nTherefore the layout is 0-height and hence 'invisible'!"},browser:{mozilla:!!$.browser.mozilla,webkit:!!$.browser.webkit||!!$.browser.safari,msie:!!$.browser.msie,isIE6:!!$.browser.msie&&$.browser.version==6,boxModel:false},scrollbarWidth:function(){return window.scrollbarWidth||$.layout.getScrollbarSize("width")},scrollbarHeight:function(){return window.scrollbarHeight||$.layout.getScrollbarSize("height")},
-getScrollbarSize:function(dim){var $c=$('<div style="position: absolute; top: -10000px; left: -10000px; width: 100px; height: 100px; overflow: scroll;"></div>').appendTo("body");var d={width:$c.width()-$c[0].clientWidth,height:$c.height()-$c[0].clientHeight};$c.remove();window.scrollbarWidth=d.width;window.scrollbarHeight=d.height;return dim.match(/^(width|height)$/i)?d[dim]:d},showInvisibly:function($E,force){if(!$E)return{};if(!$E.jquery)$E=$($E);var CSS={display:$E.css("display"),visibility:$E.css("visibility")};
-if(force||CSS.display=="none"){$E.css({display:"block",visibility:"hidden"});return CSS}else return{}},getElementDimensions:function($E){var d={},x=d.css={},i={},b,p,N=$.layout.cssNum,off=$E.offset();d.offsetLeft=off.left;d.offsetTop=off.top;$.each("Left,Right,Top,Bottom".split(","),function(idx,e){b=x["border"+e]=$.layout.borderWidth($E,e);p=x["padding"+e]=$.layout.cssNum($E,"padding"+e);i[e]=b+p;d["inset"+e]=p});d.offsetWidth=$E.innerWidth();d.offsetHeight=$E.innerHeight();d.outerWidth=$E.outerWidth();
-d.outerHeight=$E.outerHeight();d.innerWidth=Math.max(0,d.outerWidth-i.Left-i.Right);d.innerHeight=Math.max(0,d.outerHeight-i.Top-i.Bottom);x.width=$E.width();x.height=$E.height();x.top=N($E,"top",true);x.bottom=N($E,"bottom",true);x.left=N($E,"left",true);x.right=N($E,"right",true);return d},getElementCSS:function($E,list){var CSS={},style=$E[0].style,props=list.split(","),sides="Top,Bottom,Left,Right".split(","),attrs="Color,Style,Width".split(","),p,s,a,i,j,k;for(i=0;i<props.length;i++){p=props[i];
-if(p.match(/(border|padding|margin)$/))for(j=0;j<4;j++){s=sides[j];if(p=="border")for(k=0;k<3;k++){a=attrs[k];CSS[p+s+a]=style[p+s+a]}else CSS[p+s]=style[p+s]}else CSS[p]=style[p]}return CSS},cssWidth:function($E,outerWidth){var b=$.layout.borderWidth,n=$.layout.cssNum;if(outerWidth<=0)return 0;if(!$.layout.browser.boxModel)return outerWidth;var W=outerWidth-b($E,"Left")-b($E,"Right")-n($E,"paddingLeft")-n($E,"paddingRight");return Math.max(0,W)},cssHeight:function($E,outerHeight){var b=$.layout.borderWidth,
-n=$.layout.cssNum;if(outerHeight<=0)return 0;if(!$.layout.browser.boxModel)return outerHeight;var H=outerHeight-b($E,"Top")-b($E,"Bottom")-n($E,"paddingTop")-n($E,"paddingBottom");return Math.max(0,H)},cssNum:function($E,prop,allowAuto){if(!$E.jquery)$E=$($E);var CSS=$.layout.showInvisibly($E),p=$.curCSS($E[0],prop,true),v=allowAuto&&p=="auto"?p:parseInt(p,10)||0;$E.css(CSS);return v},borderWidth:function(el,side){if(el.jquery)el=el[0];var b="border"+side.substr(0,1).toUpperCase()+side.substr(1);
-return $.curCSS(el,b+"Style",true)=="none"?0:parseInt($.curCSS(el,b+"Width",true),10)||0},isMouseOverElem:function(evt,el){var $E=$(el||this),d=$E.offset(),T=d.top,L=d.left,R=L+$E.outerWidth(),B=T+$E.outerHeight(),x=evt.pageX,y=evt.pageY;return $.layout.browser.msie&&x<0&&y<0||x>=L&&x<=R&&y>=T&&y<=B}};$.fn.layout=function(opts){var lang=$.layout.language,options={name:"",containerClass:"ui-layout-container",scrollToBookmarkOnLoad:true,resizeWithWindow:true,resizeWithWindowDelay:200,resizeWithWindowMaxDelay:0,
-onresizeall_start:null,onresizeall_end:null,onload_start:null,onload_end:null,onunload_start:null,onunload_end:null,autoBindCustomButtons:false,zIndex:null,initPanes:true,showErrorMessages:true,defaults:{applyDemoStyles:false,closable:true,resizable:true,slidable:true,initClosed:false,initHidden:false,contentSelector:".ui-layout-content",contentIgnoreSelector:".ui-layout-ignore",findNestedContent:false,paneClass:"ui-layout-pane",resizerClass:"ui-layout-resizer",togglerClass:"ui-layout-toggler",buttonClass:"ui-layout-button",
-minSize:0,maxSize:0,spacing_open:6,spacing_closed:6,togglerLength_open:50,togglerLength_closed:50,togglerAlign_open:"center",togglerAlign_closed:"center",togglerTip_open:lang.Close,togglerTip_closed:lang.Open,togglerContent_open:"",togglerContent_closed:"",resizerDblClickToggle:true,autoResize:true,autoReopen:true,resizerDragOpacity:1,maskIframesOnResize:true,resizeNestedLayout:true,resizeWhileDragging:false,resizeContentWhileDragging:false,noRoomToOpenTip:lang.noRoomToOpenTip,resizerTip:lang.Resize,
-sliderTip:lang.Slide,sliderCursor:"pointer",slideTrigger_open:"click",slideTrigger_close:"mouseleave",slideDelay_open:300,slideDelay_close:300,hideTogglerOnSlide:false,preventQuickSlideClose:$.layout.browser.webkit,preventPrematureSlideClose:false,showOverflowOnHover:false,enableCursorHotkey:true,customHotkeyModifier:"SHIFT",fxName:"slide",fxSpeed:null,fxSettings:{},fxOpacityFix:true,triggerEventsOnLoad:false,triggerEventsWhileDragging:true,onshow_start:null,onshow_end:null,onhide_start:null,onhide_end:null,
-onopen_start:null,onopen_end:null,onclose_start:null,onclose_end:null,onresize_start:null,onresize_end:null,onsizecontent_start:null,onsizecontent_end:null,onswap_start:null,onswap_end:null,ondrag_start:null,ondrag_end:null},north:{paneSelector:".ui-layout-north",size:"auto",resizerCursor:"n-resize",customHotkey:""},south:{paneSelector:".ui-layout-south",size:"auto",resizerCursor:"s-resize",customHotkey:""},east:{paneSelector:".ui-layout-east",size:200,resizerCursor:"e-resize",customHotkey:""},west:{paneSelector:".ui-layout-west",
-size:200,resizerCursor:"w-resize",customHotkey:""},center:{paneSelector:".ui-layout-center",minWidth:0,minHeight:0},useStateCookie:false,cookie:{name:"",autoSave:true,autoLoad:true,domain:"",path:"",expires:"",secure:false,keys:"north.size,south.size,east.size,west.size,"+"north.isClosed,south.isClosed,east.isClosed,west.isClosed,"+"north.isHidden,south.isHidden,east.isHidden,west.isHidden"}},effects={slide:{all:{duration:"fast"},north:{direction:"up"},south:{direction:"down"},east:{direction:"right"},
-west:{direction:"left"}},drop:{all:{duration:"slow"},north:{direction:"up"},south:{direction:"down"},east:{direction:"right"},west:{direction:"left"}},scale:{all:{duration:"fast"}}},state={id:"layout"+(new Date).getTime(),initialized:false,container:{},north:{},south:{},east:{},west:{},center:{},cookie:{}},_c={allPanes:"north,south,west,east,center",borderPanes:"north,south,west,east",altSide:{north:"south",south:"north",east:"west",west:"east"},hidden:{visibility:"hidden"},visible:{visibility:"visible"},
-zIndex:{pane_normal:1,resizer_normal:2,iframe_mask:2,pane_sliding:100,pane_animate:1E3,resizer_drag:1E4},resizers:{cssReq:{position:"absolute",padding:0,margin:0,fontSize:"1px",textAlign:"left",overflow:"hidden"},cssDemo:{background:"#DDD",border:"none"}},togglers:{cssReq:{position:"absolute",display:"block",padding:0,margin:0,overflow:"hidden",textAlign:"center",fontSize:"1px",cursor:"pointer",zIndex:1},cssDemo:{background:"#AAA"}},content:{cssReq:{position:"relative"},cssDemo:{overflow:"auto",padding:"10px"},
-cssDemoPane:{overflow:"hidden",padding:0}},panes:{cssReq:{position:"absolute",margin:0},cssDemo:{padding:"10px",background:"#FFF",border:"1px solid #BBB",overflow:"auto"}},north:{side:"Top",sizeType:"Height",dir:"horz",cssReq:{top:0,bottom:"auto",left:0,right:0,width:"auto"},pins:[]},south:{side:"Bottom",sizeType:"Height",dir:"horz",cssReq:{top:"auto",bottom:0,left:0,right:0,width:"auto"},pins:[]},east:{side:"Right",sizeType:"Width",dir:"vert",cssReq:{left:"auto",right:0,top:"auto",bottom:"auto",
-height:"auto"},pins:[]},west:{side:"Left",sizeType:"Width",dir:"vert",cssReq:{left:0,right:"auto",top:"auto",bottom:"auto",height:"auto"},pins:[]},center:{dir:"center",cssReq:{left:"auto",right:"auto",top:"auto",bottom:"auto",height:"auto",width:"auto"}}},timer={data:{},set:function(s,fn,ms){timer.clear(s);timer.data[s]=setTimeout(fn,ms)},clear:function(s){var t=timer.data;if(t[s]){clearTimeout(t[s]);delete t[s]}}},isStr=function(o){try{return typeof o=="string"||typeof o=="object"&&o.constructor.toString().match(/string/i)!==
-null}catch(e){return false}},str=function(o){return isStr(o)?$.trim(o):o==undefined||o==null?"":o},min=function(x,y){return Math.min(x,y)},max=function(x,y){return Math.max(x,y)},_transformData=function(d){var a,json={cookie:{},defaults:{fxSettings:{}},north:{fxSettings:{}},south:{fxSettings:{}},east:{fxSettings:{}},west:{fxSettings:{}},center:{fxSettings:{}}};d=d||{};if(d.effects||d.cookie||d.defaults||d.north||d.south||d.west||d.east||d.center)json=$.extend(true,json,d);else $.each(d,function(key,
-val){a=key.split("__");if(!a[1]||json[a[0]])json[a[1]?a[0]:"defaults"][a[1]?a[1]:a[0]]=val});return json},_queue=function(action,pane,param){var tried=[];$.each(_c.borderPanes.split(","),function(i,p){if(_c[p].isMoving){bindCallback(p);return false}});function bindCallback(p){var c=_c[p];if(!c.doCallback){c.doCallback=true;c.callback=action+","+pane+","+(param?1:0)}else{tried.push(p);var cbPane=c.callback.split(",")[1];if(cbPane!=pane&&!$.inArray(cbPane,tried)>=0)bindCallback(cbPane)}}},_dequeue=
-function(pane){var c=_c[pane];_c.isLayoutBusy=false;delete c.isMoving;if(!c.doCallback||!c.callback)return;c.doCallback=false;var cb=c.callback.split(","),param=cb[2]>0?true:false;if(cb[0]=="open")open(cb[1],param);else if(cb[0]=="close")close(cb[1],param);if(!c.doCallback)c.callback=null},_execCallback=function(pane,v_fn){if(!v_fn)return;var fn;try{if(typeof v_fn=="function")fn=v_fn;else if(!isStr(v_fn))return;else if(v_fn.match(/,/)){var args=v_fn.split(",");fn=eval(args[0]);if(typeof fn=="function"&&
-args.length>1)return fn(args[1])}else fn=eval(v_fn);if(typeof fn=="function")if(pane&&$Ps[pane])return fn(pane,$Ps[pane],state[pane],options[pane],options.name);else return fn(Instance,state,options,options.name)}catch(ex){}},_fixIframe=function(pane){if($.layout.browser.mozilla)return;var $P=$Ps[pane];if(state[pane].tagName=="IFRAME")$P.css(_c.hidden).css(_c.visible);else $P.find("IFRAME").css(_c.hidden).css(_c.visible)},cssW=function(el,outerWidth){var str=isStr(el),$E=str?$Ps[el]:$(el);if(!$E.length)return 0;
-if(isNaN(outerWidth))outerWidth=str?getPaneSize(el):$E.outerWidth();return $.layout.cssWidth($E,outerWidth)},cssH=function(el,outerHeight){var str=isStr(el),$E=str?$Ps[el]:$(el);if(!$E.length)return 0;if(isNaN(outerHeight))outerHeight=str?getPaneSize(el):$E.outerHeight();return $.layout.cssHeight($E,outerHeight)},cssSize=function(pane,outerSize){if(_c[pane].dir=="horz")return cssH(pane,outerSize);else return cssW(pane,outerSize)},cssMinDims=function(pane){var dir=_c[pane].dir,d={minWidth:1001-cssW(pane,
-1E3),minHeight:1001-cssH(pane,1E3)};if(dir=="horz")d.minSize=d.minHeight;if(dir=="vert")d.minSize=d.minWidth;return d},setOuterWidth=function(el,outerWidth,autoHide){var $E=el,w;if(isStr(el))$E=$Ps[el];else if(!el.jquery)$E=$(el);w=cssW($E,outerWidth);$E.css({width:w});if(w>0){if(autoHide&&$E.data("autoHidden")&&$E.innerHeight()>0){$E.show().data("autoHidden",false);if(!$.layout.browser.mozilla)$E.css(_c.hidden).css(_c.visible)}}else if(autoHide&&!$E.data("autoHidden"))$E.hide().data("autoHidden",
-true)},setOuterHeight=function(el,outerHeight,autoHide){var $E=el,h;if(isStr(el))$E=$Ps[el];else if(!el.jquery)$E=$(el);h=cssH($E,outerHeight);$E.css({height:h,visibility:"visible"});if(h>0&&$E.innerWidth()>0){if(autoHide&&$E.data("autoHidden")){$E.show().data("autoHidden",false);if(!$.layout.browser.mozilla)$E.css(_c.hidden).css(_c.visible)}}else if(autoHide&&!$E.data("autoHidden"))$E.hide().data("autoHidden",true)},setOuterSize=function(el,outerSize,autoHide){if(_c[pane].dir=="horz")setOuterHeight(el,
-outerSize,autoHide);else setOuterWidth(el,outerSize,autoHide)},_parseSize=function(pane,size,dir){if(!dir)dir=_c[pane].dir;if(isStr(size)&&size.match(/%/))size=parseInt(size,10)/100;if(size===0)return 0;else if(size>=1)return parseInt(size,10);else if(size>0){var o=options,avail;if(dir=="horz")avail=sC.innerHeight-($Ps.north?o.north.spacing_open:0)-($Ps.south?o.south.spacing_open:0);else if(dir=="vert")avail=sC.innerWidth-($Ps.west?o.west.spacing_open:0)-($Ps.east?o.east.spacing_open:0);return Math.floor(avail*
-size)}else if(pane=="center")return 0;else{var $P=$Ps[pane],dim=dir=="horz"?"height":"width",vis=$.layout.showInvisibly($P),s=$P.css(dim);$P.css(dim,"auto");size=dim=="height"?$P.outerHeight():$P.outerWidth();$P.css(dim,s).css(vis);return size}},getPaneSize=function(pane,inclSpace){var $P=$Ps[pane],o=options[pane],s=state[pane],oSp=inclSpace?o.spacing_open:0,cSp=inclSpace?o.spacing_closed:0;if(!$P||s.isHidden)return 0;else if(s.isClosed||s.isSliding&&inclSpace)return cSp;else if(_c[pane].dir=="horz")return $P.outerHeight()+
-oSp;else return $P.outerWidth()+oSp},setSizeLimits=function(pane,slide){if(!isInitialized())return;var o=options[pane],s=state[pane],c=_c[pane],dir=c.dir,side=c.side.toLowerCase(),type=c.sizeType.toLowerCase(),isSliding=slide!=undefined?slide:s.isSliding,$P=$Ps[pane],paneSpacing=o.spacing_open,altPane=_c.altSide[pane],altS=state[altPane],$altP=$Ps[altPane],altPaneSize=!$altP||altS.isVisible===false||altS.isSliding?0:dir=="horz"?$altP.outerHeight():$altP.outerWidth(),altPaneSpacing=(!$altP||altS.isHidden?
-0:options[altPane][altS.isClosed!==false?"spacing_closed":"spacing_open"])||0,containerSize=dir=="horz"?sC.innerHeight:sC.innerWidth,minCenterDims=cssMinDims("center"),minCenterSize=dir=="horz"?max(options.center.minHeight,minCenterDims.minHeight):max(options.center.minWidth,minCenterDims.minWidth),limitSize=containerSize-paneSpacing-(isSliding?0:_parseSize("center",minCenterSize,dir)+altPaneSize+altPaneSpacing),minSize=s.minSize=max(_parseSize(pane,o.minSize),cssMinDims(pane).minSize),maxSize=s.maxSize=
-min(o.maxSize?_parseSize(pane,o.maxSize):1E5,limitSize),r=s.resizerPosition={},top=sC.insetTop,left=sC.insetLeft,W=sC.innerWidth,H=sC.innerHeight,rW=o.spacing_open;switch(pane){case "north":r.min=top+minSize;r.max=top+maxSize;break;case "west":r.min=left+minSize;r.max=left+maxSize;break;case "south":r.min=top+H-maxSize-rW;r.max=top+H-minSize-rW;break;case "east":r.min=left+W-maxSize-rW;r.max=left+W-minSize-rW;break}},calcNewCenterPaneDims=function(){var d={top:getPaneSize("north",true),bottom:getPaneSize("south",
-true),left:getPaneSize("west",true),right:getPaneSize("east",true),width:0,height:0};d.width=sC.innerWidth-d.left-d.right;d.height=sC.innerHeight-d.bottom-d.top;d.top+=sC.insetTop;d.bottom+=sC.insetBottom;d.left+=sC.insetLeft;d.right+=sC.insetRight;return d},elDims=function($E){return $.layout.getElementDimensions($E)},elCSS=function($E,list){return $.layout.getElementCSS($E,list)},getHoverClasses=function(el,allStates){var $El=$(el),type=$El.data("layoutRole"),pane=$El.data("layoutEdge"),o=options[pane],
-root=o[type+"Class"],_pane="-"+pane,_open="-open",_closed="-closed",_slide="-sliding",_hover="-hover ",_state=$El.hasClass(root+_closed)?_closed:_open,_alt=_state==_closed?_open:_closed,classes=root+_hover+(root+_pane+_hover)+(root+_state+_hover)+(root+_pane+_state+_hover);if(allStates)classes+=root+_alt+_hover+(root+_pane+_alt+_hover);if(type=="resizer"&&$El.hasClass(root+_slide))classes+=root+_slide+_hover+(root+_pane+_slide+_hover);return $.trim(classes)},addHover=function(evt,el){var $E=$(el||
-this);if(evt&&$E.data("layoutRole")=="toggler")evt.stopPropagation();$E.addClass(getHoverClasses($E))},removeHover=function(evt,el){var $E=$(el||this);$E.removeClass(getHoverClasses($E,true))},onResizerEnter=function(evt){$("body").disableSelection();addHover(evt,this)},onResizerLeave=function(evt,el){var e=el||this,pane=$(e).data("layoutEdge"),name=pane+"ResizerLeave";timer.clear(pane+"_openSlider");timer.clear(name);if(!el){removeHover(evt,this);timer.set(name,function(){onResizerLeave(evt,e)},
-200)}else if(!state[pane].isResizing)$("body").enableSelection()},_create=function(){initOptions();var o=options;$.layout.browser.boxModel=$.support.boxModel;if(o.useStateCookie&&o.cookie.autoLoad)loadCookie();state.creatingLayout=true;if(false===_execCallback(null,o.onload_start))return"cancel";_initContainer();initHotkeys();if(o.autoBindCustomButtons)initButtons();$(window).bind("unload."+sID,unload);if(o.initPanes)_initLayoutElements();delete state.creatingLayout;return state.initialized},isInitialized=
-function(){if(state.initialized||state.creatingLayout)return true;else return _initLayoutElements()},_initLayoutElements=function(){var o=options;if(!$N.is(":visible"))return false;if(!getPane("center").length){if(o.showErrorMessages)alert(lang.errCenterPaneMissing);return false}state.creatingLayout=true;$.extend(sC,elDims($N));initPanes();sizeContent();if(o.scrollToBookmarkOnLoad){var l=self.location;if(l.hash)l.replace(l.hash)}if(o.resizeWithWindow&&!$N.data("layoutRole"))$(window).bind("resize."+
-sID,windowResize);delete state.creatingLayout;state.initialized=true;_execCallback(null,o.onload_end||o.onload);return true},windowResize=function(){var delay=Number(options.resizeWithWindowDelay);if(delay<10)delay=100;timer.clear("winResize");timer.set("winResize",function(){timer.clear("winResize");timer.clear("winResizeRepeater");var dims=elDims($N);if(dims.innerWidth!==sC.innerWidth||dims.innerHeight!==sC.innerHeight)resizeAll()},delay);if(!timer.data["winResizeRepeater"])setWindowResizeRepeater()},
-setWindowResizeRepeater=function(){var delay=Number(options.resizeWithWindowMaxDelay);if(delay>0)timer.set("winResizeRepeater",function(){setWindowResizeRepeater();resizeAll()},delay)},unload=function(){var o=options;state.cookie=getState();_execCallback(null,o.onunload_start);if(o.useStateCookie&&o.cookie.autoSave)saveCookie();_execCallback(null,o.onunload_end||o.onunload)},_initContainer=function(){var tag=sC.tagName=$N[0].tagName,o=options,fullPage=tag=="BODY",props="overflow,position,margin,padding,border",
-CSS={},hid="hidden",isVis=$N.is(":visible");sC.selector=$N.selector.split(".slice")[0];sC.ref=tag+"/"+sC.selector;$N.data("layout",Instance).data("layoutContainer",sID).addClass(o.containerClass);if(!$N.data("layoutCSS")){if(fullPage){CSS=$.extend(elCSS($N,props),{height:$N.css("height"),overflow:$N.css("overflow"),overflowX:$N.css("overflowX"),overflowY:$N.css("overflowY")});var $H=$("html");$H.data("layoutCSS",{height:"auto",overflow:$H.css("overflow"),overflowX:$H.css("overflowX"),overflowY:$H.css("overflowY")})}else CSS=
-elCSS($N,props+",top,bottom,left,right,width,height,overflow,overflowX,overflowY");$N.data("layoutCSS",CSS)}try{if(fullPage){$("html").css({height:"100%",overflow:hid,overflowX:hid,overflowY:hid});$("body").css({position:"relative",height:"100%",overflow:hid,overflowX:hid,overflowY:hid,margin:0,padding:0,border:"none"});$.extend(sC,elDims($N))}else{CSS={overflow:hid,overflowX:hid,overflowY:hid};var p=$N.css("position"),h=$N.css("height");if(!$N.data("layoutRole"))if(!p||!p.match(/fixed|absolute|relative/))CSS.position=
-"relative";$N.css(CSS);if(isVis){$.extend(sC,elDims($N));if(o.showErrorMessages&&sC.innerHeight<2)alert(lang.errContainerHeight.replace(/CONTAINER/,sC.ref))}}}catch(ex){}},initHotkeys=function(panes){if(!panes||panes=="all")panes=_c.borderPanes;$.each(panes.split(","),function(i,pane){var o=options[pane];if(o.enableCursorHotkey||o.customHotkey){$(document).bind("keydown."+sID,keyDown);return false}})},initOptions=function(){opts=_transformData(opts);var newOpts={applyDefaultStyles:"applyDemoStyles"};
-renameOpts(opts.defaults);$.each(_c.allPanes.split(","),function(i,pane){renameOpts(opts[pane])});if(opts.effects){$.extend(effects,opts.effects);delete opts.effects}$.extend(options.cookie,opts.cookie);var globals="name,containerClass,zIndex,scrollToBookmarkOnLoad,resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay,"+"onresizeall,onresizeall_start,onresizeall_end,onload,onload_start,onload_end,onunload,onunload_start,onunload_end,"+"autoBindCustomButtons,useStateCookie,showErrorMessages";
-$.each(globals.split(","),function(i,key){if(opts[key]!==undefined)options[key]=opts[key];else if(opts.defaults[key]!==undefined){options[key]=opts.defaults[key];delete opts.defaults[key]}});$.each("paneSelector,resizerCursor,customHotkey".split(","),function(i,key){delete opts.defaults[key]});$.extend(true,options.defaults,opts.defaults);_c.center=$.extend(true,{},_c.panes,_c.center);var z=options.zIndex;if(z===0||z>0){_c.zIndex.pane_normal=z;_c.zIndex.resizer_normal=z+1;_c.zIndex.iframe_mask=z+
-1}$.extend(options.center,opts.center);var o_Center=$.extend(true,{},options.defaults,opts.defaults,options.center);var optionsCenter=("paneClass,contentSelector,applyDemoStyles,triggerEventsOnLoad,showOverflowOnHover,"+"onresize,onresize_start,onresize_end,resizeNestedLayout,resizeContentWhileDragging,findNestedContent,"+"onsizecontent,onsizecontent_start,onsizecontent_end").split(",");$.each(optionsCenter,function(i,key){options.center[key]=o_Center[key]});var o,defs=options.defaults;$.each(_c.borderPanes.split(","),
-function(i,pane){_c[pane]=$.extend(true,{},_c.panes,_c[pane]);o=options[pane]=$.extend(true,{},options.defaults,options[pane],opts.defaults,opts[pane]);if(!o.paneClass)o.paneClass="ui-layout-pane";if(!o.resizerClass)o.resizerClass="ui-layout-resizer";if(!o.togglerClass)o.togglerClass="ui-layout-toggler";$.each(["_open","_close",""],function(i,n){var sName="fxName"+n,sSpeed="fxSpeed"+n,sSettings="fxSettings"+n;o[sName]=opts[pane][sName]||opts[pane].fxName||opts.defaults[sName]||opts.defaults.fxName||
-o[sName]||o.fxName||defs[sName]||defs.fxName||"none";var fxName=o[sName];if(fxName=="none"||!$.effects||!$.effects[fxName]||!effects[fxName]&&!o[sSettings]&&!o.fxSettings)fxName=o[sName]="none";var fx=effects[fxName]||{},fx_all=fx.all||{},fx_pane=fx[pane]||{};o[sSettings]=$.extend({},fx_all,fx_pane,defs.fxSettings||{},defs[sSettings]||{},o.fxSettings,o[sSettings],opts.defaults.fxSettings,opts.defaults[sSettings]||{},opts[pane].fxSettings,opts[pane][sSettings]||{});o[sSpeed]=opts[pane][sSpeed]||opts[pane].fxSpeed||
-opts.defaults[sSpeed]||opts.defaults.fxSpeed||o[sSpeed]||o[sSettings].duration||o.fxSpeed||o.fxSettings.duration||defs.fxSpeed||defs.fxSettings.duration||fx_pane.duration||fx_all.duration||"normal"})});function renameOpts(O){for(var key in newOpts)if(O[key]!=undefined){O[newOpts[key]]=O[key];delete O[key]}}},getPane=function(pane){var sel=options[pane].paneSelector;if(sel.substr(0,1)==="#")return $N.find(sel).eq(0);else{var $P=$N.children(sel).eq(0);return $P.length?$P:$N.children("form:first").children(sel).eq(0)}},
-initPanes=function(){$.each(_c.allPanes.split(","),function(idx,pane){addPane(pane,true)});initHandles();$.each(_c.borderPanes.split(","),function(i,pane){if($Ps[pane]&&state[pane].isVisible){setSizeLimits(pane);makePaneFit(pane)}});sizeMidPanes("center");setTimeout(function(){$.each(_c.allPanes.split(","),function(i,pane){var o=options[pane];if($Ps[pane]&&state[pane].isVisible){if(o.triggerEventsOnLoad)_execCallback(pane,o.onresize_end||o.onresize);resizeNestedLayout(pane)}})},50);if(options.showErrorMessages&&
-$N.innerHeight()<2)alert(lang.errContainerHeight.replace(/CONTAINER/,sC.ref))},addPane=function(pane,force){if(!force&&!isInitialized())return;var o=options[pane],s=state[pane],c=_c[pane],fx=s.fx,dir=c.dir,spacing=o.spacing_open||0,isCenter=pane=="center",CSS={},$P=$Ps[pane],size,minSize,maxSize;if($P)removePane(pane);else $Cs[pane]=false;$P=$Ps[pane]=getPane(pane);if(!$P.length){$Ps[pane]=false;return}if(!$P.data("layoutCSS")){var props="position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border";
-$P.data("layoutCSS",elCSS($P,props))}$P.data("parentLayout",Instance).data("layoutRole","pane").data("layoutEdge",pane).css(c.cssReq).css("zIndex",_c.zIndex.pane_normal).css(o.applyDemoStyles?c.cssDemo:{}).addClass(o.paneClass+" "+o.paneClass+"-"+pane).bind("mouseenter."+sID,addHover).bind("mouseleave."+sID,removeHover);initContent(pane,false);if(!isCenter){size=s.size=_parseSize(pane,o.size);minSize=_parseSize(pane,o.minSize)||1;maxSize=_parseSize(pane,o.maxSize)||1E5;if(size>0)size=max(min(size,
-maxSize),minSize);s.isClosed=false;s.isSliding=false;s.isResizing=false;s.isHidden=false}s.tagName=$P[0].tagName;s.edge=pane;s.noRoom=false;s.isVisible=true;switch(pane){case "north":CSS.top=sC.insetTop;CSS.left=sC.insetLeft;CSS.right=sC.insetRight;break;case "south":CSS.bottom=sC.insetBottom;CSS.left=sC.insetLeft;CSS.right=sC.insetRight;break;case "west":CSS.left=sC.insetLeft;break;case "east":CSS.right=sC.insetRight;break;case "center":}if(dir=="horz")CSS.height=max(1,cssH(pane,size));else if(dir==
-"vert")CSS.width=max(1,cssW(pane,size));$P.css(CSS);if(dir!="horz")sizeMidPanes(pane,true);if(o.initClosed&&o.closable&&!o.initHidden)close(pane,true,true);else if(o.initHidden||o.initClosed)hide(pane);else if(!s.noRoom)$P.css("display","block");$P.css("visibility","visible");if(o.showOverflowOnHover)$P.hover(allowOverflow,resetOverflow);if(state.initialized){initHandles(pane);initHotkeys(pane);resizeAll();if(s.isVisible){if(o.triggerEventsOnLoad)_execCallback(pane,o.onresize_end||o.onresize);resizeNestedLayout(pane)}}},
-initHandles=function(panes){if(!panes||panes=="all")panes=_c.borderPanes;$.each(panes.split(","),function(i,pane){var $P=$Ps[pane];$Rs[pane]=false;$Ts[pane]=false;if(!$P)return;var o=options[pane],s=state[pane],c=_c[pane],rClass=o.resizerClass,tClass=o.togglerClass,side=c.side.toLowerCase(),spacing=s.isVisible?o.spacing_open:o.spacing_closed,_pane="-"+pane,_state=s.isVisible?"-open":"-closed",$R=$Rs[pane]=$("<div></div>"),$T=o.closable?$Ts[pane]=$("<div></div>"):false;if(!s.isVisible&&o.slidable)$R.attr("title",
-o.sliderTip).css("cursor",o.sliderCursor);$R.attr("id",o.paneSelector.substr(0,1)=="#"?o.paneSelector.substr(1)+"-resizer":"").data("parentLayout",Instance).data("layoutRole","resizer").data("layoutEdge",pane).css(_c.resizers.cssReq).css("zIndex",_c.zIndex.resizer_normal).css(o.applyDemoStyles?_c.resizers.cssDemo:{}).addClass(rClass+" "+rClass+_pane).appendTo($N);if($T){$T.attr("id",o.paneSelector.substr(0,1)=="#"?o.paneSelector.substr(1)+"-toggler":"").data("parentLayout",Instance).data("layoutRole",
-"toggler").data("layoutEdge",pane).css(_c.togglers.cssReq).css(o.applyDemoStyles?_c.togglers.cssDemo:{}).addClass(tClass+" "+tClass+_pane).appendTo($R);if(o.togglerContent_open)$("<span>"+o.togglerContent_open+"</span>").data("layoutRole","togglerContent").data("layoutEdge",pane).addClass("content content-open").css("display","none").appendTo($T);if(o.togglerContent_closed)$("<span>"+o.togglerContent_closed+"</span>").data("layoutRole","togglerContent").data("layoutEdge",pane).addClass("content content-closed").css("display",
-"none").appendTo($T);enableClosable(pane)}initResizable(pane);if(s.isVisible)setAsOpen(pane);else{setAsClosed(pane);bindStartSlidingEvent(pane,true)}});sizeHandles("all")},initContent=function(pane,resize){if(!isInitialized())return;var o=options[pane],sel=o.contentSelector,$P=$Ps[pane],$C;if(sel)$C=$Cs[pane]=o.findNestedContent?$P.find(sel).eq(0):$P.children(sel).eq(0);if($C&&$C.length){if(!$C.data("layoutCSS"))$C.data("layoutCSS",elCSS($C,"height"));$C.css(_c.content.cssReq);if(o.applyDemoStyles){$C.css(_c.content.cssDemo);
-$P.css(_c.content.cssDemoPane)}state[pane].content={};if(resize!==false)sizeContent(pane)}else $Cs[pane]=false},initButtons=function(){var pre="ui-layout-button-",name;$.each("toggle,open,close,pin,toggle-slide,open-slide".split(","),function(i,action){$.each(_c.borderPanes.split(","),function(ii,pane){$("."+pre+action+"-"+pane).each(function(){name=$(this).data("layoutName")||$(this).attr("layoutName");if(name==undefined||name==options.name)bindButton(this,action,pane)})})})},initResizable=function(panes){var draggingAvailable=
-typeof $.fn.draggable=="function",$Frames,side;if(!panes||panes=="all")panes=_c.borderPanes;$.each(panes.split(","),function(idx,pane){var o=options[pane],s=state[pane],c=_c[pane],side=c.dir=="horz"?"top":"left",r,live;if(!draggingAvailable||!$Ps[pane]||!o.resizable){o.resizable=false;return true}var $P=$Ps[pane],$R=$Rs[pane],base=o.resizerClass,resizerClass=base+"-drag",resizerPaneClass=base+"-"+pane+"-drag",helperClass=base+"-dragging",helperPaneClass=base+"-"+pane+"-dragging",helperLimitClass=
-base+"-dragging-limit",helperPaneLimitClass=base+"-"+pane+"-dragging-limit",helperClassesSet=false;if(!s.isClosed)$R.attr("title",o.resizerTip).css("cursor",o.resizerCursor);$R.bind("mouseenter."+sID,onResizerEnter).bind("mouseleave."+sID,onResizerLeave);$R.draggable({containment:$N[0],axis:c.dir=="horz"?"y":"x",delay:0,distance:1,helper:"clone",opacity:o.resizerDragOpacity,addClasses:false,zIndex:_c.zIndex.resizer_drag,start:function(e,ui){o=options[pane];s=state[pane];live=o.resizeWhileDragging;
-if(false===_execCallback(pane,o.ondrag_start))return false;_c.isLayoutBusy=true;s.isResizing=true;timer.clear(pane+"_closeSlider");setSizeLimits(pane);r=s.resizerPosition;$R.addClass(resizerClass+" "+resizerPaneClass);helperClassesSet=false;$Frames=$(o.maskIframesOnResize===true?"iframe":o.maskIframesOnResize).filter(":visible");var id,i=0;$Frames.each(function(){id="ui-layout-mask-"+ ++i;$(this).data("layoutMaskID",id);$('<div id="'+id+'" class="ui-layout-mask ui-layout-mask-'+pane+'"/>').css({background:"#fff",
-opacity:"0.001",zIndex:_c.zIndex.iframe_mask,position:"absolute",width:this.offsetWidth+"px",height:this.offsetHeight+"px"}).css($(this).position()).appendTo(this.parentNode)});$("body").disableSelection()},drag:function(e,ui){if(!helperClassesSet){ui.helper.addClass(helperClass+" "+helperPaneClass).css({right:"auto",bottom:"auto"}).children().css("visibility","hidden");helperClassesSet=true;if(s.isSliding)$Ps[pane].css("zIndex",_c.zIndex.pane_sliding)}var limit=0;if(ui.position[side]<r.min){ui.position[side]=
-r.min;limit=-1}else if(ui.position[side]>r.max){ui.position[side]=r.max;limit=1}if(limit){ui.helper.addClass(helperLimitClass+" "+helperPaneLimitClass);window.defaultStatus="Panel has reached its "+(limit>0&&pane.match(/north|west/)||limit<0&&pane.match(/south|east/)?"maximum":"minimum")+" size"}else{ui.helper.removeClass(helperLimitClass+" "+helperPaneLimitClass);window.defaultStatus=""}if(live)resizePanes(e,ui,pane)},stop:function(e,ui){$("body").enableSelection();window.defaultStatus="";$R.removeClass(resizerClass+
-" "+resizerPaneClass);s.isResizing=false;_c.isLayoutBusy=false;resizePanes(e,ui,pane,true)}});var resizePanes=function(evt,ui,pane,resizingDone){var dragPos=ui.position,c=_c[pane],resizerPos,newSize,i=0;switch(pane){case "north":resizerPos=dragPos.top;break;case "west":resizerPos=dragPos.left;break;case "south":resizerPos=sC.offsetHeight-dragPos.top-o.spacing_open;break;case "east":resizerPos=sC.offsetWidth-dragPos.left-o.spacing_open;break}if(resizingDone){$("div.ui-layout-mask").each(function(){this.parentNode.removeChild(this)});
-if(false===_execCallback(pane,o.ondrag_end||o.ondrag))return false}else $Frames.each(function(){$("#"+$(this).data("layoutMaskID")).css($(this).position()).css({width:this.offsetWidth+"px",height:this.offsetHeight+"px"})});newSize=resizerPos-sC["inset"+c.side];manualSizePane(pane,newSize)}})},destroy=function(){$(window).unbind("."+sID);$(document).unbind("."+sID);$.each(_c.allPanes.split(","),function(i,pane){removePane(pane,false,true)});$N.removeData("layout").removeData("layoutContainer").removeClass(options.containerClass);
-if(!$N.data("layoutEdge")&&$N.data("layoutCSS"))$N.css($N.data("layoutCSS")).removeData("layoutCSS");if(sC.tagName=="BODY"&&($N=$("html")).data("layoutCSS"))$N.css($N.data("layoutCSS")).removeData("layoutCSS");unload()},removePane=function(pane,remove,skipResize){if(!isInitialized())return;if(!$Ps[pane])return;var $P=$Ps[pane],$C=$Cs[pane],$R=$Rs[pane],$T=$Ts[pane],_open="-open",_sliding="-sliding",_closed="-closed",root=options[pane].paneClass,pRoot=root+"-"+pane,classes=[root,root+_open,root+_closed,
-root+_sliding,pRoot,pRoot+_open,pRoot+_closed,pRoot+_sliding];$.merge(classes,getHoverClasses($P,true));if(!$P||!$P.length);else if(remove&&!$P.data("layoutContainer")&&(!$C||!$C.length||!$C.data("layoutContainer")))$P.remove();else{$P.removeClass(classes.join(" ")).removeData("layoutParent").removeData("layoutRole").removeData("layoutEdge").removeData("autoHidden").unbind("."+sID);if(!$P.data("layoutContainer"))$P.css($P.data("layoutCSS")).removeData("layoutCSS");if($C&&$C.length&&!$C.data("layoutContainer"))$C.css($C.data("layoutCSS")).removeData("layoutCSS")}if($T&&
-$T.length)$T.remove();if($R&&$R.length)$R.remove();$Ps[pane]=$Cs[pane]=$Rs[pane]=$Ts[pane]=false;if(!skipResize){resizeAll();state[pane]={}}},hide=function(pane,noAnimation){if(!isInitialized())return;var o=options[pane],s=state[pane],$P=$Ps[pane],$R=$Rs[pane];if(!$P||s.isHidden)return;if(state.initialized&&false===_execCallback(pane,o.onhide_start))return;s.isSliding=false;if($R)$R.hide();if(!state.initialized||s.isClosed){s.isClosed=true;s.isHidden=true;s.isVisible=false;$P.hide();sizeMidPanes(_c[pane].dir==
-"horz"?"all":"center");if(state.initialized||o.triggerEventsOnLoad)_execCallback(pane,o.onhide_end||o.onhide)}else{s.isHiding=true;close(pane,false,noAnimation)}},show=function(pane,openPane,noAnimation,noAlert){if(!isInitialized())return;var o=options[pane],s=state[pane],$P=$Ps[pane],$R=$Rs[pane];if(!$P||!s.isHidden)return;if(false===_execCallback(pane,o.onshow_start))return;s.isSliding=false;s.isShowing=true;if(openPane===false)close(pane,true);else open(pane,false,noAnimation,noAlert)},toggle=
-function(pane,slide){if(!isInitialized())return;if(!isStr(pane)){pane.stopImmediatePropagation();pane=$(this).data("layoutEdge")}var s=state[str(pane)];if(s.isHidden)show(pane);else if(s.isClosed)open(pane,!!slide);else close(pane)},_closePane=function(pane,setHandles){var $P=$Ps[pane],s=state[pane];$P.hide();s.isClosed=true;s.isVisible=false},close=function(pane,force,noAnimation,skipCallback){if(!state.initialized&&$Ps[pane]){_closePane(pane);return}if(!isInitialized())return;var $P=$Ps[pane],$R=
-$Rs[pane],$T=$Ts[pane],o=options[pane],s=state[pane],doFX=!noAnimation&&!s.isClosed&&o.fxName_close!="none",isShowing=s.isShowing,isHiding=s.isHiding,wasSliding=s.isSliding;delete s.isShowing;delete s.isHiding;if(!$P||!o.closable&&!isShowing&&!isHiding)return;else if(!force&&s.isClosed&&!isShowing)return;if(_c.isLayoutBusy){_queue("close",pane,force);return}if(!isShowing&&false===_execCallback(pane,o.onclose_start))return;_c[pane].isMoving=true;_c.isLayoutBusy=true;s.isClosed=true;s.isVisible=false;
-if(isHiding)s.isHidden=true;else if(isShowing)s.isHidden=false;if(s.isSliding)bindStopSlidingEvents(pane,false);else sizeMidPanes(_c[pane].dir=="horz"?"all":"center",false);setAsClosed(pane);if(doFX){lockPaneForFX(pane,true);$P.hide(o.fxName_close,o.fxSettings_close,o.fxSpeed_close,function(){lockPaneForFX(pane,false);close_2()})}else{$P.hide();close_2()}function close_2(){if(s.isClosed){bindStartSlidingEvent(pane,true);var altPane=_c.altSide[pane];if(state[altPane].noRoom){setSizeLimits(altPane);
-makePaneFit(altPane)}if(!skipCallback&&(state.initialized||o.triggerEventsOnLoad)){if(!isShowing)_execCallback(pane,o.onclose_end||o.onclose);if(isShowing)_execCallback(pane,o.onshow_end||o.onshow);if(isHiding)_execCallback(pane,o.onhide_end||o.onhide)}}_dequeue(pane)}},setAsClosed=function(pane){var $P=$Ps[pane],$R=$Rs[pane],$T=$Ts[pane],o=options[pane],s=state[pane],side=_c[pane].side.toLowerCase(),inset="inset"+_c[pane].side,rClass=o.resizerClass,tClass=o.togglerClass,_pane="-"+pane,_open="-open",
-_sliding="-sliding",_closed="-closed";$R.css(side,sC[inset]).removeClass(rClass+_open+" "+rClass+_pane+_open).removeClass(rClass+_sliding+" "+rClass+_pane+_sliding).addClass(rClass+_closed+" "+rClass+_pane+_closed).unbind("dblclick."+sID);if(o.resizable&&typeof $.fn.draggable=="function")$R.draggable("disable").removeClass("ui-state-disabled").css("cursor","default").attr("title","");if($T){$T.removeClass(tClass+_open+" "+tClass+_pane+_open).addClass(tClass+_closed+" "+tClass+_pane+_closed).attr("title",
-o.togglerTip_closed);$T.children(".content-open").hide();$T.children(".content-closed").css("display","block")}syncPinBtns(pane,false);if(state.initialized)sizeHandles("all")},open=function(pane,slide,noAnimation,noAlert){if(!isInitialized())return;var $P=$Ps[pane],$R=$Rs[pane],$T=$Ts[pane],o=options[pane],s=state[pane],doFX=!noAnimation&&s.isClosed&&o.fxName_open!="none",isShowing=s.isShowing;delete s.isShowing;if(!$P||!o.resizable&&!o.closable&&!isShowing)return;else if(s.isVisible&&!s.isSliding)return;
-if(s.isHidden&&!isShowing){show(pane,true);return}if(_c.isLayoutBusy){_queue("open",pane,slide);return}setSizeLimits(pane,slide);if(false===_execCallback(pane,o.onopen_start))return;setSizeLimits(pane,slide);if(s.minSize>s.maxSize){syncPinBtns(pane,false);if(!noAlert&&o.noRoomToOpenTip)alert(o.noRoomToOpenTip);return}_c[pane].isMoving=true;_c.isLayoutBusy=true;if(slide)bindStopSlidingEvents(pane,true);else if(s.isSliding)bindStopSlidingEvents(pane,false);else if(o.slidable)bindStartSlidingEvent(pane,
-false);s.noRoom=false;makePaneFit(pane);s.isVisible=true;s.isClosed=false;if(isShowing)s.isHidden=false;if(doFX){lockPaneForFX(pane,true);$P.show(o.fxName_open,o.fxSettings_open,o.fxSpeed_open,function(){lockPaneForFX(pane,false);open_2()})}else{$P.show();open_2()}function open_2(){if(s.isVisible){_fixIframe(pane);if(!s.isSliding)sizeMidPanes(_c[pane].dir=="vert"?"center":"all",false);setAsOpen(pane)}_dequeue(pane)}},setAsOpen=function(pane,skipCallback){var $P=$Ps[pane],$R=$Rs[pane],$T=$Ts[pane],
-o=options[pane],s=state[pane],side=_c[pane].side.toLowerCase(),inset="inset"+_c[pane].side,rClass=o.resizerClass,tClass=o.togglerClass,_pane="-"+pane,_open="-open",_closed="-closed",_sliding="-sliding";$R.css(side,sC[inset]+getPaneSize(pane)).removeClass(rClass+_closed+" "+rClass+_pane+_closed).addClass(rClass+_open+" "+rClass+_pane+_open);if(s.isSliding)$R.addClass(rClass+_sliding+" "+rClass+_pane+_sliding);else $R.removeClass(rClass+_sliding+" "+rClass+_pane+_sliding);if(o.resizerDblClickToggle)$R.bind("dblclick",
-toggle);removeHover(0,$R);if(o.resizable&&typeof $.fn.draggable=="function")$R.draggable("enable").css("cursor",o.resizerCursor).attr("title",o.resizerTip);else if(!s.isSliding)$R.css("cursor","default");if($T){$T.removeClass(tClass+_closed+" "+tClass+_pane+_closed).addClass(tClass+_open+" "+tClass+_pane+_open).attr("title",o.togglerTip_open);removeHover(0,$T);$T.children(".content-closed").hide();$T.children(".content-open").css("display","block")}syncPinBtns(pane,!s.isSliding);$.extend(s,elDims($P));
-if(state.initialized){sizeHandles("all");sizeContent(pane,true)}if(!skipCallback&&(state.initialized||o.triggerEventsOnLoad)&&$P.is(":visible")){_execCallback(pane,o.onopen_end||o.onopen);if(s.isShowing)_execCallback(pane,o.onshow_end||o.onshow);if(state.initialized){_execCallback(pane,o.onresize_end||o.onresize);resizeNestedLayout(pane)}}},slideOpen=function(evt_or_pane){if(!isInitialized())return;var evt=isStr(evt_or_pane)?null:evt_or_pane,pane=evt?$(this).data("layoutEdge"):evt_or_pane,s=state[pane],
-delay=options[pane].slideDelay_open;if(evt)evt.stopImmediatePropagation();if(s.isClosed&&evt&&evt.type=="mouseenter"&&delay>0)timer.set(pane+"_openSlider",open_NOW,delay);else open_NOW();function open_NOW(evt){if(!s.isClosed)bindStopSlidingEvents(pane,true);else if(!_c[pane].isMoving)open(pane,true)}},slideClose=function(evt_or_pane){if(!isInitialized())return;var evt=isStr(evt_or_pane)?null:evt_or_pane,pane=evt?$(this).data("layoutEdge"):evt_or_pane,o=options[pane],s=state[pane],delay=_c[pane].isMoving?
-1E3:300;if(s.isClosed||s.isResizing)return;else if(o.slideTrigger_close=="click")close_NOW();else if(o.preventQuickSlideClose&&_c.isLayoutBusy)return;else if(o.preventPrematureSlideClose&&evt&&$.layout.isMouseOverElem(evt,$Ps[pane]))return;else if(evt)timer.set(pane+"_closeSlider",close_NOW,max(o.slideDelay_close,delay));else close_NOW();function close_NOW(){if(s.isClosed)bindStopSlidingEvents(pane,false);else if(!_c[pane].isMoving)close(pane)}},slideToggle=function(pane){toggle(pane,true)},lockPaneForFX=
-function(pane,doLock){var $P=$Ps[pane];if(doLock){$P.css({zIndex:_c.zIndex.pane_animate});if(pane=="south")$P.css({top:sC.insetTop+sC.innerHeight-$P.outerHeight()});else if(pane=="east")$P.css({left:sC.insetLeft+sC.innerWidth-$P.outerWidth()})}else{$P.css({zIndex:state[pane].isSliding?_c.zIndex.pane_sliding:_c.zIndex.pane_normal});if(pane=="south")$P.css({top:"auto"});else if(pane=="east")$P.css({left:"auto"});var o=options[pane];if($.layout.browser.msie&&o.fxOpacityFix&&o.fxName_open!="slide"&&$P.css("filter")&&
-$P.css("opacity")==1)$P[0].style.removeAttribute("filter")}},bindStartSlidingEvent=function(pane,enable){var o=options[pane],$P=$Ps[pane],$R=$Rs[pane],trigger=o.slideTrigger_open.toLowerCase();if(!$R||enable&&!o.slidable)return;if(trigger.match(/mouseover/))trigger=o.slideTrigger_open="mouseenter";else if(!trigger.match(/click|dblclick|mouseenter/))trigger=o.slideTrigger_open="click";$R[enable?"bind":"unbind"](trigger+"."+sID,slideOpen).css("cursor",enable?o.sliderCursor:"default").attr("title",enable?
-o.sliderTip:"")},bindStopSlidingEvents=function(pane,enable){var o=options[pane],s=state[pane],z=_c.zIndex,trigger=o.slideTrigger_close.toLowerCase(),action=enable?"bind":"unbind",$P=$Ps[pane],$R=$Rs[pane];s.isSliding=enable;timer.clear(pane+"_closeSlider");if(enable)bindStartSlidingEvent(pane,false);$P.css("zIndex",enable?z.pane_sliding:z.pane_normal);$R.css("zIndex",enable?z.pane_sliding:z.resizer_normal);if(!trigger.match(/click|mouseleave/))trigger=o.slideTrigger_close="mouseleave";$R[action](trigger,
-slideClose);if(trigger=="mouseleave"){$P[action]("mouseleave."+sID,slideClose);$R[action]("mouseenter."+sID,cancelMouseOut);$P[action]("mouseenter."+sID,cancelMouseOut)}if(!enable)timer.clear(pane+"_closeSlider");else if(trigger=="click"&&!o.resizable){$R.css("cursor",enable?o.sliderCursor:"default");$R.attr("title",enable?o.togglerTip_open:"")}function cancelMouseOut(evt){timer.clear(pane+"_closeSlider");evt.stopPropagation()}},makePaneFit=function(pane,isOpening,skipCallback,force){var o=options[pane],
-s=state[pane],c=_c[pane],$P=$Ps[pane],$R=$Rs[pane],isSidePane=c.dir=="vert",hasRoom=false;if(pane=="center"||isSidePane&&s.noVerticalRoom){hasRoom=s.maxHeight>0;if(hasRoom&&s.noRoom){$P.show();if($R)$R.show();s.isVisible=true;s.noRoom=false;if(isSidePane)s.noVerticalRoom=false;_fixIframe(pane)}else if(!hasRoom&&!s.noRoom){$P.hide();if($R)$R.hide();s.isVisible=false;s.noRoom=true}}if(pane=="center");else if(s.minSize<=s.maxSize){hasRoom=true;if(s.size>s.maxSize)sizePane(pane,s.maxSize,skipCallback,
-force);else if(s.size<s.minSize)sizePane(pane,s.minSize,skipCallback,force);else if($R&&$P.is(":visible")){var side=c.side.toLowerCase(),pos=s.size+sC["inset"+c.side];if($.layout.cssNum($R,side)!=pos)$R.css(side,pos)}if(s.noRoom)if(s.wasOpen&&o.closable)if(o.autoReopen)open(pane,false,true,true);else s.noRoom=false;else show(pane,s.wasOpen,true,true)}else if(!s.noRoom){s.noRoom=true;s.wasOpen=!s.isClosed&&!s.isSliding;if(s.isClosed);else if(o.closable)close(pane,true,true);else hide(pane,true)}},
-manualSizePane=function(pane,size,skipCallback){if(!isInitialized())return;var o=options[pane],forceResize=o.resizeWhileDragging&&!_c.isLayoutBusy;o.autoResize=false;sizePane(pane,size,skipCallback,forceResize)},sizePane=function(pane,size,skipCallback,force){if(!isInitialized())return;var o=options[pane],s=state[pane],$P=$Ps[pane],$R=$Rs[pane],side=_c[pane].side.toLowerCase(),dimName=_c[pane].sizeType.toLowerCase(),inset="inset"+_c[pane].side,skipResizeWhileDragging=_c.isLayoutBusy&&!o.triggerEventsWhileDragging,
-oldSize;setSizeLimits(pane);oldSize=s.size;size=_parseSize(pane,size);size=max(size,_parseSize(pane,o.minSize));size=min(size,s.maxSize);if(size<s.minSize){makePaneFit(pane,false,skipCallback);return}if(!force&&size==oldSize)return;if(!skipCallback&&state.initialized&&s.isVisible)_execCallback(pane,o.onresize_start);$P.css(dimName,max(1,cssSize(pane,size)));s.size=size;$.extend(s,elDims($P));if($R&&$P.is(":visible"))$R.css(side,size+sC[inset]);sizeContent(pane);if(!skipCallback&&!skipResizeWhileDragging&&
-state.initialized&&s.isVisible){_execCallback(pane,o.onresize_end||o.onresize);resizeNestedLayout(pane)}if(!skipCallback){if(!s.isSliding)sizeMidPanes(_c[pane].dir=="horz"?"all":"center",skipResizeWhileDragging,force);sizeHandles("all")}var altPane=_c.altSide[pane];if(size<oldSize&&state[altPane].noRoom){setSizeLimits(altPane);makePaneFit(altPane,false,skipCallback)}},sizeMidPanes=function(panes,skipCallback,force){if(!panes||panes=="all")panes="east,west,center";$.each(panes.split(","),function(i,
-pane){if(!$Ps[pane])return;var o=options[pane],s=state[pane],$P=$Ps[pane],$R=$Rs[pane],isCenter=pane=="center",hasRoom=true,CSS={},newCenter=calcNewCenterPaneDims();$.extend(s,elDims($P));if(pane=="center"){if(!force&&s.isVisible&&newCenter.width==s.outerWidth&&newCenter.height==s.outerHeight)return true;$.extend(s,cssMinDims(pane),{maxWidth:newCenter.width,maxHeight:newCenter.height});CSS=newCenter;CSS.width=cssW(pane,CSS.width);CSS.height=cssH(pane,CSS.height);hasRoom=CSS.width>0&&CSS.height>0;
-if(!hasRoom&&!state.initialized&&o.minWidth>0){var reqPx=o.minWidth-s.outerWidth,minE=options.east.minSize||0,minW=options.west.minSize||0,sizeE=state.east.size,sizeW=state.west.size,newE=sizeE,newW=sizeW;if(reqPx>0&&state.east.isVisible&&sizeE>minE){newE=max(sizeE-minE,sizeE-reqPx);reqPx-=sizeE-newE}if(reqPx>0&&state.west.isVisible&&sizeW>minW){newW=max(sizeW-minW,sizeW-reqPx);reqPx-=sizeW-newW}if(reqPx==0){if(sizeE!=minE)sizePane("east",newE,true);if(sizeW!=minW)sizePane("west",newW,true);sizeMidPanes("center",
-skipCallback,force);return}}}else{if(s.isVisible&&!s.noVerticalRoom)$.extend(s,elDims($P),cssMinDims(pane));if(!force&&!s.noVerticalRoom&&newCenter.height==s.outerHeight)return true;CSS.top=newCenter.top;CSS.bottom=newCenter.bottom;CSS.height=cssH(pane,newCenter.height);s.maxHeight=max(0,CSS.height);hasRoom=s.maxHeight>0;if(!hasRoom)s.noVerticalRoom=true}if(hasRoom){if(!skipCallback&&state.initialized)_execCallback(pane,o.onresize_start);$P.css(CSS);if(s.noRoom&&!s.isClosed&&!s.isHidden)makePaneFit(pane);
-if(s.isVisible){$.extend(s,elDims($P));if(state.initialized)sizeContent(pane)}}else if(!s.noRoom&&s.isVisible)makePaneFit(pane);if(!s.isVisible)return true;if(pane=="center"){var b=$.layout.browser;var fix=b.isIE6||b.msie&&!b.boxModel;if($Ps.north&&(fix||state.north.tagName=="IFRAME"))$Ps.north.css("width",cssW($Ps.north,sC.innerWidth));if($Ps.south&&(fix||state.south.tagName=="IFRAME"))$Ps.south.css("width",cssW($Ps.south,sC.innerWidth))}if(!skipCallback&&state.initialized){_execCallback(pane,o.onresize_end||
-o.onresize);resizeNestedLayout(pane)}})},resizeAll=function(){if(!state.initialized){_initLayoutElements();return}var oldW=sC.innerWidth,oldH=sC.innerHeight;if(!$N.is(":visible:"))return;$.extend(state.container,elDims($N));if(!sC.outerHeight)return;if(false===_execCallback(null,options.onresizeall_start))return false;var shrunkH=sC.innerHeight<oldH,shrunkW=sC.innerWidth<oldW,$P,o,s,dir;$.each(["south","north","east","west"],function(i,pane){if(!$Ps[pane])return;s=state[pane];o=options[pane];dir=
-_c[pane].dir;if(o.autoResize&&s.size!=o.size)sizePane(pane,o.size,true,true);else{setSizeLimits(pane);makePaneFit(pane,false,true,true)}});sizeMidPanes("all",true,true);sizeHandles("all");o=options;$.each(_c.allPanes.split(","),function(i,pane){$P=$Ps[pane];if(!$P)return;if(state[pane].isVisible){_execCallback(pane,o[pane].onresize_end||o[pane].onresize);resizeNestedLayout(pane)}});_execCallback(null,o.onresizeall_end||o.onresizeall)},resizeNestedLayout=function(pane){var $P=$Ps[pane],$C=$Cs[pane],
-d="layoutContainer";if(options[pane].resizeNestedLayout)if($P.data(d))$P.layout().resizeAll();else if($C&&$C.data(d))$C.layout().resizeAll()},sizeContent=function(panes,remeasure){if(!isInitialized())return;if(!panes||panes=="all")panes=_c.allPanes;$.each(panes.split(","),function(idx,pane){var $P=$Ps[pane],$C=$Cs[pane],o=options[pane],s=state[pane],m=s.content;if(!$P||!$C||!$P.is(":visible"))return true;if(false===_execCallback(null,o.onsizecontent_start))return;if(!_c.isLayoutBusy||m.top==undefined||
-remeasure||o.resizeContentWhileDragging){_measure();if(m.hiddenFooters>0&&$P.css("overflow")=="hidden"){$P.css("overflow","visible");_measure();$P.css("overflow","hidden")}}var newH=s.innerHeight-(m.spaceAbove-s.css.paddingTop)-(m.spaceBelow-s.css.paddingBottom);if(!$C.is(":visible")||m.height!=newH){setOuterHeight($C,newH,true);m.height=newH}if(state.initialized){_execCallback(pane,o.onsizecontent_end||o.onsizecontent);resizeNestedLayout(pane)}function _below($E){return max(s.css.paddingBottom,parseInt($E.css("marginBottom"),
-10)||0)}function _measure(){var ignore=options[pane].contentIgnoreSelector,$Fs=$C.nextAll().not(ignore||":lt(0)"),$Fs_vis=$Fs.filter(":visible"),$F=$Fs_vis.filter(":last");m={top:$C[0].offsetTop,height:$C.outerHeight(),numFooters:$Fs.length,hiddenFooters:$Fs.length-$Fs_vis.length,spaceBelow:0};m.spaceAbove=m.top;m.bottom=m.top+m.height;if($F.length)m.spaceBelow=$F[0].offsetTop+$F.outerHeight()-m.bottom+_below($F);else m.spaceBelow=_below($C)}})},sizeHandles=function(panes){if(!panes||panes=="all")panes=
-_c.borderPanes;$.each(panes.split(","),function(i,pane){var o=options[pane],s=state[pane],$P=$Ps[pane],$R=$Rs[pane],$T=$Ts[pane],$TC;if(!$P||!$R)return;var dir=_c[pane].dir,_state=s.isClosed?"_closed":"_open",spacing=o["spacing"+_state],togAlign=o["togglerAlign"+_state],togLen=o["togglerLength"+_state],paneLen,offset,CSS={};if(spacing==0){$R.hide();return}else if(!s.noRoom&&!s.isHidden)$R.show();if(dir=="horz"){paneLen=$P.outerWidth();s.resizerLength=paneLen;$R.css({width:max(1,cssW($R,paneLen)),
-height:max(0,cssH($R,spacing)),left:$.layout.cssNum($P,"left")})}else{paneLen=$P.outerHeight();s.resizerLength=paneLen;$R.css({height:max(1,cssH($R,paneLen)),width:max(0,cssW($R,spacing)),top:sC.insetTop+getPaneSize("north",true)})}removeHover(o,$R);if($T){if(togLen==0||s.isSliding&&o.hideTogglerOnSlide){$T.hide();return}else $T.show();if(!(togLen>0)||togLen=="100%"||togLen>paneLen){togLen=paneLen;offset=0}else if(isStr(togAlign))switch(togAlign){case "top":case "left":offset=0;break;case "bottom":case "right":offset=
-paneLen-togLen;break;case "middle":case "center":default:offset=Math.floor((paneLen-togLen)/2)}else{var x=parseInt(togAlign,10);if(togAlign>=0)offset=x;else offset=paneLen-togLen+x}if(dir=="horz"){var width=cssW($T,togLen);$T.css({width:max(0,width),height:max(1,cssH($T,spacing)),left:offset,top:0});$T.children(".content").each(function(){$TC=$(this);$TC.css("marginLeft",Math.floor((width-$TC.outerWidth())/2))})}else{var height=cssH($T,togLen);$T.css({height:max(0,height),width:max(1,cssW($T,spacing)),
-top:offset,left:0});$T.children(".content").each(function(){$TC=$(this);$TC.css("marginTop",Math.floor((height-$TC.outerHeight())/2))})}removeHover(0,$T)}if(!state.initialized&&(o.initHidden||s.noRoom)){$R.hide();if($T)$T.hide()}})},enableClosable=function(pane){if(!isInitialized())return;var $T=$Ts[pane],o=options[pane];if(!$T)return;o.closable=true;$T.bind("click."+sID,function(evt){evt.stopPropagation();toggle(pane)}).bind("mouseenter."+sID,addHover).bind("mouseleave."+sID,removeHover).css("visibility",
-"visible").css("cursor","pointer").attr("title",state[pane].isClosed?o.togglerTip_closed:o.togglerTip_open).show()},disableClosable=function(pane,hide){if(!isInitialized())return;var $T=$Ts[pane];if(!$T)return;options[pane].closable=false;if(state[pane].isClosed)open(pane,false,true);$T.unbind("."+sID).css("visibility",hide?"hidden":"visible").css("cursor","default").attr("title","")},enableSlidable=function(pane){if(!isInitialized())return;var $R=$Rs[pane],o=options[pane];if(!$R||!$R.data("draggable"))return;
-options[pane].slidable=true;if(s.isClosed)bindStartSlidingEvent(pane,true)},disableSlidable=function(pane){if(!isInitialized())return;var $R=$Rs[pane];if(!$R)return;options[pane].slidable=false;if(state[pane].isSliding)close(pane,false,true);else{bindStartSlidingEvent(pane,false);$R.css("cursor","default").attr("title","");removeHover(null,$R[0])}},enableResizable=function(pane){if(!isInitialized())return;var $R=$Rs[pane],o=options[pane];if(!$R||!$R.data("draggable"))return;o.resizable=true;$R.draggable("enable").bind("mouseenter."+
-sID,onResizerEnter).bind("mouseleave."+sID,onResizerLeave);if(!state[pane].isClosed)$R.css("cursor",o.resizerCursor).attr("title",o.resizerTip)},disableResizable=function(pane){if(!isInitialized())return;var $R=$Rs[pane];if(!$R||!$R.data("draggable"))return;options[pane].resizable=false;$R.draggable("disable").unbind("."+sID).css("cursor","default").attr("title","");removeHover(null,$R[0])},swapPanes=function(pane1,pane2){if(!isInitialized())return;state[pane1].edge=pane2;state[pane2].edge=pane1;
-var cancelled=false;if(false===_execCallback(pane1,options[pane1].onswap_start))cancelled=true;if(!cancelled&&false===_execCallback(pane2,options[pane2].onswap_start))cancelled=true;if(cancelled){state[pane1].edge=pane1;state[pane2].edge=pane2;return}var oPane1=copy(pane1),oPane2=copy(pane2),sizes={};sizes[pane1]=oPane1?oPane1.state.size:0;sizes[pane2]=oPane2?oPane2.state.size:0;$Ps[pane1]=false;$Ps[pane2]=false;state[pane1]={};state[pane2]={};if($Ts[pane1])$Ts[pane1].remove();if($Ts[pane2])$Ts[pane2].remove();
-if($Rs[pane1])$Rs[pane1].remove();if($Rs[pane2])$Rs[pane2].remove();$Rs[pane1]=$Rs[pane2]=$Ts[pane1]=$Ts[pane2]=false;move(oPane1,pane2);move(oPane2,pane1);oPane1=oPane2=sizes=null;if($Ps[pane1])$Ps[pane1].css(_c.visible);if($Ps[pane2])$Ps[pane2].css(_c.visible);resizeAll();_execCallback(pane1,options[pane1].onswap_end||options[pane1].onswap);_execCallback(pane2,options[pane2].onswap_end||options[pane2].onswap);return;function copy(n){var $P=$Ps[n],$C=$Cs[n];return!$P?false:{pane:n,P:$P?$P[0]:false,
-C:$C?$C[0]:false,state:$.extend({},state[n]),options:$.extend({},options[n])}}function move(oPane,pane){if(!oPane)return;var P=oPane.P,C=oPane.C,oldPane=oPane.pane,c=_c[pane],side=c.side.toLowerCase(),inset="inset"+c.side,s=$.extend({},state[pane]),o=options[pane],fx={resizerCursor:o.resizerCursor},re,size,pos;$.each("fxName,fxSpeed,fxSettings".split(","),function(i,k){fx[k]=o[k];fx[k+"_open"]=o[k+"_open"];fx[k+"_close"]=o[k+"_close"]});$Ps[pane]=$(P).data("layoutEdge",pane).css(_c.hidden).css(c.cssReq);
-$Cs[pane]=C?$(C):false;options[pane]=$.extend({},oPane.options,fx);state[pane]=$.extend({},oPane.state);re=new RegExp(o.paneClass+"-"+oldPane,"g");P.className=P.className.replace(re,o.paneClass+"-"+pane);initHandles(pane);if(c.dir!=_c[oldPane].dir){size=sizes[pane]||0;setSizeLimits(pane);size=max(size,state[pane].minSize);manualSizePane(pane,size,true)}else $Rs[pane].css(side,sC[inset]+(state[pane].isVisible?getPaneSize(pane):0));if(oPane.state.isVisible&&!s.isVisible)setAsOpen(pane,true);else{setAsClosed(pane);
-bindStartSlidingEvent(pane,true)}oPane=null}};function keyDown(evt){if(!evt)return true;var code=evt.keyCode;if(code<33)return true;var PANE={38:"north",40:"south",37:"west",39:"east"},ALT=evt.altKey,SHIFT=evt.shiftKey,CTRL=evt.ctrlKey,CURSOR=CTRL&&code>=37&&code<=40,o,k,m,pane;if(CURSOR&&options[PANE[code]].enableCursorHotkey)pane=PANE[code];else if(CTRL||SHIFT)$.each(_c.borderPanes.split(","),function(i,p){o=options[p];k=o.customHotkey;m=o.customHotkeyModifier;if(SHIFT&&m=="SHIFT"||CTRL&&m=="CTRL"||
-CTRL&&SHIFT)if(k&&code==(isNaN(k)||k<=9?k.toUpperCase().charCodeAt(0):k)){pane=p;return false}});if(!pane||!$Ps[pane]||!options[pane].closable||state[pane].isHidden)return true;toggle(pane);evt.stopPropagation();evt.returnValue=false;return false}function allowOverflow(el){if(!isInitialized())return;if(this&&this.tagName)el=this;var $P;if(isStr(el))$P=$Ps[el];else if($(el).data("layoutRole"))$P=$(el);else $(el).parents().each(function(){if($(this).data("layoutRole")){$P=$(this);return false}});if(!$P||
-!$P.length)return;var pane=$P.data("layoutEdge"),s=state[pane];if(s.cssSaved)resetOverflow(pane);if(s.isSliding||s.isResizing||s.isClosed){s.cssSaved=false;return}var newCSS={zIndex:_c.zIndex.pane_normal+2},curCSS={},of=$P.css("overflow"),ofX=$P.css("overflowX"),ofY=$P.css("overflowY");if(of!="visible"){curCSS.overflow=of;newCSS.overflow="visible"}if(ofX&&!ofX.match(/visible|auto/)){curCSS.overflowX=ofX;newCSS.overflowX="visible"}if(ofY&&!ofY.match(/visible|auto/)){curCSS.overflowY=ofX;newCSS.overflowY=
-"visible"}s.cssSaved=curCSS;$P.css(newCSS);$.each(_c.allPanes.split(","),function(i,p){if(p!=pane)resetOverflow(p)})}function resetOverflow(el){if(!isInitialized())return;if(this&&this.tagName)el=this;var $P;if(isStr(el))$P=$Ps[el];else if($(el).data("layoutRole"))$P=$(el);else $(el).parents().each(function(){if($(this).data("layoutRole")){$P=$(this);return false}});if(!$P||!$P.length)return;var pane=$P.data("layoutEdge"),s=state[pane],CSS=s.cssSaved||{};if(!s.isSliding&&!s.isResizing)$P.css("zIndex",
-_c.zIndex.pane_normal);$P.css(CSS);s.cssSaved=false}function getBtn(selector,pane,action){var $E=$(selector),err=options.showErrorMessages;if(!$E.length){if(err)alert(lang.errButton+lang.selector+": "+selector)}else if(_c.borderPanes.indexOf(pane)==-1){if(err)alert(lang.errButton+lang.pane+": "+pane)}else{var btn=options[pane].buttonClass+"-"+action;$E.addClass(btn+" "+btn+"-"+pane).data("layoutName",options.name);return $E}return null}function bindButton(selector,action,pane){switch(action.toLowerCase()){case "toggle":addToggleBtn(selector,
-pane);break;case "open":addOpenBtn(selector,pane);break;case "close":addCloseBtn(selector,pane);break;case "pin":addPinBtn(selector,pane);break;case "toggle-slide":addToggleBtn(selector,pane,true);break;case "open-slide":addOpenBtn(selector,pane,true);break}}function addToggleBtn(selector,pane,slide){var $E=getBtn(selector,pane,"toggle");if($E)$E.click(function(evt){toggle(pane,!!slide);evt.stopPropagation()})}function addOpenBtn(selector,pane,slide){var $E=getBtn(selector,pane,"open");if($E)$E.attr("title",
-lang.Open).click(function(evt){open(pane,!!slide);evt.stopPropagation()})}function addCloseBtn(selector,pane){var $E=getBtn(selector,pane,"close");if($E)$E.attr("title",lang.Close).click(function(evt){close(pane);evt.stopPropagation()})}function addPinBtn(selector,pane){var $E=getBtn(selector,pane,"pin");if($E){var s=state[pane];$E.click(function(evt){setPinState($(this),pane,s.isSliding||s.isClosed);if(s.isSliding||s.isClosed)open(pane);else close(pane);evt.stopPropagation()});setPinState($E,pane,
-!s.isClosed&&!s.isSliding);_c[pane].pins.push(selector)}}function syncPinBtns(pane,doPin){$.each(_c[pane].pins,function(i,selector){setPinState($(selector),pane,doPin)})}function setPinState($Pin,pane,doPin){var updown=$Pin.attr("pin");if(updown&&doPin==(updown=="down"))return;var pin=options[pane].buttonClass+"-pin",side=pin+"-"+pane,UP=pin+"-up "+side+"-up",DN=pin+"-down "+side+"-down";$Pin.attr("pin",doPin?"down":"up").attr("title",doPin?lang.Unpin:lang.Pin).removeClass(doPin?UP:DN).addClass(doPin?
-DN:UP)}function isCookiesEnabled(){return navigator.cookieEnabled!=0}function getCookie(opts){var o=$.extend({},options.cookie,opts||{}),name=o.name||options.name||"Layout",c=document.cookie,cs=c?c.split(";"):[],pair;for(var i=0,n=cs.length;i<n;i++){pair=$.trim(cs[i]).split("=");if(pair[0]==name)return decodeJSON(decodeURIComponent(pair[1]))}return""}function saveCookie(keys,opts){var o=$.extend({},options.cookie,opts||{}),name=o.name||options.name||"Layout",params="",date="",clear=false;if(o.expires.toUTCString)date=
-o.expires;else if(typeof o.expires=="number"){date=new Date;if(o.expires>0)date.setDate(date.getDate()+o.expires);else{date.setYear(1970);clear=true}}if(date)params+=";expires="+date.toUTCString();if(o.path)params+=";path="+o.path;if(o.domain)params+=";domain="+o.domain;if(o.secure)params+=";secure";if(clear){state.cookie={};document.cookie=name+"="+params}else{state.cookie=getState(keys||o.keys);document.cookie=name+"="+encodeURIComponent(encodeJSON(state.cookie))+params}return $.extend({},state.cookie)}
-function deleteCookie(){saveCookie("",{expires:-1})}function loadCookie(opts){var o=getCookie(opts);if(o){state.cookie=$.extend({},o);loadState(o)}return o}function loadState(opts,animate){opts=_transformData(opts);$.extend(true,options,opts);if(state.initialized){var pane,o,s,h,c,a=!animate;$.each(_c.allPanes.split(","),function(idx,pane){o=opts[pane];if(typeof o!="object")return;s=o.size;c=o.initClosed;h=o.initHidden;if(s>0||s=="auto")sizePane(pane,s);if(h===true)hide(pane,a);else if(c===false)open(pane,
-false,a);else if(c===true)close(pane,false,a);else if(h===false)show(pane,false,a)})}}function getState(keys){var data={},alt={isClosed:"initClosed",isHidden:"initHidden"},pair,pane,key,val;if(!keys)keys=options.cookie.keys;if($.isArray(keys))keys=keys.join(",");keys=keys.replace(/__/g,".").split(",");for(var i=0,n=keys.length;i<n;i++){pair=keys[i].split(".");pane=pair[0];key=pair[1];if(_c.allPanes.indexOf(pane)<0)continue;val=state[pane][key];if(val==undefined)continue;if(key=="isClosed"&&state[pane]["isSliding"])val=
-true;(data[pane]||(data[pane]={}))[alt[key]?alt[key]:key]=val}return data}function encodeJSON(JSON){return parse(JSON);function parse(h){var D=[],i=0,k,v,t;for(k in h){v=h[k];t=typeof v;if(t=="string")v='"'+v+'"';else if(t=="object")v=parse(v);D[i++]='"'+k+'":'+v}return"{"+D.join(",")+"}"}}function decodeJSON(str){try{return window["eval"]("("+str+")")||{}}catch(e){return{}}}var $N=$(this).eq(0);if(!$N.length){if(options.showErrorMessages)alert(lang.errContainerMissing);return null}if($N.data("layoutContainer")&&
-$N.data("layout"))return $N.data("layout");var $Ps={},$Cs={},$Rs={},$Ts={},sC=state.container,sID=state.id;var Instance={options:options,state:state,container:$N,panes:$Ps,contents:$Cs,resizers:$Rs,togglers:$Ts,toggle:toggle,hide:hide,show:show,open:open,close:close,slideOpen:slideOpen,slideClose:slideClose,slideToggle:slideToggle,initContent:initContent,sizeContent:sizeContent,sizePane:manualSizePane,swapPanes:swapPanes,resizeAll:resizeAll,initPanes:isInitialized,destroy:destroy,addPane:addPane,
-removePane:removePane,setSizeLimits:setSizeLimits,bindButton:bindButton,addToggleBtn:addToggleBtn,addOpenBtn:addOpenBtn,addCloseBtn:addCloseBtn,addPinBtn:addPinBtn,allowOverflow:allowOverflow,resetOverflow:resetOverflow,encodeJSON:encodeJSON,decodeJSON:decodeJSON,getState:getState,getCookie:getCookie,saveCookie:saveCookie,deleteCookie:deleteCookie,loadCookie:loadCookie,loadState:loadState,cssWidth:cssW,cssHeight:cssH,enableClosable:enableClosable,disableClosable:disableClosable,enableSlidable:enableSlidable,
-disableSlidable:disableSlidable,enableResizable:enableResizable,disableResizable:disableResizable};if(_create()==="cancel")return null;else return Instance}})(jQuery); \ No newline at end of file
diff --git a/idrop-web/web-app/js/mydrop/home.js b/idrop-web/web-app/js/mydrop/home.js
index a693527..68eb780 100644
--- a/idrop-web/web-app/js/mydrop/home.js
+++ b/idrop-web/web-app/js/mydrop/home.js
@@ -438,7 +438,7 @@ function nodeRemoved(event, data) {
return false;
}
setMessage("file deleted:" + id);
- selectedPqth = xhr.responseText;
+ selectedPath = xhr.responseText;
updateBrowseDetailsForPathBasedOnCurrentModel(selectedPath);
unblockPanel();
}).error(function(xhr, status, error) {
@@ -621,27 +621,14 @@ function updateBrowseDetailsForPathBasedOnCurrentModel(absPath) {
state[ "browseOptionVal"] = browseOptionVal;
$.bbq.pushState( state );
- //alert("call setPathCrumbtrail");
setPathCrumbtrail(absPath);
- //alert("skipped setpathcrumbtrail");
- //alert("browseOptionVal is:" + browseOptionVal);
-
+
if (browseOptionVal == "browse") {
showBrowseView(absPath);
} else if (browseOptionVal == "info") {
showInfoView(absPath);
} else if (browseOptionVal == "gallery") {
showGalleryView(absPath);
- } else if (browseOptionVal == "metadata") {
- showMetadataView(absPath);
- } else if (browseOptionVal == "sharing") {
- showSharingView(absPath);
- } else if (browseOptionVal == "audit") {
- lcSendValueAndCallbackHtmlAfterErrorCheckPreserveMessage(
- "/audit/auditList?absPath=" + encodeURIComponent(absPath),
- "#infoDiv", "#infoDiv", null);
- } else if (browseOptionVal == "ticket") {
- showTicketView(absPath);
}
}
@@ -652,26 +639,28 @@ function updateBrowseDetailsForPathBasedOnCurrentModel(absPath) {
* absolute path to browse to
*/
function showBrowseView(absPath) {
+
if (absPath == null) {
absPath = baseAbsPath;
}
- showBrowseDetailsToolbar();
- try {
+ lcShowBusyIconInDiv("#infoDiv");
- lcSendValueAndCallbackHtmlAfterErrorCheckThrowsException(
- "/browse/displayBrowseGridDetails?absPath="
- + encodeURIComponent(absPath),
- "#infoDiv",
- function(data) {
- //alert("data is:" + data);
- $("#infoDiv").html(data);
- },
- function() {
- setInfoDivNoData(); });
- } catch (err) {
- setInfoDivNoData();
- }
+
+ var jqxhr = $.get(context + "/browse/displayBrowseGridDetails?absPath="
+ + encodeURIComponent(absPath), null,
+ function(data, status, xhr) {
+ }, "html")
+ .success(function(data, status, xhr) {
+ var continueReq = checkForSessionTimeout(data, xhr);
+ if (!continueReq) {
+ return false;
+ }
+
+ $("#infoDiv").html(data);})
+ .error(function(xhr, status, error) {
+ setInfoDivNoData();
+ });
}
@@ -688,8 +677,7 @@ function showAuditView(absPath, targetDiv) {
if (targetDiv == null) {
targetDiv = "#infoDiv";
- // I am not embedded, so manipulate the toolbars
- hideAllToolbars();
+
}
try {
@@ -716,6 +704,15 @@ function showAuditView(absPath, targetDiv) {
}
/**
+ * Set a no data message in the div
+ */
+function setInfoDivNoData() {
+ $("#infoDiv").html("<h2>No data to display</h2>"); //FIXME: i18n
+
+}
+
+
+/**
* Show the sharing view
*
* @param absPath
@@ -728,8 +725,6 @@ function showSharingView(absPath, targetDiv) {
if (targetDiv == null) {
targetDiv = "#infoDiv";
- // I am not embedded, so manipulate the toolbars
- hideAllToolbars();
}
@@ -769,7 +764,6 @@ function showMetadataView(absPath, targetDiv) {
if (targetDiv == null) {
targetDiv = "#infoDiv";
// I am not embedded, so manipulate the toolbars
- hideAllToolbars();
}
try {
@@ -808,7 +802,6 @@ function showInfoView(absPath) {
if (absPath == null) {
absPath = baseAbsPath;
}
- showDetailsToolbar();
lcSendValueAndCallbackHtmlAfterErrorCheckPreserveMessage(
"/browse/fileInfo?absPath=" + encodeURIComponent(absPath),
"#infoDiv", "#infoDiv", null);
@@ -843,11 +836,6 @@ function showGalleryView(absPath) {
setInfoDivNoData();
}
- /*
- lcSendValueAndCallbackHtmlAfterErrorCheckPreserveMessage(
- "/browse/galleryView?absPath=" + encodeURIComponent(absPath),
- "#infoDiv", "#infoDiv", null);
- */
}
/**
@@ -863,8 +851,6 @@ function showTicketView(absPath, targetDiv) {
if (targetDiv == null) {
targetDiv = "#infoDiv";
- // I am not embedded, so manipulate the toolbars
- hideAllToolbars();
}
try {
@@ -1199,10 +1185,19 @@ function buildAclTableInPlace() {
tableParams = {"bJQueryUI" : true,
"bLengthChange": false,
"bFilter": false,
- "iDisplayLength" : 500
+ "iDisplayLength" : 500,
+ "aoColumns" : [
+ {'sWidth': '20px', 'bSortable':false},
+ { 'sWidth': '30px' },
+ { 'sWidth': '40px' }
+
+ ]
}
+
dataTable = lcBuildTableInPlace("#aclDetailsTable", null, null, tableParams);
+
+ try {
$('.forSharePermission', dataTable.fnGetNodes()).editable(
function(value, settings) {
@@ -1220,6 +1215,9 @@ function buildAclTableInPlace() {
'onblur' : 'ignore',
'indicator' : 'Saving'
});
+ } catch(e) {
+ // ignore
+ }
}
/**
@@ -1293,7 +1291,6 @@ function closeApplet() {
$("#toggleHtmlArea").show('slow');
$("#toggleHtmlArea").height = "100%";
$("#toggleHtmlArea").width = "100%";
- dataLayout.resizeAll();
$("#idropLiteArea").empty();
reloadAndSelectTreePathBasedOnIrodsAbsolutePath(selectedPath);
}
@@ -1499,11 +1496,24 @@ function refreshTree() {
*/
function downloadViaToolbar() {
var infoAbsPath = $("#infoAbsPath").val();
- window.open(context + '/file/download/' + infoAbsPath, '_self');
+ window.open(context + '/file/download' + escape(infoAbsPath), '_self');
}
/**
+ * Do a donwload action with a provided path
+ * @param path
+ */
+function downloadViaToolbarGivenPath(path) {
+ if (path == null) {
+ showErrorMessage(jQuery.i18n.prop('msg.path.missing'));
+ return false;
+ }
+
+ window.open(context + '/file/download' + escape(path), '_self');
+}
+
+/**
* The rename button has been selected from an info view, show the rename dialog
*/
function renameViaToolbar() {
@@ -1573,7 +1583,7 @@ function deleteViaBrowseDetailsToolbar() {
function deleteViaToolbarGivenPath(path) {
if (path == null) {
- setErrorMessage("No path was selected, use the tree to select an iRODS collection or file to delete"); // FIXME:
+ showErrorMessage(jQuery.i18n.prop("msg.path.missing"));
// i18n
return false;
}
@@ -1587,62 +1597,30 @@ function deleteViaToolbarGivenPath(path) {
var params = {
absPath : path
}
+
var jqxhr = $
.post(context + fileDeleteUrl, params,
- function(data, status, xhr) {
- }, "html")
+ null, "html")
.success(
function(returnedData, status, xhr) {
var continueReq = checkForSessionTimeout(
returnedData, xhr);
+
if (!continueReq) {
return false;
}
- setMessage("file deleted:" + xhr.responseText);
-
- $("#infoDiv").html("<h2>File Deleted</h2>");
-
- /*
- * delete the node from the tree, select the parent
- * node and update the display to the parent node
- */
- splitPathAndPerformOperationAtGivenTreePath(
- path,
- null,
- null,
- function(treePath, tree, currentNode) {
- // get the parent node
- var parent = $.jstree._reference(
- dataTree)._get_parent(
- currentNode);
- if (parent == null) {
- refreshTree();
- return false;
- }
- // remove node..
-
- $.jstree._reference(dataTree)
- ._get_parent(currentNode);
- // $.jstree._reference(dataTree).remove(
- // currentNode);
-
- var parent = $.jstree._reference(
- dataTree).refresh(parent);
- selectedPath = xhr.responseText;
- updateBrowseDetailsForPathBasedOnCurrentModel(selectedPath);
-
- });
-
+ setMessage("file deleted:" + path);
+ var selectedPath = xhr.responseText;
+ reloadAndSelectTreePathBasedOnIrodsAbsolutePath(selectedPath);
unblockPanel();
}).error(function(xhr, status, error) {
- refreshTree();
- setErrorMessage(xhr.responseText);
- unblockPanel();
- });
+ //refreshTree();
+ setErrorMessage(xhr.responseText);
+ unblockPanel();
+ });
}
-
}
/**
@@ -1708,6 +1686,7 @@ function closeNewFolderDialog() {
function submitRenameDialog() {
lcClearDivAndDivClass("#renameDialogMessageArea");
var absPath = $("#renameDialogAbsPath").val();
+ var parentPath = $("#renameDialogParentPath").val();
var newName = $.trim($("#fileName").val());
// name must be entered
if (newName == null || newName.length == 0) {
@@ -1734,17 +1713,16 @@ function submitRenameDialog() {
setMessage("file renamed to:" + xhr.responseText);
selectedPath = xhr.responseText;
- refreshTree();
- //reloadAndSelectTreePathBasedOnIrodsAbsolutePath(selectedPath);
- // selectTreePathFromIrodsPath(selectedPath);
- updateBrowseDetailsForPathBasedOnCurrentModel(selectedPath
- + "/" + newName);
+ //refreshTree();
+ reloadAndSelectTreePathBasedOnIrodsAbsolutePath(parentPath);
+ //selectTreePathFromIrodsPath(selectedPath);
+ updateBrowseDetailsForPathBasedOnCurrentModel(selectedPath);
unblockPanel();
}).error(function(xhr, status, error) {
- refreshTree();
- setErrorMessage(xhr.responseText);
- unblockPanel();
- });
+ refreshTree();
+ setErrorMessage(xhr.responseText);
+ unblockPanel();
+ });
}
@@ -1933,6 +1911,29 @@ function selectTreePathFromIrodsPath(irodsAbsolutePath) {
}
+
+/**
+ * Find the given iRODS absolute path in the tree, clear the children and reload
+ *
+ * @param path
+ */
+function refreshOpenNodeAtAbsolutePath(path) {
+
+ if (path == null) {
+ throw "No path provided";
+ }
+
+ splitPath = path.split("/");
+
+ performOperationAtGivenTreePath(splitPath, null, null, function(thisPath,
+ dataTree, currentNode) {
+
+ $.jstree._reference(dataTree).refresh(currentNode);
+ $.jstree._reference(dataTree).select_node(currentNode, true);
+
+ });
+}
+
/**
* Find the given iRODS absolute path in the tree, clear the children and reload
*
@@ -1956,6 +1957,28 @@ function reloadAndSelectTreePathBasedOnIrodsAbsolutePath(path) {
});
}
+/**
+ * Find the given iRODS absolute path in the tree, clear the children and reload, do not select or open
+ *
+ * @param path
+ */
+function reloadTreePathBasedOnIrodsAbsolutePath(path) {
+
+ if (path == null) {
+ throw "No path provided";
+ }
+
+ splitPath = path.split("/");
+
+ performOperationAtGivenTreePath(splitPath, null, null, function(thisPath,
+ dataTree, currentNode) {
+
+ $.jstree._reference(dataTree).refresh(currentNode);
+
+ });
+}
+
+
/**
* Given the tree path in the text box, recursively open the nodes in the tree
@@ -2239,6 +2262,22 @@ function setTreeToUserHome() {
}
+
+/**
+ * set the root of the tree to the given path and reload
+ */
+
+function setTreeToGivenPath(path) {
+
+ if (path == null || path=="") {
+ path = "/";
+ }
+
+ retrieveBrowserFirstView("path", path);
+
+}
+
+
/**
* Set the root of the tree to the user home directory and reload
*/
@@ -2345,6 +2384,7 @@ function clickOnPathInBrowseDetails(data) {
});
}
+
/**
* Close the public link dialog
*/
@@ -2375,6 +2415,7 @@ function grantPublicLink() {
}
+
/**
* Set a no data message in the div
*/
@@ -2395,5 +2436,10 @@ function showOverwriteOptionDialog(message) {
*
* var a = document.createElement('applet'); appletTagDiv.appendChild(a);
*/
+
+
+}
+function z() {
+
}
diff --git a/idrop-web/web-app/js/mydrop/lingo_common.js b/idrop-web/web-app/js/mydrop/lingo_common.js
index a1774fb..137aa89 100644
--- a/idrop-web/web-app/js/mydrop/lingo_common.js
+++ b/idrop-web/web-app/js/mydrop/lingo_common.js
@@ -21,6 +21,7 @@ var messageClass = "message";
function checkForSessionTimeout(data, xhr) {
var headers = xhr.getAllResponseHeaders();
if (headers.indexOf(timeoutHeaderValue) > -1) {
+ alert("session timeout!");
window.location = context;
return false;
} else {
@@ -83,31 +84,17 @@ function checkAjaxResultForErrorAndDisplayInGivenArea(resultHtml, messageAreaId)
}
/**
- * Set the specified (by jquery selector) message area message to a given
- * string.
- *
- * message: the text message to display
- */
-/*function setMessageInArea(messageAreaId, message) {
- try {
- $(messageAreaId).html(message);
- $(messageAreaId).addClass(messageClass);
- } catch(e) {
-
- }
-}*/
-
-
-/**
* Set the default message area message to a given string. This will be a normal, non-sticky
* gritter message
*
* message: the text message to display
*/
function setMessage(message) {
+
if (message == null || message == "") {
message = "An unknown error has occurred";
}
+
$.gritter.add({
// (string | mandatory) the heading of the notification
title: 'iDrop Message',
@@ -146,13 +133,6 @@ function setErrorMessage(message) {
}
/**
- * Clear global javascript message area
- */
-/*function lcClearMessage() {
- setMessage();
-}*/
-
-/**
* Given the result of an AJAX call, inspect the returned data for various types
* of errors, set the message, and throw an appropriate exception.
*/
@@ -296,18 +276,11 @@ function lcBuildTable(data, tableDiv, newTableId, detailsFunction,
*/
function lcBuildTableInPlace(newTableId, detailsFunction, dataIconSelector, tableParams) {
- //alert("new table id:" + newTableId);
- //alert("table params:" + tableParams);
-
if (tableParams == null) {
tableParams = {"bJQueryUI" : true}
}
-
- //$(newTableId).html("hey there");
- //alert("set hey there");
+
var dataTableCreated = $(newTableId).dataTable(tableParams);
-
- //alert("table built");
if (detailsFunction != null) {
$(dataIconSelector, dataTableCreated.fnGetNodes()).each(function() {
@@ -317,10 +290,7 @@ function lcBuildTableInPlace(newTableId, detailsFunction, dataIconSelector, tabl
});
}
- /*
- if (dataTableCreated != null) {
- dataTableCreated.fnAdjustColumnSizing();
- }*/
+
return dataTableCreated;
}
diff --git a/idrop-web/web-app/js/mydrop/main.js b/idrop-web/web-app/js/mydrop/main.js
index 6e2e037..3611096 100644
--- a/idrop-web/web-app/js/mydrop/main.js
+++ b/idrop-web/web-app/js/mydrop/main.js
@@ -72,26 +72,11 @@ function refreshTagCloud() {
}
-/**
- * Initial display of the user tab information in the sidebar
- */
-function displayUserTab() {
-
-}
-
function logout() {
window.location = context + "/login/logout";
}
/**
- * On main panel, show the user panel
- */
-function showUserPanel() {
- lcSendValueAndCallbackHtmlAfterErrorCheckPreserveMessage("/user/index",
- "#userDiv", "#userDiv", null);
-}
-
-/**
* Code to format a 'crumb trail' header
*
* @param irodsAbsolutePath
@@ -233,30 +218,3 @@ function clickOnPathInCrumbtrail(data) {
});
}
}
-
-/**
- * Hides all but the standard toolbar
- */
-function hideAllToolbars() {
- $(".toolbarMenuItem").hide();
- $(".detailsToolbarMenuItem").hide();
-}
-
-/**
- * Show menu appropriate for browse details
- */
-function showBrowseDetailsToolbar() {
- hideAllToolbars();
- $(".detailsToolbarMenuItem").show();
- $(".idropLiteBulkUpload").show();
-
-}
-
-/**
- * Show menu appropriate for collection or data object details
- */
-function showDetailsToolbar() {
- hideAllToolbars();
- $(".toolbarMenuItem").show();
-
-}
diff --git a/idrop-web/web-app/js/mydrop/metadata.js b/idrop-web/web-app/js/mydrop/metadata.js
index 1fa46d5..65be3e9 100644
--- a/idrop-web/web-app/js/mydrop/metadata.js
+++ b/idrop-web/web-app/js/mydrop/metadata.js
@@ -75,6 +75,8 @@ function prepareMetadataDialog(data) {
setErrorMessage("No path is selected, metadata cannot be entered");
return;
}
+
+ $("#metadataDetailsArea").hide("slow");
var url = "/metadata/prepareMetadataDialog";
var params = {
@@ -156,7 +158,8 @@ function submitMetadataDialog() {
*/
function closeMetadataDialog() {
$("#metadataDialogArea").fadeOut('slow', new function() {
- $("#metadataDialogArea").html("")
+ $("#metadataDialogArea").html("");
+ $("#metadataDetailsArea").show("slow");
});
}
@@ -284,7 +287,14 @@ function buildMetadataTableInPlace() {
tableParams = {"bJQueryUI" : true,
"bLengthChange": false,
"bFilter": false,
- "iDisplayLength" : 500
+ "iDisplayLength" : 500,
+ "aoColumns" : [
+ {'sWidth': '20px', 'bSortable':false},
+ null,
+ null,
+ null
+ ]
+
}
var metaDataTable = lcBuildTableInPlace("#metaDataDetailsTable", null, null, tableParams);
diff --git a/idrop-web/web-app/js/mydrop/profile.js b/idrop-web/web-app/js/mydrop/profile.js
index 6d57517..3783da5 100644
--- a/idrop-web/web-app/js/mydrop/profile.js
+++ b/idrop-web/web-app/js/mydrop/profile.js
@@ -2,6 +2,36 @@
* Javascript for profile functions
*/
+
+/**
+ * Update the profile information
+ */
+function updateUserProfile() {
+
+ var params = {
+ nickName : $("#nickName").val(),
+ description : $("#description").val(),
+ email : $("#email").val()
+ }
+
+ showBlockingPanel();
+
+ var jqxhr = $.post(context + "/profile/updateProfile", params,
+ function(data, status, xhr) {
+ }, "html").success(function(returnedData, status, xhr) {
+ var continueReq = checkForSessionTimeout(returnedData, xhr);
+ if (!continueReq) {
+ return false;
+ }
+ setMessage(jQuery.i18n.prop('msg_profile_update_successful'));
+ $("#profileDataArea").html(returnedData);
+ unblockPanel();
+ }).error(function(xhr, status, error) {
+ setErrorMessage(xhr.responseText);
+ unblockPanel();
+ });
+}
+
/**
* Accomplish the password change
*/
@@ -42,7 +72,7 @@ function submitChangePassword() {
function loadProfileData() {
var targetDiv = "#profileDataArea";
lcSendValueAndCallbackHtmlAfterErrorCheckPreserveMessage(
- "/profile/index",
+ "/profile/loadProfileData",
targetDiv, targetDiv, null);
}
@@ -69,33 +99,5 @@ function closePasswordDialog() {
}
-/**
- * Update the profile information
- */
-function updateProfile() {
-
- var params = {
- nickName : $("#nickName").val(),
- description : $("#description").val(),
- email : $("#email").val()
- }
-
- showBlockingPanel();
-
- var jqxhr = $.post(context + "/profile/updateProfile", params,
- function(data, status, xhr) {
- }, "html").success(function(returnedData, status, xhr) {
- var continueReq = checkForSessionTimeout(returnedData, xhr);
- if (!continueReq) {
- return false;
- }
- setMessage(jQuery.i18n.prop('msg_profile_update_successful'));
- $("#profileDataArea").html(returnedData);
- unblockPanel();
- }).error(function(xhr, status, error) {
- setErrorMessage(xhr.responseText);
- unblockPanel();
- });
-}
diff --git a/idrop-web/web-app/js/mydrop/shopping_cart.js b/idrop-web/web-app/js/mydrop/shopping_cart.js
index 936b62a..43b1492 100644
--- a/idrop-web/web-app/js/mydrop/shopping_cart.js
+++ b/idrop-web/web-app/js/mydrop/shopping_cart.js
@@ -3,12 +3,12 @@
*
* author: Mike Conway - DICE
*/
-var addToCartUrl = '/browse/addFileToCart';
-var showCartUrl = '/browse/showCartTab';
-var listCartUrl = '/browse/listCart';
-var clearCartUrl = '/browse/clearCart';
-var deleteCartUrl = '/browse/deleteFromCart';
-var addToCartBulkActionUrl = '/browse/addToCartBulkAction';
+var addToCartUrl = '/shoppingCart/addFileToCart';
+var showCartUrl = '/shoppingCart/showCartTab';
+var listCartUrl = '/shoppingCart/listCart';
+var clearCartUrl = '/shoppingCart/clearCart';
+var deleteCartUrl = '/shoppingCart/deleteFromCart';
+var addToCartBulkActionUrl = '/shoppingCart/addToCartBulkAction';
var checkOutCartUrl = '/idropLite/shoppingCartAppletLoader';
var idropLiteShoppingCartSelector = "#cartAppletDiv";
@@ -152,8 +152,7 @@ function closeShoppingCartApplet() {
* Check out the shopping cart as the logged in user, this will launch iDrop lite in shopping cart mode
*/
function checkOut() {
- // close the idrop lite area in the browse details area if that was opened for bulk upload, you cannot run 2 idrop lites
- closeApplet();
+
// first hide cart details table
$("#cartToggleDiv").hide('slow');
$("#cartToggleDiv").width = "0%";
diff --git a/idrop-web/web-app/js/mydrop/ticket.js b/idrop-web/web-app/js/mydrop/ticket.js
index cc6fd26..f19aaff 100644
--- a/idrop-web/web-app/js/mydrop/ticket.js
+++ b/idrop-web/web-app/js/mydrop/ticket.js
@@ -53,8 +53,14 @@ function buildTicketTableInPlace() {
tableParams = {"bJQueryUI" : true,
"bLengthChange": false,
"bFilter": false,
- "iDisplayLength" : 500
-
+ "iDisplayLength" : 500,
+ "aoColumns" : [
+ {'sWidth': '20px', 'bSortable':false},
+ {'sWidth': '20px', 'bSortable':false},
+ null,
+ null,
+ null
+ ]
}
ticketTable = lcBuildTableInPlace("#ticketDetailsTable", ticketDetailsClick, ".browse_detail_icon", tableParams);