diff options
Diffstat (limited to 'pkg')
71 files changed, 11578 insertions, 401 deletions
diff --git a/pkg/DESCRIPTION b/pkg/DESCRIPTION index d092444..e0e285f 100644 --- a/pkg/DESCRIPTION +++ b/pkg/DESCRIPTION @@ -1,8 +1,8 @@ Package: pfm Type: Package Title: Utilities for Pesticide Fate Modelling -Version: 0.2-4 -Date: 2015-12-18 +Version: 0.3-1 +Date: 2015-12-22 Authors@R: person("Johannes Ranke", email = "jranke@uni-bremen.de", role = c("aut", "cre", "cph")) Description: Utilities for simple calculations of predicted environmental diff --git a/pkg/NAMESPACE b/pkg/NAMESPACE index 4214464..0632e51 100644 --- a/pkg/NAMESPACE +++ b/pkg/NAMESPACE @@ -6,10 +6,8 @@ S3method(plot,TOXSWA_cwa) S3method(print,GUS_result) export(GUS) export(PEC_soil) -export(PEC_soil_product) -export(PEC_sw_drainage_UK_ini) +export(PEC_sw_drainage_UK) export(PEC_sw_drift) -export(PEC_sw_drift_ini) export(PEC_sw_sed) export(SFO_actual_twa) export(SSLRC_mobility_classification) diff --git a/pkg/R/FOCUS_GW_scenarios_2012.R b/pkg/R/FOCUS_GW_scenarios_2012.R index 4e03572..49cf7dd 100644 --- a/pkg/R/FOCUS_GW_scenarios_2012.R +++ b/pkg/R/FOCUS_GW_scenarios_2012.R @@ -6,4 +6,6 @@ #' @references FOCUS (2012) Generic guidance for Tier 1 FOCUS ground water assessments. Version 2.1. #' FOrum for the Co-ordination of pesticde fate models and their USe. #' http://focus.jrc.ec.europa.eu/gw/docs/Generic_guidance_FOCV2_1.pdf +#' @examples +#' FOCUS_GW_scenarios_2012 NULL diff --git a/pkg/R/GUS.R b/pkg/R/GUS.R index 8a20561..4a6532d 100644 --- a/pkg/R/GUS.R +++ b/pkg/R/GUS.R @@ -1,8 +1,25 @@ +# Copyright (C) 2015 Johannes Ranke +# Contact: jranke@uni-bremen.de +# This file is part of the R package pfm + +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. + +# You should have received a copy of the GNU General Public License along with +# this program. If not, see <http://www.gnu.org/licenses/> + #' Groundwater ubiquity score based on Gustafson (1989) #' #' The groundwater ubiquity score GUS is calculated according to #' the following equation -#' \deqn{GUS = \log_10 DT50_{soil} (4 - \log_10 K_{oc}}{GUS = log10 DT50soil * (4 - log10 Koc)} +#' \deqn{GUS = \log_{10} DT50_{soil} (4 - \log_{10} K_{oc})}{GUS = log10 DT50soil * (4 - log10 Koc)} #' #' @references Gustafson, David I. (1989) Groundwater ubiquity score: a simple #' method for assessing pesticide leachability. \emph{Environmental diff --git a/pkg/R/PEC_soil.R b/pkg/R/PEC_soil.R index fff1f20..27fac52 100644 --- a/pkg/R/PEC_soil.R +++ b/pkg/R/PEC_soil.R @@ -15,122 +15,200 @@ # You should have received a copy of the GNU General Public License along with # this program. If not, see <http://www.gnu.org/licenses/> +# Register global variables +if(getRversion() >= '2.15.1') utils::globalVariables(c("destination", "study_type", "TP_identifier", + "soil_scenario_data_EFSA_2015")) + #' Calculate predicted environmental concentrations in soil #' -#' This is a basic, vectorised form of a simple calculation of a contaminant -#' concentration in bulk soil based on complete, instantaneous mixing. -#' +#' This is a basic calculation of a contaminant concentration in bulk soil +#' based on complete, instantaneous mixing. If an interval is given, an +#' attempt is made at calculating a long term maximum concentration using +#' the concepts layed out for example in the PPR panel opinion (EFSA 2012). +#' +#' This assumes that the complete load to soil during the time specified by +#' 'interval' (typically 365 days) is dosed at once. As in the PPR panel +#' opinion cited below (PPR panel 2012), only temperature correction using the +#' Arrhenius equation is performed. +#' +#' Total soil and porewater PEC values for the scenarios as defined in the EFSA +#' guidance (2015, p. 13) can easily be calculated. +#' +#' @note If temperature information is available in the selected scenarios, as +#' e.g. in the EFSA scenarios, the DT50 for groundwater modelling +#' (destination 'PECgw') is taken from the chent object, otherwise the DT50 +#' with destination 'PECsoil'. #' @param rate Application rate in units specified below #' @param rate_units Defaults to g/ha #' @param interception The fraction of the application rate that does not reach the soil #' @param mixing_depth Mixing depth in cm -#' @param bulk_density Bulk density of the soil. Defaults to 1.5 kg/L, or 1500 kg/m3 +#' @param interval Period of the deeper mixing, defaults to 365, which is a year if +#' rate units are in days +#' @param n_periods Number of periods to be considered for long term PEC calculations #' @param PEC_units Requested units for the calculated PEC. Only mg/kg currently supported +#' @param PEC_pw_units Only mg/L currently supported +#' @param tillage_depth Periodic (see interval) deeper mixing in cm +#' @param chent An optional chent object holding substance specific information. Can +#' also be a name for the substance as a character string +#' @param DT50 If specified, overrides soil DT50 endpoints from a chent object +#' If DT50 is not specified here and not available from the chent object, zero +#' degradation is assumed +#' @param Koc If specified, overrides Koc endpoints from a chent object +#' @param Kom Calculated from Koc by default, but can explicitly be specified +#' as Kom here +#' @param t_avg Averaging times for time weighted average concentrations +#' @param scenarios If this is 'default', the DT50 will be used without correction +#' and soil properties as specified in the REACH guidance (R.16, Table +#' R.16-9) are used for porewater PEC calculations. If this is "EFSA_2015", +#' the DT50 is taken to be a modelling half-life at 20°C and pF2 (for when +#' 'chents' is specified, the DegT50 with destination 'PECgw' will be used), +#' and corrected using an Arrhenius activation energy of 65.4 kJ/mol. Also +#' model and scenario adjustment factors from the EFSA guidance are used. +#' @param porewater Should equilibrium porewater concentrations be estimated +#' based on Kom and the organic carbon fraction of the soil instead of total +#' soil concentrations? Based on equation (7) given in the PPR panel opinion +#' (EFSA 2012, p. 24) and the scenarios specified in the EFSA guidance (2015, +#' p. 13). #' @return The predicted concentration in soil -#' @export +#' @references EFSA Panel on Plant Protection Products and their Residues (2012) +#' Scientific Opinion on the science behind the guidance for scenario +#' selection and scenario parameterisation for predicting environmental +#' concentrations of plant protection products in soil. \emph{EFSA Journal} +#' \bold{10}(2) 2562, doi:10.2903/j.efsa.2012.2562 +#' +#' EFSA (European Food Safety Authority) (2015) EFSA guidance document for +#' predicting environmental concentrations of active substances of plant +#' protection products and transformation products of these active substances +#' in soil. \emph{EFSA Journal} \bold{13}(4) 4093 +#' doi:10.2903/j.efsa.2015.4093 #' @author Johannes Ranke +#' @export #' @examples #' PEC_soil(100, interception = 0.25) +#' +#' # This is example 1 starting at p. 79 of the EFSA guidance (2015) +#' PEC_soil(1000, interval = 365, DT50 = 250, t_avg = c(0, 21), +#' scenarios = "EFSA_2015") +#' PEC_soil(1000, interval = 365, DT50 = 250, t_av = c(0, 21), +#' Kom = 1000, scenarios = "EFSA_2015", porewater = TRUE) +#' +#' # The following is from example 4 starting at p. 85 of the EFSA guidance (2015) +#' # Metabolite M2 +#' # Calculate total and porewater soil concentrations for tier 1 scenarios +#' # Relative molar mass is 100/300, formation fraction is 0.7 * 1 +#' results_pfm <- PEC_soil(100/300 * 0.7 * 1 * 1000, interval = 365, DT50 = 250, t_avg = c(0, 21), +#' scenarios = "EFSA_2015") +#' results_pfm_pw <- PEC_soil(100/300 * 0.7 * 1000, interval = 365, DT50 = 250, t_av = c(0, 21), +#' Kom = 100, scenarios = "EFSA_2015", porewater = TRUE) + PEC_soil <- function(rate, rate_units = "g/ha", interception = 0, - mixing_depth = 5, bulk_density = 1.5, - PEC_units = "mg/kg") + mixing_depth = 5, + PEC_units = "mg/kg", PEC_pw_units = "mg/L", + interval = NA, n_periods = Inf, + tillage_depth = 20, + chent = NA, + DT50 = NA, + Koc = NA, Kom = Koc / 1.724, + t_avg = 0, + scenarios = c("default", "EFSA_2015"), + porewater = FALSE) { rate_to_soil = (1 - interception) * rate rate_units = match.arg(rate_units) PEC_units = match.arg(PEC_units) + scenarios = match.arg(scenarios) + sce <- switch(scenarios, + default = data.frame(rho = 1.5, T_arr = NA, theta_fc = 0.2, f_oc = 0.02, + f_sce = 1, f_mod = 1, row.names = "default"), + EFSA_2015 = if (porewater) soil_scenario_data_EFSA_2015[4:6, ] + else soil_scenario_data_EFSA_2015[1:3, ] + ) + n_sce = nrow(sce) + soil_volume = 100 * 100 * (mixing_depth/100) # in m3 - soil_mass = soil_volume * bulk_density * 1000 # in kg - PEC_soil = rate_to_soil * 1000 / soil_mass # in mg/kg - return(PEC_soil) -} + soil_mass = soil_volume * sce$rho * 1000 # in kg -if(getRversion() >= '2.15.1') utils::globalVariables(c("destination", "study_type", "TP_identifier")) + # The following is C_T,ini from EFSA 2012, p. 22, but potentially with interception > 0 + PEC_soil_ini = rate_to_soil * 1000 / soil_mass # in mg/kg -#' Calculate predicted environmental concentrations in soil for a product -#' -#' Calculates long term accumulation PEC values -#' -#' @param product An object of class pp -#' @param rate Application rate in units specified below -#' @param rate_units Defaults to g/ha -#' @param interception The fraction of the application rate that does not reach the soil -#' @param mixing_depth Mixing depth in cm -#' @param tillage_depth Periodic (see interval) deeper mixing in cm -#' @param interval Period of the deeper mixing, defaults to 365, which is a year if -#' rate units are in days -#' @param bulk_density Bulk density of the soil. Defaults to 1.5 kg/L, or 1500 kg/m3 -#' @param PEC_units Requested units for the calculated PEC. Only mg/kg currently supported -#' @return A data frame with compound names, and initial, plateau maximum, plateau minimum (background) -#' and long term maximum predicted concentrations in soil -#' @export PEC_soil_product -#' @author Johannes Ranke -PEC_soil_product <- function(product, rate, rate_units = "L/ha", interception = 0, - mixing_depth = 5, tillage_depth = 20, - interval = 365, - bulk_density = 1.5, - PEC_units = "mg/kg") { - rate_units = match.arg(rate_units) - PEC_units = match.arg(PEC_units) - if (product$density_units != "g/L") stop("Product density other than g/L not supported") - if (product$concentration_units != "g/L") { - stop("Active ingredient concentration units other than g/L not supported") + # Decide which DT50 to take, or set degradation to zero if no DT50 available + if (is.na(DT50) & is(chent, "chent")) { + if (all(is.na(sce$T_arr))) { # No temperature correction + DT50 <- subset(chent$soil_degradation_endpoints, destination == "PECsoil")$DT50 + } else { + DT50 <- subset(chent$soil_degradation_endpoints, destination == "PECgw")$DT50 + } + if (length(DT50) > 1) stop("More than one PECsoil DT50 in chent object") + if (length(DT50) == 0) DT50 <- Inf } + k = log(2)/DT50 - results <- data.frame(compound = character(0), initial = numeric(0), - plateau_max = numeric(0), plateau_min = numeric(0), - long_term_max = numeric(0), - stringsAsFactors = FALSE) - - for (ai_name in names(product$ais)) { - ai <- product$ais[[ai_name]] - ai_rate <- rate * product$concentrations[ai_name] - ini <- PEC_soil(ai_rate, - interception = interception, mixing_depth = mixing_depth, - bulk_density = bulk_density) - results[ai_name, "compound"] <- ai$identifier - results[ai_name, "initial"] <- ini - - ini_tillage <- ini * mixing_depth / tillage_depth - DT50 <- subset(ai$soil_degradation_endpoints, destination == "PECsoil")$DT50 - if (length(DT50) > 1) stop("More than one PECsoil DT50 for", ai_name) - if (length(DT50) > 0) { - if (!is.na(DT50)) { - k <- log(2) / DT50 - plateau_max <- ini_tillage / (1 - exp( - k * interval)) - plateau_min <- plateau_max * exp( - k * interval) - long_term_max <- plateau_min + ini - results[ai_name, c("plateau_max", "plateau_min", "long_term_max")] <- - c(plateau_max, plateau_min, long_term_max) + # Temperature correction of degradation (accumulation) + if (all(is.na(sce$T_arr))) { # No temperature correction + f_T = 1 + } else { + # Temperature correction as in EFSA 2012 p. 23 + f_T = ifelse(sce$T_arr == 0, + 0, + exp(- (65.4 / 0.008314) * (1/(sce$T_arr + 273.15) - 1/293.15))) + } + + # X is the fraction left after one period (EFSA guidance p. 23) + X = exp(- k * f_T * interval) + + # f_accu is the fraction left after n periods (X + X^2 + ...) + f_accu = 0 + if (!is.na(interval)) { + if (n_periods == Inf) { + f_accu = X/(1 - X) + } else { + for (i in 1:n_periods) { + f_accu = f_accu + X^i } } + } - for (TP_name in names(ai$TPs)) { - TP <- ai$TPs[[TP_name]] - max_occurrence = max(subset(ai$transformations, - grepl("soil", study_type) & - TP_identifier == TP$identifier, max_occurrence)) - TP_rate <- ai_rate * TP$mw / ai$mw * max_occurrence - ini <- PEC_soil(TP_rate, interception = interception, mixing_depth = mixing_depth, - bulk_density = bulk_density) - results[TP_name, "compound"] <- TP$identifier - results[TP_name, "initial"] <- ini - - ini_tillage <- ini * mixing_depth / tillage_depth - DT50 <- subset(TP$soil_degradation_endpoints, destination == "PECsoil")$DT50 - if (length(DT50) > 1) stop("More than one PECsoil DT50 for", TP_name) - if (length(DT50) > 0) { - if (!is.na(DT50)) { - k <- log(2) / DT50 - plateau_max <- ini_tillage / (1 - exp( - k * interval)) - plateau_min <- plateau_max * exp( - k * interval) - results[TP_name, c("plateau_max", "plateau_min")] <- c(plateau_max, plateau_min) - long_term_max <- plateau_min + ini - results[TP_name, c("plateau_max", "plateau_min", "long_term_max")] <- - c(plateau_max, plateau_min, long_term_max) - } - } + f_tillage = mixing_depth / tillage_depth + + PEC_background = f_accu * f_tillage * PEC_soil_ini + + PEC_soil = (1 + f_accu * f_tillage) * PEC_soil_ini + + # Get porewater PEC if requested + if (porewater) { + + # If Kom is not specified, try to get K(f)oc + if (is.na(Kom)) { + # If Koc not specified, try to get K(f)oc from chent + if (is.na(Koc) & is(chent, "chent")) { + Koc <- soil_Kfoc(chent) + } + Kom <- Koc / 1.724 } + + if (is.na(Kom)) stop("No Kom information specified") + + PEC_soil = PEC_soil/((sce$theta_fc/sce$rho) + sce$f_om * Kom) } - return(results) -} + # Scenario adjustment factors + PEC_soil_sce = PEC_soil * sce$f_sce + + # Model adjustment factors + PEC_soil_sce_mod = PEC_soil_sce * sce$f_mod + + result <- matrix(NA, ncol = n_sce, nrow = length(t_avg), + dimnames = list(t_avg = t_avg, scenario = rownames(sce))) + + result[1, ] <- PEC_soil_sce_mod + + for (i in seq_along(t_avg)) { + t_av_i <- t_avg[i] + if (t_av_i > 0) { + # Equation 10 from p. 24 (EFSA 2015) + result[i, ] <- PEC_soil_sce_mod/(t_av_i * f_T * k) * (1 - exp(- f_T * k * t_av_i)) + } + } + + return(result) +} diff --git a/pkg/R/PEC_sw_drainage_UK.R b/pkg/R/PEC_sw_drainage_UK.R index 43c732e..e53f179 100644 --- a/pkg/R/PEC_sw_drainage_UK.R +++ b/pkg/R/PEC_sw_drainage_UK.R @@ -25,15 +25,15 @@ #' @param Koc The sorption coefficient normalised to organic carbon in L/kg #' @param latest_application Latest application date, formatted as e.g. "01 July" #' @param soil_DT50 Soil degradation half-life, if SFO kinetics are to be used -#' @param model The degradation model to be used. Either one of "FOMC", "DFOP", -#' "HS", or "IORE", or an mkinmod object +#' @param model The soil degradation model to be used. Either one of "FOMC", +#' "DFOP", "HS", or "IORE", or an mkinmod object #' @param model_parms A named numeric vector containing the model parameters #' @return The predicted concentration in surface water in µg/L #' @export #' @author Johannes Ranke #' @examples -#' PEC_sw_drainage_UK_ini(150, Koc = 100) -PEC_sw_drainage_UK_ini <- function(rate, interception = 0, Koc, +#' PEC_sw_drainage_UK(150, Koc = 100) +PEC_sw_drainage_UK <- function(rate, interception = 0, Koc, latest_application = NULL, soil_DT50 = NULL, model = NULL, model_parms = NULL) { diff --git a/pkg/R/PEC_sw_drift_ini.R b/pkg/R/PEC_sw_drift_ini.R deleted file mode 100644 index 67e00d9..0000000 --- a/pkg/R/PEC_sw_drift_ini.R +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright (C) 2015 Johannes Ranke -# Contact: jranke@uni-bremen.de -# This file is part of the R package pfm - -# This program is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation, either version 3 of the License, or (at your option) any later -# version. - -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. - -# You should have received a copy of the GNU General Public License along with -# this program. If not, see <http://www.gnu.org/licenses/> - -#' Calculate initial predicted environmental concentrations in surface water due to drift -#' -#' This is a basic, vectorised form of a simple calculation of a contaminant -#' concentration in surface water based on complete, instantaneous mixing -#' with input via spray drift. -#' -#' @param rate Application rate in units specified below -#' @param applications Number of applications for selection of drift percentile -#' @param drift_data Source of drift percentage data -#' @param crop Crop name (use German names for JKI data), defaults to "Ackerbau" -#' @param distances The distances in m for which to get PEC values -#' @param water_depth Depth of the water body in cm -#' @param rate_units Defaults to g/ha -#' @param PEC_units Requested units for the calculated PEC. Only µg/L currently supported -#' @return The predicted concentration in surface water -#' @export -#' @author Johannes Ranke -#' @examples -#' PEC_sw_drift_ini(100) -PEC_sw_drift_ini <- function(rate, - applications = 1, - water_depth = 30, - drift_data = "JKI", - crop = "Ackerbau", - distances = c(1, 5, 10, 20), - rate_units = "g/ha", - PEC_units = "\u00B5g/L") -{ - rate_units <- match.arg(rate_units) - PEC_units <- match.arg(PEC_units) - drift_data <- match.arg(drift_data) - water_volume <- 100 * 100 * (water_depth/100) * 1000 # in L (for 1 ha) - PEC_sw_overspray <- rate * 1e6 / water_volume # in µg/L - dist_index <- as.character(distances) - PEC_sw_drift <- PEC_sw_overspray * pfm::drift_data_JKI[[applications]][dist_index, crop] / 100 - names(PEC_sw_drift) <- paste(dist_index, "m") - return(PEC_sw_drift) -} diff --git a/pkg/R/PEC_sw_sed.R b/pkg/R/PEC_sw_sed.R index 56396e8..a4a3d6a 100644 --- a/pkg/R/PEC_sw_sed.R +++ b/pkg/R/PEC_sw_sed.R @@ -15,8 +15,8 @@ # You should have received a copy of the GNU General Public License along with # this program. If not, see <http://www.gnu.org/licenses/> -#' Calculate initial predicted environmental concentrations in sediment from -#' surface water concentrations +#' Calculate predicted environmental concentrations in sediment from surface +#' water concentrations #' #' The method 'percentage' is equivalent to what is used in the CRD spreadsheet #' PEC calculator @@ -34,7 +34,7 @@ #' @export #' @author Johannes Ranke #' @examples -#' PEC_sw_sed(PEC_sw_drift_ini(100, distances = 1), percentage = 50) +#' PEC_sw_sed(PEC_sw_drift(100, distances = 1), percentage = 50) PEC_sw_sed <- function(PEC_sw, percentage = 100, method = "percentage", sediment_depth = 5, water_depth = 30, sediment_density = 1.3, diff --git a/pkg/R/TOXSWA_cwa.R b/pkg/R/TOXSWA_cwa.R index 9e23284..df7f627 100644 --- a/pkg/R/TOXSWA_cwa.R +++ b/pkg/R/TOXSWA_cwa.R @@ -56,7 +56,7 @@ read.TOXSWA_cwa <- function(filename, basedir = ".", zipfile = NULL, #' Plot TOXSWA surface water concentrations #' #' Plot TOXSWA hourly concentrations of a chemical substance in a specific -#' segment of a segment of a TOXSWA surface water body. +#' segment of a TOXSWA surface water body. #' #' @import graphics #' @param x The TOXSWA_cwa object to be plotted. diff --git a/pkg/R/drift_data_JKI.R b/pkg/R/drift_data_JKI.R index 549798c..888d3b5 100644 --- a/pkg/R/drift_data_JKI.R +++ b/pkg/R/drift_data_JKI.R @@ -39,4 +39,6 @@ #' save(drift_data_JKI, file = "data/drift_data_JKI.RData") #' } #' +#' # And this is the resulting data +#' drift_data_JKI NULL diff --git a/pkg/R/endpoint.R b/pkg/R/endpoint.R index 6cc253a..fbe9f43 100644 --- a/pkg/R/endpoint.R +++ b/pkg/R/endpoint.R @@ -4,6 +4,11 @@ #' and can hold a list of information loaded from a chemical yaml file in their #' chyaml field. Such information is extracted and optionally aggregated by #' this function. +#' +#' The functions \code{soil_*} are functions to extract soil specific endpoints. +#' For the Freundlich exponent, the capital letter \code{N} is used in order to +#' facilitate dealing with such data in R. In pesticide fate modelling, this +#' exponent is often called 1/n. #' #' @import chents #' @export @@ -48,9 +53,8 @@ endpoint <- function(chent, else return(signif(aggregator(as.numeric(values)), signif)) } -#' Obtain soil DT50 -#' #' @inheritParams endpoint +#' @rdname endpoint #' @export soil_DT50 <- function(chent, aggregator = geomean, signif = 3, lab_field = "laboratory", value = "DT50ref", @@ -61,9 +65,8 @@ soil_DT50 <- function(chent, aggregator = geomean, signif = 3, return(ep) } -#' Obtain soil Kfoc -#' #' @inheritParams endpoint +#' @rdname endpoint #' @export soil_Kfoc <- function(chent, aggregator = geomean, signif = 3, value = "Kfoc", raw = FALSE) { @@ -72,12 +75,8 @@ soil_Kfoc <- function(chent, aggregator = geomean, signif = 3, return(ep) } -#' Obtain soil Freundlich exponent -#' -#' In pesticide fate modelling, this exponent is often called 1/n. Here, in -#' order to facilitate dealing with such data in R, it is called N. -#' #' @inheritParams endpoint +#' @rdname endpoint #' @export soil_N <- function(chent, aggregator = mean, signif = 3, raw = FALSE) { ep <- endpoint(chent, medium = "soil", type = "sorption", @@ -85,9 +84,8 @@ soil_N <- function(chent, aggregator = mean, signif = 3, raw = FALSE) { return(ep) } -#' Obtain soil sorption data -#' #' @inheritParams endpoint +#' @rdname endpoint #' @param values The values to be returned #' @param aggregators A named vector of aggregator functions to be used #' @export diff --git a/pkg/R/pfm_degradation.R b/pkg/R/pfm_degradation.R index d1d2f9d..6c8610e 100644 --- a/pkg/R/pfm_degradation.R +++ b/pkg/R/pfm_degradation.R @@ -29,7 +29,7 @@ #' @export #' @author Johannes Ranke #' @examples -#' pfm_degradation("SFO", DT50 = 10) +#' head(pfm_degradation("SFO", DT50 = 10)) pfm_degradation <- function(model = "SFO", DT50 = 1000, parms = c(k_parent_sink = log(2)/DT50), years = 1, step_days = 1, times = seq(0, years * 365, by = step_days)) diff --git a/pkg/R/soil_scenario_data_EFSA_2015.R b/pkg/R/soil_scenario_data_EFSA_2015.R new file mode 100644 index 0000000..fb096bc --- /dev/null +++ b/pkg/R/soil_scenario_data_EFSA_2015.R @@ -0,0 +1,40 @@ +#' Properties of the predefined scenarios from the EFSA guidance from 2015 +#' +#' Properties of the predefined scenarios used at Tier 1, Tier 2A and Tier 3A for the +#' concentration in soil as given in the EFSA guidance (2015, p. 13/14). Also, the +#' scenario and model adjustment factors from p. 15 and p. 17 are included. +#' +#' @name soil_scenario_data_EFSA_2015 +#' @docType data +#' @format A data frame with one row for each scenario. Row names are the scenario codes, +#' e.g. CTN for the Northern scenario for the total concentration in soil. Columns are +#' mostly self-explanatory. \code{rho} is the dry bulk density of the top soil. +#' @source EFSA (European Food Safety Authority) (2015) +#' EFSA guidance document for predicting environmental concentrations +#' of active substances of plant protection products and transformation products of these +#' active substances in soil. \emph{EFSA Journal} \bold{13}(4) 4093 +#' doi:10.2903/j.efsa.2015.4093 +#' @keywords datasets +#' @examples +#' \dontrun{ +#' # This is the code that was used to define the data +#' soil_scenario_data_EFSA_2015 <- data.frame( +#' Zone = rep(c("North", "Central", "South"), 2), +#' Country = c("Estonia", "Germany", "France", "Denmark", "Czech Republik", "Spain"), +#' T_arit = c(4.7, 8.0, 11.0, 8.2, 9.1, 12.8), +#' T_arr = c(7.0, 10.1, 12.3, 9.8, 11.2, 14.7), +#' Texture = c("Coarse", "Coarse", "Medium fine", "Medium", "Medium", "Medium"), +#' f_om = c(0.118, 0.086, 0.048, 0.023, 0.018, 0.011), +#' theta_fc = c(0.244, 0.244, 0.385, 0.347, 0.347, 0.347), +#' rho = c(0.95, 1.05, 1.22, 1.39, 1.43, 1.51), +#' f_sce = c(3, 2, 2, 2, 1.5, 1.5), +#' f_mod = c(2, 2, 2, 4, 4, 4), +#' stringsAsFactors = FALSE, +#' row.names = c("CTN", "CTC", "CTS", "CLN", "CLC", "CLS") +#' ) +#' save(soil_scenario_data_EFSA_2015, file = '../data/soil_scenario_data_EFSA_2015.RData') +#' } +#' +#' # And this is the resulting dataframe +#' soil_scenario_data_EFSA_2015 +NULL diff --git a/pkg/data/soil_scenario_data_EFSA_2015.RData b/pkg/data/soil_scenario_data_EFSA_2015.RData Binary files differnew file mode 100644 index 0000000..b30076f --- /dev/null +++ b/pkg/data/soil_scenario_data_EFSA_2015.RData diff --git a/pkg/inst/staticdocs/index.r b/pkg/inst/staticdocs/index.r new file mode 100644 index 0000000..421071c --- /dev/null +++ b/pkg/inst/staticdocs/index.r @@ -0,0 +1,42 @@ +sd_section( + "Degradation", + "Functions related to degradation", + c("pfm_degradation", "SFO_actual_twa") +) +sd_section( + "Mobility", + "Indicators related to mobility", + c("GUS", "SSLRC_mobility_classification") +) +sd_section( + "Soil", + "Predicted environmental concentrations in soil", + c("PEC_soil", "soil_scenario_data_EFSA_2015") +) +sd_section( + "Surface water", + "Predicted environmental concentrations in surface water", + c( + "PEC_sw_drift", "PEC_sw_sed", + "drift_data_JKI", + "PEC_sw_drainage_UK", + "TOXSWA_cwa", + "read.TOXSWA_cwa", + "plot.TOXSWA_cwa" + ) +) +sd_section( + "Groundwater", + "Predicted environmental concentrations in groundwater", + c("FOCUS_GW_scenarios_2012") +) +sd_section( + "Chemical entities", + "Work with input stored in chemical entites as R objects using the chent package", + c("endpoint") +) +sd_section( + "General", + "Utilities that are generally useful", + c("geomean") +) diff --git a/pkg/inst/web/FOCUS_GW_scenarios_2012.html b/pkg/inst/web/FOCUS_GW_scenarios_2012.html new file mode 100644 index 0000000..43fc3a3 --- /dev/null +++ b/pkg/inst/web/FOCUS_GW_scenarios_2012.html @@ -0,0 +1,154 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>FOCUS_GW_scenarios_2012. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>A very small subset of the FOCUS Groundwater scenario defitions</h1> + +<div class="row"> + <div class="span8"> + + <div class="Description"> + <h2>Description</h2> + + <p>Currently, only a small subset of the soil definitions are provided.</p> + + </div> + + <div class="References"> + <h2>References</h2> + + <p>FOCUS (2012) Generic guidance for Tier 1 FOCUS ground water assessments. Version 2.1. + FOrum for the Co-ordination of pesticde fate models and their USe. + http://focus.jrc.ec.europa.eu/gw/docs/Generic_guidance_FOCV2_1.pdf</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>FOCUS_GW_scenarios_2012 +</div> +<div class='output'>$names + Cha Ham Jok Kre Oke + "Châteadun" "Hamburg" "Jokioinen" "Kremsmünster" "Okehampton" + Pia Por Sev Thi + "Piacenza" "Porto" "Sevilla" "Thiva" + +$soils + location horizon number pH_H2O perc_clay perc_oc rel_deg +1 Cha Ap 1 8.0 30.0 1.39 1.0 +2 Cha B1 2 8.1 31.0 0.93 0.5 +3 Cha B2 3 8.2 25.0 0.70 0.5 +4 Cha II C1 4 8.5 26.0 0.30 0.3 +5 Cha II C1 5 8.5 26.0 0.30 0.0 +6 Cha II C2 6 8.5 24.0 0.27 0.0 +7 Cha M 7 8.3 31.0 0.21 0.0 +8 Ham Ap 1 6.4 7.2 1.50 1.0 +9 Ham BvI 2 5.6 6.7 1.00 0.5 +10 Ham BvII 3 5.6 0.9 0.20 0.3 +11 Ham Bv/Cv 4 5.7 0.0 0.00 0.3 +12 Ham Cv 5 5.5 0.0 0.00 0.3 +13 Ham Cv 6 5.5 0.0 0.00 0.0 +14 Jok Ap 1 6.2 3.6 4.06 1.0 +15 Jok Bs 2 5.6 1.8 0.84 0.5 +16 Jok BC1 3 5.4 1.2 0.36 0.3 +17 Jok BC2 4 5.4 1.7 0.29 0.3 +18 Jok BC2 5 5.4 1.7 0.29 0.0 +19 Jok Cg 6 5.3 1.9 0.21 0.0 +20 Kre <NA> 1 7.7 14.0 3.60 1.0 +21 Kre <NA> 2 7.0 25.0 1.00 0.5 +22 Kre <NA> 3 7.1 27.0 0.50 0.5 +23 Kre <NA> 4 7.1 27.0 0.50 0.3 +24 Kre <NA> 5 7.1 27.0 0.50 0.0 +25 Oke A 1 5.8 18.0 2.20 1.0 +26 Oke Bw1 2 6.3 17.0 0.70 0.5 +27 Oke BC 3 6.5 14.0 0.40 0.3 +28 Oke C 4 6.6 9.0 0.10 0.3 +29 Oke C 5 6.6 9.0 0.10 0.0 +30 Pia Ap 1 7.0 15.0 1.26 1.0 +31 Pia Ap 2 7.0 15.0 1.26 0.5 +32 Pia Bw 3 6.3 7.0 0.47 0.5 +33 Pia Bw 4 6.3 7.0 0.47 0.3 +34 Pia 2C 5 6.4 0.0 0.00 0.3 +35 Pia 2C 6 6.4 0.0 0.00 0.0 +36 Por <NA> 1 4.9 10.0 1.42 1.0 +37 Por <NA> 2 4.8 8.0 0.78 0.5 +38 Por <NA> 3 4.8 8.0 0.78 0.3 +39 Por <NA> 4 4.8 8.0 0.78 0.0 +40 Sev <NA> 1 7.3 14.0 0.93 1.0 +41 Sev <NA> 2 7.3 13.0 0.93 1.0 +42 Sev <NA> 3 7.8 15.0 0.70 0.5 +43 Sev <NA> 4 8.1 16.0 0.58 0.3 +44 Sev <NA> 5 8.1 16.0 0.58 0.0 +45 Sev <NA> 6 8.2 22.0 0.49 0.0 +46 Thi Ap1 1 7.7 25.3 0.74 1.0 +47 Thi Ap2 2 7.7 25.3 0.74 0.5 +48 Thi Bw 3 7.8 29.6 0.57 0.5 +49 Thi Bw 4 7.8 31.9 0.31 0.3 +50 Thi Ck1 5 7.8 32.9 0.18 0.3 +51 Thi Ck1 6 7.8 32.9 0.18 0.0 + +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>FOCUS_GW_scenarios_2012</li> + </ul> + <ul> + + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/GUS.html b/pkg/inst/web/GUS.html new file mode 100644 index 0000000..dae2e5f --- /dev/null +++ b/pkg/inst/web/GUS.html @@ -0,0 +1,160 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>GUS. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Groundwater ubiquity score based on Gustafson (1989)</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>GUS(...)</div> +<div>"GUS"(DT50, Koc, ...)</div> +<div>"GUS"(chent, degradation_value = "DT50ref", lab_field = "laboratory", redox = "aerobic", sorption_value = "Kfoc", degradation_aggregator = geomean, sorption_aggregator = geomean, ...)</div> +<div>"print"(x, ..., digits = 1)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>...</dt> + <dd>Included in the generic to allow for further arguments later. Therefore +this also had to be added to the specific methods.</dd> + <dt>DT50</dt> + <dd>Half-life of the chemical in soil. Should be a field +half-life according to Gustafson (1989). However, leaching to the sub-soil +can not completely be excluded in field dissipation experiments and Gustafson +did not refer to any normalisation procedure, but says the field study should +be conducted under use conditions.</dd> + <dt>Koc</dt> + <dd>The sorption constant normalised to organic carbon. Gustafson +does not mention the nonlinearity of the sorption constant commonly +found and usually described by Freundlich sorption, therefore it is +unclear at which reference concentration the Koc should be observed +(and if the reference concentration would be in soil or in porewater).</dd> + <dt>chent</dt> + <dd>If a chent is given with appropriate information present in its +chyaml field, this information is used, with defaults specified below.</dd> + <dt>degradation_value</dt> + <dd>Which of the available degradation values should +be used?</dd> + <dt>lab_field</dt> + <dd>Should laboratory or field half-lives be used? This +defaults to lab in this implementation, in order to avoid +double-accounting for mobility. If comparability with the original GUS +values given by Gustafson (1989) is desired, non-normalised first-order +field half-lives obtained under actual use conditions should be used.</dd> + <dt>redox</dt> + <dd>Aerobic or anaerobic degradation data</dd> + <dt>sorption_value</dt> + <dd>Which of the available sorption values should be used? +Defaults to Kfoc as this is what is generally available from the European +pesticide peer review process. These values generally use a reference +concentration of 1 mg/L in porewater, that means they would be expected to +be Koc values at a concentration of 1 mg/L in the water phase.</dd> + <dt>degradation_aggregator</dt> + <dd>Function for aggregating half-lives</dd> + <dt>sorption_aggregator</dt> + <dd>Function for aggregation Koc values</dd> + <dt>x</dt> + <dd>An object of class GUS_result to be printed</dd> + <dt>digits</dt> + <dd>The number of digits used in the print method</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +A list with the DT50 and Koc used as well as the resulting score + of class GUS_result +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>The groundwater ubiquity score GUS is calculated according to +the following equation +$$GUS = \log_{10} DT50_{soil} (4 - \log_{10} K_{oc})$$</p> + + </div> + + <div class="References"> + <h2>References</h2> + + <p>Gustafson, David I. (1989) Groundwater ubiquity score: a simple +method for assessing pesticide leachability. <em>Environmental +toxicology and chemistry</em> <b>8</b>(4) 339–57.</p> + + </div> + </div> + <div class="span4"> + <!-- <ul> + <li>GUS</li><li>GUS.chent</li><li>GUS.numeric</li><li>print.GUS_result</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/PEC_soil.html b/pkg/inst/web/PEC_soil.html new file mode 100644 index 0000000..d74a49f --- /dev/null +++ b/pkg/inst/web/PEC_soil.html @@ -0,0 +1,228 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>PEC_soil. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate predicted environmental concentrations in soil</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>PEC_soil(rate, rate_units = "g/ha", interception = 0, mixing_depth = 5, PEC_units = "mg/kg", PEC_pw_units = "mg/L", interval = NA, n_periods = Inf, tillage_depth = 20, chent = NA, DT50 = NA, Koc = NA, Kom = Koc/1.724, t_avg = 0, scenarios = c("default", "EFSA_2015"), porewater = FALSE)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>rate</dt> + <dd>Application rate in units specified below</dd> + <dt>rate_units</dt> + <dd>Defaults to g/ha</dd> + <dt>interception</dt> + <dd>The fraction of the application rate that does not reach the soil</dd> + <dt>mixing_depth</dt> + <dd>Mixing depth in cm</dd> + <dt>PEC_units</dt> + <dd>Requested units for the calculated PEC. Only mg/kg currently supported</dd> + <dt>PEC_pw_units</dt> + <dd>Only mg/L currently supported</dd> + <dt>interval</dt> + <dd>Period of the deeper mixing, defaults to 365, which is a year if +rate units are in days</dd> + <dt>n_periods</dt> + <dd>Number of periods to be considered for long term PEC calculations</dd> + <dt>tillage_depth</dt> + <dd>Periodic (see interval) deeper mixing in cm</dd> + <dt>chent</dt> + <dd>An optional chent object holding substance specific information. Can +also be a name for the substance as a character string</dd> + <dt>DT50</dt> + <dd>If specified, overrides soil DT50 endpoints from a chent object +If DT50 is not specified here and not available from the chent object, zero +degradation is assumed</dd> + <dt>Koc</dt> + <dd>If specified, overrides Koc endpoints from a chent object</dd> + <dt>Kom</dt> + <dd>Calculated from Koc by default, but can explicitly be specified +as Kom here</dd> + <dt>t_avg</dt> + <dd>Averaging times for time weighted average concentrations</dd> + <dt>scenarios</dt> + <dd>If this is 'default', the DT50 will be used without correction +and soil properties as specified in the REACH guidance (R.16, Table +R.16-9) are used for porewater PEC calculations. If this is "EFSA_2015", +the DT50 is taken to be a modelling half-life at 20°C and pF2 (for when +'chents' is specified, the DegT50 with destination 'PECgw' will be used), +and corrected using an Arrhenius activation energy of 65.4 kJ/mol. Also +model and scenario adjustment factors from the EFSA guidance are used.</dd> + <dt>porewater</dt> + <dd>Should equilibrium porewater concentrations be estimated +based on Kom and the organic carbon fraction of the soil instead of total +soil concentrations? Based on equation (7) given in the PPR panel opinion +(EFSA 2012, p. 24) and the scenarios specified in the EFSA guidance (2015, +p. 13).</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +The predicted concentration in soil +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>This is a basic calculation of a contaminant concentration in bulk soil +based on complete, instantaneous mixing. If an interval is given, an +attempt is made at calculating a long term maximum concentration using +the concepts layed out for example in the PPR panel opinion (EFSA 2012).</p> + + </div> + + <div class="Details"> + <h2>Details</h2> + + <p>This assumes that the complete load to soil during the time specified by +'interval' (typically 365 days) is dosed at once. As in the PPR panel +opinion cited below (PPR panel 2012), only temperature correction using the +Arrhenius equation is performed.</p> + + <p>Total soil and porewater PEC values for the scenarios as defined in the EFSA +guidance (2015, p. 13) can easily be calculated.</p> + + </div> + + <div class="Note"> + <h2>Note</h2> + + <p>If temperature information is available in the selected scenarios, as + e.g. in the EFSA scenarios, the DT50 for groundwater modelling + (destination 'PECgw') is taken from the chent object, otherwise the DT50 + with destination 'PECsoil'.</p> + + </div> + + <div class="References"> + <h2>References</h2> + + <p>EFSA Panel on Plant Protection Products and their Residues (2012) + Scientific Opinion on the science behind the guidance for scenario + selection and scenario parameterisation for predicting environmental + concentrations of plant protection products in soil. <em>EFSA Journal</em> + <b>10</b>(2) 2562, doi:10.2903/j.efsa.2012.2562</p> + + <p>EFSA (European Food Safety Authority) (2015) EFSA guidance document for + predicting environmental concentrations of active substances of plant + protection products and transformation products of these active substances + in soil. <em>EFSA Journal</em> <b>13</b>(4) 4093 + doi:10.2903/j.efsa.2015.4093</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>PEC_soil(100, interception = 0.25) +</div> +<div class='output'> scenario +t_avg default + 0 0.1 +</div> +<div class='input'> +# This is example 1 starting at p. 79 of the EFSA guidance (2015) +PEC_soil(1000, interval = 365, DT50 = 250, t_avg = c(0, 21), + scenarios = "EFSA_2015") +</div> +<div class='output'> scenario +t_avg CTN CTC CTS + 0 21.96827 11.53750 9.145259 + 21 21.78517 11.40701 9.017370 +</div> +<div class='input'>PEC_soil(1000, interval = 365, DT50 = 250, t_av = c(0, 21), + Kom = 1000, scenarios = "EFSA_2015", porewater = TRUE) +</div> +<div class='output'> scenario +t_avg CLN CLC CLS + 0 0.7589401 0.6674322 0.9147861 + 21 0.7506036 0.6590345 0.8987279 +</div> +<div class='input'> +# The following is from example 4 starting at p. 85 of the EFSA guidance (2015) +# Metabolite M2 +# Calculate total and porewater soil concentrations for tier 1 scenarios +# Relative molar mass is 100/300, formation fraction is 0.7 * 1 +results_pfm <- PEC_soil(100/300 * 0.7 * 1 * 1000, interval = 365, DT50 = 250, t_avg = c(0, 21), + scenarios = "EFSA_2015") +results_pfm_pw <- PEC_soil(100/300 * 0.7 * 1000, interval = 365, DT50 = 250, t_av = c(0, 21), + Kom = 100, scenarios = "EFSA_2015", porewater = TRUE) +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>PEC_soil</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/PEC_soil_product.html b/pkg/inst/web/PEC_soil_product.html new file mode 100644 index 0000000..9704de2 --- /dev/null +++ b/pkg/inst/web/PEC_soil_product.html @@ -0,0 +1,141 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>PEC_soil_product. pfm 0.2-4</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.2-4</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate predicted environmental concentrations in soil for a product</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>PEC_soil_product(product, rate, rate_units = "L/ha", interception = 0, mixing_depth = 5, tillage_depth = 20, interval = 365, PEC_units = "mg/kg", scenarios = "EFSA_2015")</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>product</dt> + <dd>An object of class pp</dd> + <dt>rate</dt> + <dd>Application rate in units specified below</dd> + <dt>rate_units</dt> + <dd>Defaults to g/ha</dd> + <dt>interception</dt> + <dd>The fraction of the application rate that does not reach the soil</dd> + <dt>mixing_depth</dt> + <dd>Mixing depth in cm</dd> + <dt>tillage_depth</dt> + <dd>Periodic (see interval) deeper mixing in cm</dd> + <dt>interval</dt> + <dd>Period of the deeper mixing, defaults to 365, which is a year if +rate units are in days</dd> + <dt>PEC_units</dt> + <dd>Requested units for the calculated PEC. Only mg/kg currently supported</dd> + </dl> + + <div class="Source"> + <h2>Source</h2> + + <p>EFSA Panel on Plant Protection Products and their Residues (2012) +Scientific Opinion on the science behind the guidance for scenario selection +and scenario parameterisation for predicting environmental concentrations +of plant protection products in soil. <em>EFSA Journal</em> <b>10</b>(2) 2562, +doi:10.2903/j.efsa.2012.2562</p> + + <p>EFSA (European Food Safety Authority) (2015) +EFSA guidance document for predicting environmental concentrations +of active substances of plant protection products and transformation products of these +active substances in soil. <em>EFSA Journal</em> <b>13</b>(4) 4093 +doi:10.2903/j.efsa.2015.4093</p> + + </div> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +A data frame with compound names, and initial, background (plateau minimum) + and long term maximum predicted concentrations in soil +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>Calculates long term accumulation PEC values. Assumes that the complete load to soil during the +time specified by 'interval' (typically 365 days) is dosed at once. As in the PPR panel opinion +cited below (PPR panel 2012), only temperature correction using the Arrhenius equation is performed. +By default, PEC values for the scenarios as defined in the EFSA guidance +(2015, p. 13) are calculated.</p> + + </div> + </div> + <div class="span4"> + <!-- <ul> + <li>PEC_soil_product</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/PEC_sw_drainage_UK.html b/pkg/inst/web/PEC_sw_drainage_UK.html new file mode 100644 index 0000000..1cbac88 --- /dev/null +++ b/pkg/inst/web/PEC_sw_drainage_UK.html @@ -0,0 +1,124 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>PEC_sw_drainage_UK. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate initial predicted environmental concentrations in surface water due to drainage using the UK method</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>PEC_sw_drainage_UK(rate, interception = 0, Koc, latest_application = NULL, soil_DT50 = NULL, model = NULL, model_parms = NULL)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>rate</dt> + <dd>Application rate in g/ha</dd> + <dt>interception</dt> + <dd>The fraction of the application rate that does not reach the soil</dd> + <dt>Koc</dt> + <dd>The sorption coefficient normalised to organic carbon in L/kg</dd> + <dt>latest_application</dt> + <dd>Latest application date, formatted as e.g. "01 July"</dd> + <dt>soil_DT50</dt> + <dd>Soil degradation half-life, if SFO kinetics are to be used</dd> + <dt>model</dt> + <dd>The soil degradation model to be used. Either one of "FOMC", +"DFOP", "HS", or "IORE", or an mkinmod object</dd> + <dt>model_parms</dt> + <dd>A named numeric vector containing the model parameters</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +The predicted concentration in surface water in µg/L +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>This implements the method specified in the UK data requirements handbook and was checked against the spreadsheet +published on the CRC website</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>PEC_sw_drainage_UK(150, Koc = 100) +</div> +<div class='output'>[1] 8.076923 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>PEC_sw_drainage_UK</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/PEC_sw_drainage_UK_ini.html b/pkg/inst/web/PEC_sw_drainage_UK_ini.html new file mode 100644 index 0000000..0d55bd9 --- /dev/null +++ b/pkg/inst/web/PEC_sw_drainage_UK_ini.html @@ -0,0 +1,124 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>PEC_sw_drainage_UK_ini. pfm 0.2-4</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.2-4</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate initial predicted environmental concentrations in surface water due to drainage using the UK method</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>PEC_sw_drainage_UK_ini(rate, interception = 0, Koc, latest_application = NULL, soil_DT50 = NULL, model = NULL, model_parms = NULL)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>rate</dt> + <dd>Application rate in g/ha</dd> + <dt>interception</dt> + <dd>The fraction of the application rate that does not reach the soil</dd> + <dt>Koc</dt> + <dd>The sorption coefficient normalised to organic carbon in L/kg</dd> + <dt>latest_application</dt> + <dd>Latest application date, formatted as e.g. "01 July"</dd> + <dt>soil_DT50</dt> + <dd>Soil degradation half-life, if SFO kinetics are to be used</dd> + <dt>model</dt> + <dd>The degradation model to be used. Either one of "FOMC", "DFOP", +"HS", or "IORE", or an mkinmod object</dd> + <dt>model_parms</dt> + <dd>A named numeric vector containing the model parameters</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +The predicted concentration in surface water in µg/L +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>This implements the method specified in the UK data requirements handbook and was checked against the spreadsheet +published on the CRC website</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>PEC_sw_drainage_UK_ini(150, Koc = 100) +</div> +<div class='output'>[1] 8.076923 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>PEC_sw_drainage_UK_ini</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/PEC_sw_drift.html b/pkg/inst/web/PEC_sw_drift.html new file mode 100644 index 0000000..4a097fc --- /dev/null +++ b/pkg/inst/web/PEC_sw_drift.html @@ -0,0 +1,127 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>PEC_sw_drift. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate predicted environmental concentrations in surface water due to drift</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>PEC_sw_drift(rate, applications = 1, water_depth = 30, drift_data = "JKI", crop = "Ackerbau", distances = c(1, 5, 10, 20), rate_units = "g/ha", PEC_units = "µg/L")</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>rate</dt> + <dd>Application rate in units specified below</dd> + <dt>applications</dt> + <dd>Number of applications for selection of drift percentile</dd> + <dt>water_depth</dt> + <dd>Depth of the water body in cm</dd> + <dt>drift_data</dt> + <dd>Source of drift percentage data</dd> + <dt>crop</dt> + <dd>Crop name (use German names for JKI data), defaults to "Ackerbau"</dd> + <dt>distances</dt> + <dd>The distances in m for which to get PEC values</dd> + <dt>rate_units</dt> + <dd>Defaults to g/ha</dd> + <dt>PEC_units</dt> + <dd>Requested units for the calculated PEC. Only µg/L currently supported</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +The predicted concentration in surface water +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>This is a basic, vectorised form of a simple calculation of a contaminant +concentration in surface water based on complete, instantaneous mixing +with input via spray drift.</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>PEC_sw_drift(100) +</div> +<div class='output'> 1 m 5 m 10 m 20 m +0.92333333 0.19000000 0.09666667 0.05000000 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>PEC_sw_drift</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/PEC_sw_drift_ini.html b/pkg/inst/web/PEC_sw_drift_ini.html new file mode 100644 index 0000000..bc7eed5 --- /dev/null +++ b/pkg/inst/web/PEC_sw_drift_ini.html @@ -0,0 +1,127 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>PEC_sw_drift_ini. pfm 0.2-4</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.2-4</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate initial predicted environmental concentrations in surface water due to drift</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>PEC_sw_drift_ini(rate, applications = 1, water_depth = 30, drift_data = "JKI", crop = "Ackerbau", distances = c(1, 5, 10, 20), rate_units = "g/ha", PEC_units = "µg/L")</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>rate</dt> + <dd>Application rate in units specified below</dd> + <dt>applications</dt> + <dd>Number of applications for selection of drift percentile</dd> + <dt>water_depth</dt> + <dd>Depth of the water body in cm</dd> + <dt>drift_data</dt> + <dd>Source of drift percentage data</dd> + <dt>crop</dt> + <dd>Crop name (use German names for JKI data), defaults to "Ackerbau"</dd> + <dt>distances</dt> + <dd>The distances in m for which to get PEC values</dd> + <dt>rate_units</dt> + <dd>Defaults to g/ha</dd> + <dt>PEC_units</dt> + <dd>Requested units for the calculated PEC. Only µg/L currently supported</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +The predicted concentration in surface water +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>This is a basic, vectorised form of a simple calculation of a contaminant +concentration in surface water based on complete, instantaneous mixing +with input via spray drift.</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>PEC_sw_drift_ini(100) +</div> +<div class='output'> 1 m 5 m 10 m 20 m +0.92333333 0.19000000 0.09666667 0.05000000 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>PEC_sw_drift_ini</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/PEC_sw_sed.html b/pkg/inst/web/PEC_sw_sed.html new file mode 100644 index 0000000..231c48f --- /dev/null +++ b/pkg/inst/web/PEC_sw_sed.html @@ -0,0 +1,127 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>PEC_sw_sed. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate predicted environmental concentrations in sediment from surface +water concentrations</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>PEC_sw_sed(PEC_sw, percentage = 100, method = "percentage", sediment_depth = 5, water_depth = 30, sediment_density = 1.3, PEC_sed_units = c("µg/kg", "mg/kg"))</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>PEC_sw</dt> + <dd>Numeric vector or matrix of surface water concentrations in µg/L for +which the corresponding sediment concentration is to be estimated</dd> + <dt>percentage</dt> + <dd>The percentage in sediment, used for the percentage method</dd> + <dt>method</dt> + <dd>The method used for the calculation</dd> + <dt>sediment_depth</dt> + <dd>Depth of the sediment layer</dd> + <dt>water_depth</dt> + <dd>Depth of the water body in cm</dd> + <dt>sediment_density</dt> + <dd>The density of the sediment in L/kg (equivalent to +g/cm3)</dd> + <dt>PEC_sed_units</dt> + <dd>The units of the estimated sediment PEC value</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +The predicted concentration in sediment +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>The method 'percentage' is equivalent to what is used in the CRD spreadsheet +PEC calculator</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>PEC_sw_sed(PEC_sw_drift(100, distances = 1), percentage = 50) +</div> +<div class='output'> 1 m +2.130769 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>PEC_sw_sed</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/SFO_actual_twa.html b/pkg/inst/web/SFO_actual_twa.html new file mode 100644 index 0000000..e132828 --- /dev/null +++ b/pkg/inst/web/SFO_actual_twa.html @@ -0,0 +1,123 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>SFO_actual_twa. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Actual and maximum moving window time average concentrations for SFO kinetics</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>SFO_actual_twa(DT50 = 1000, times = c(0, 1, 2, 4, 7, 14, 21, 28, 42, 50, 100))</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>DT50</dt> + <dd>The half-life.</dd> + <dt>times</dt> + <dd>The output times, and window sizes for time weighted average concentrations</dd> + </dl> + + <div class="Source"> + <h2>Source</h2> + + <p>FOCUS (2014) Generic Guidance for Estimating Persistence and Degradation + Kinetics from Environmental Fate Studies on Pesticides in EU Registratin, Version 1.1, + 18 December 2014, p. 251</p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>Actual and maximum moving window time average concentrations for SFO kinetics</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>SFO_actual_twa(10) +</div> +<div class='output'> actual twa +0 1.0000000000 NaN +1 0.9330329915 0.9661297 +2 0.8705505633 0.9337803 +4 0.7578582833 0.8733416 +7 0.6155722067 0.7923030 +14 0.3789291416 0.6400113 +21 0.2332582479 0.5267498 +28 0.1435872944 0.4412651 +42 0.0544094102 0.3248093 +50 0.0312500000 0.2795222 +100 0.0009765625 0.1441286 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>SFO_actual_twa</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/SSLRC_mobility_classification.html b/pkg/inst/web/SSLRC_mobility_classification.html new file mode 100644 index 0000000..06c6119 --- /dev/null +++ b/pkg/inst/web/SSLRC_mobility_classification.html @@ -0,0 +1,117 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>SSLRC_mobility_classification. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Determine the SSLRC mobility classification for a chemical substance from its Koc</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>SSLRC_mobility_classification(Koc)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>Koc</dt> + <dd>The sorption coefficient normalised to organic carbon in L/kg</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +A list containing the classification and the percentage of the + compound transported per 10 mm drain water +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>This implements the method specified in the UK data requirements handbook and was +checked against the spreadsheet published on the CRC website</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>SSLRC_mobility_classification(100) +</div> +<div class='output'>$`Mobility classification` +[1] "Moderately mobile" + +$`Percentage drained per mm of drain water` +[1] 0.7 + +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>SSLRC_mobility_classification</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/TOXSWA_cwa.html b/pkg/inst/web/TOXSWA_cwa.html new file mode 100644 index 0000000..8edb15a --- /dev/null +++ b/pkg/inst/web/TOXSWA_cwa.html @@ -0,0 +1,176 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>TOXSWA_cwa. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>R6 class for holding TOXSWA cwa concentration data and associated statistics</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>TOXSWA_cwa</div></pre> + + <div class="Format"> + <h2>Format</h2> + + <p>An <code><a href='http://www.inside-r.org/packages/cran/R6/docs/R6Class'>R6Class</a></code> generator object.</p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>An R6 class for holding TOXSWA cwa concentration data and some associated statistics. +Usually, an instance of this class will be generated by <code><a href='read.TOXSWA_cwa.html'>read.TOXSWA_cwa</a></code>.</p> + + </div> + + <div class="Fields"> + <h2>Fields</h2> + + <p></p> + + <p><dl> +<dt><code>filename</code></dt><dd>Length one character vector.</dd></p> + + <p><dt><code>basedir</code></dt><dd>Length one character vector.</dd></p> + + <p><dt><code>segment</code></dt><dd>Length one integer, specifying for which segment the cwa data were read.</dd></p> + + <p><dt><code>cwas</code></dt><dd>Dataframe holding the concentrations.</dd></p> + + <p><dt><code>events</code></dt><dd>List of dataframes holding the event statistics for each threshold.</dd></p> + + <p><dt><code>windows</code></dt><dd>Matrix of maximum time weighted average concentrations (TWAC_max) +and areas under the curve in µg/day * h (AUC_max_h) or µg/day * d (AUC_max_d) +for the requested moving window sizes in days.</dd></p> + + <p></dl></p> + + </div> + + <div class="Methods"> + <h2>Methods</h2> + + <p></p> + + <p><dl> + <dt><code>get_events(threshold, total = FALSE)</code></dt><dd> + Populate a datataframe with event information for the specified threshold value + in µg/L. If <code>total = TRUE</code>, the total concentration including the amount + adsorbed to suspended matter will be used. The resulting dataframe is stored in the + <code>events</code> field of the object. + </dd></p> + + <p><dt><code>moving_windows(windows, total = FALSE)</code></dt><dd> + Add to the <code>windows</code> field described above. + Again, if <code>total = TRUE</code>, the total concentration including the amount + adsorbed to suspended matter will be used. + </dd></p> + + <p></dl></p> + + <p></p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>H_sw_R1_stream <- read.TOXSWA_cwa("00003s_pa.cwa", + basedir = "SwashProjects/project_H_sw/TOXSWA", + zipfile = system.file("testdata/SwashProjects.zip", + package = "pfm")) +H_sw_R1_stream$get_events(c(2, 10)) +H_sw_R1_stream$moving_windows(c(7, 21)) +print(H_sw_R1_stream) +</div> +<div class='output'><TOXSWA_cwa> data from file 00003s_pa.cwa segment 20 + datetime t t_firstjan t_rel_to_max cwa_mug_per_L +20 1978-10-01 00:00:00 0.000 273.0000 -55.333 0 +40 1978-10-01 01:00:00 0.042 273.0417 -55.291 0 +60 1978-10-01 02:00:00 0.083 273.0833 -55.250 0 +80 1978-10-01 03:00:00 0.125 273.1250 -55.208 0 +100 1978-10-01 04:00:00 0.167 273.1667 -55.166 0 +120 1978-10-01 05:00:00 0.208 273.2083 -55.125 0 + cwa_tot_mug_per_L +20 0 +40 0 +60 0 +80 0 +100 0 +120 0 +Moving window analysis + window max_TWAC max_AUC_h max_AUC_d +1 7 days 2.3926551 401.9660 16.74859 +2 21 days 0.8369248 421.8101 17.57542 +Event statistics for threshold 2 + t_start cwa_max duration pre_interval AUC_h AUC_d +1 44.375 4.167238 0.208 44.375 17.77202 0.740501 +2 55.042 40.584010 0.583 10.459 398.21189 16.592162 +Event statistics for threshold 10 + t_start cwa_max duration pre_interval AUC_h AUC_d +1 55.083 40.58401 0.459 55.083 379.433 15.80971 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>TOXSWA_cwa</li> + </ul> + <ul> + <li>data</li> + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/css/bootstrap-responsive.css b/pkg/inst/web/css/bootstrap-responsive.css new file mode 100644 index 0000000..06e55c0 --- /dev/null +++ b/pkg/inst/web/css/bootstrap-responsive.css @@ -0,0 +1,815 @@ +/*! + * Bootstrap Responsive v2.0.4 + * + * 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: ""; +} + +.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: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +@media (max-width: 767px) { + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 18px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-group > label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .modal { + position: absolute; + top: 10px; + right: 10px; + left: 10px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + [class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: auto; + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-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; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; + } + .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: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.762430939%; + *margin-left: 2.709239449638298%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 99.999999993%; + *width: 99.9468085036383%; + } + .row-fluid .span11 { + width: 91.436464082%; + *width: 91.38327259263829%; + } + .row-fluid .span10 { + width: 82.87292817100001%; + *width: 82.8197366816383%; + } + .row-fluid .span9 { + width: 74.30939226%; + *width: 74.25620077063829%; + } + .row-fluid .span8 { + width: 65.74585634900001%; + *width: 65.6926648596383%; + } + .row-fluid .span7 { + width: 57.182320438000005%; + *width: 57.129128948638304%; + } + .row-fluid .span6 { + width: 48.618784527%; + *width: 48.5655930376383%; + } + .row-fluid .span5 { + width: 40.055248616%; + *width: 40.0020571266383%; + } + .row-fluid .span4 { + width: 31.491712705%; + *width: 31.4385212156383%; + } + .row-fluid .span3 { + width: 22.928176794%; + *width: 22.874985304638297%; + } + .row-fluid .span2 { + width: 14.364640883%; + *width: 14.311449393638298%; + } + .row-fluid .span1 { + width: 5.801104972%; + *width: 5.747913482638298%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 714px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 652px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 590px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 528px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 466px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 404px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 342px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 280px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 218px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 156px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 94px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 32px; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 30px; + } + .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: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.564102564%; + *margin-left: 2.510911074638298%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145300001%; + *width: 91.3997999636383%; + } + .row-fluid .span10 { + width: 82.905982906%; + *width: 82.8527914166383%; + } + .row-fluid .span9 { + width: 74.358974359%; + *width: 74.30578286963829%; + } + .row-fluid .span8 { + width: 65.81196581200001%; + *width: 65.7587743226383%; + } + .row-fluid .span7 { + width: 57.264957265%; + *width: 57.2117657756383%; + } + .row-fluid .span6 { + width: 48.717948718%; + *width: 48.6647572286383%; + } + .row-fluid .span5 { + width: 40.170940171000005%; + *width: 40.117748681638304%; + } + .row-fluid .span4 { + width: 31.623931624%; + *width: 31.5707401346383%; + } + .row-fluid .span3 { + width: 23.076923077%; + *width: 23.0237315876383%; + } + .row-fluid .span2 { + width: 14.529914530000001%; + *width: 14.4767230406383%; + } + .row-fluid .span1 { + width: 5.982905983%; + *width: 5.929714493638298%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1160px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1060px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 960px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 860px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 760px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 660px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 560px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 460px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 360px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 260px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 160px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 60px; + } + .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: 18px; + } + .navbar-fixed-bottom { + margin-top: 18px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 9px; + } + .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: #999999; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 6px 15px; + font-weight: bold; + color: #999999; + -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: #222222; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: block; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 9px 15px; + margin: 9px 0; + border-top: 1px solid #222222; + border-bottom: 1px solid #222222; + -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 .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/pkg/inst/web/css/bootstrap-responsive.min.css b/pkg/inst/web/css/bootstrap-responsive.min.css new file mode 100644 index 0000000..1f55036 --- /dev/null +++ b/pkg/inst/web/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.0.4 + * + * 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:""}.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:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}@media(max-width:767px){.visible-phone{display:inherit!important}.hidden-phone{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(min-width:768px) and (max-width:979px){.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:18px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{position:absolute;top:10px;right:10px;left:10px;width:auto;margin:0}.modal.fade.in{top:auto}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:auto;margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-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}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.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:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.762430939%;*margin-left:2.709239449638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.999999993%;*width:99.9468085036383%}.row-fluid .span11{width:91.436464082%;*width:91.38327259263829%}.row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%}.row-fluid .span9{width:74.30939226%;*width:74.25620077063829%}.row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%}.row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%}.row-fluid .span6{width:48.618784527%;*width:48.5655930376383%}.row-fluid .span5{width:40.055248616%;*width:40.0020571266383%}.row-fluid .span4{width:31.491712705%;*width:31.4385212156383%}.row-fluid .span3{width:22.928176794%;*width:22.874985304638297%}.row-fluid .span2{width:14.364640883%;*width:14.311449393638298%}.row-fluid .span1{width:5.801104972%;*width:5.747913482638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:714px}input.span11,textarea.span11,.uneditable-input.span11{width:652px}input.span10,textarea.span10,.uneditable-input.span10{width:590px}input.span9,textarea.span9,.uneditable-input.span9{width:528px}input.span8,textarea.span8,.uneditable-input.span8{width:466px}input.span7,textarea.span7,.uneditable-input.span7{width:404px}input.span6,textarea.span6,.uneditable-input.span6{width:342px}input.span5,textarea.span5,.uneditable-input.span5{width:280px}input.span4,textarea.span4,.uneditable-input.span4{width:218px}input.span3,textarea.span3,.uneditable-input.span3{width:156px}input.span2,textarea.span2,.uneditable-input.span2{width:94px}input.span1,textarea.span1,.uneditable-input.span1{width:32px}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:30px}.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:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.564102564%;*margin-left:2.510911074638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%}.row-fluid .span10{width:82.905982906%;*width:82.8527914166383%}.row-fluid .span9{width:74.358974359%;*width:74.30578286963829%}.row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%}.row-fluid .span7{width:57.264957265%;*width:57.2117657756383%}.row-fluid .span6{width:48.717948718%;*width:48.6647572286383%}.row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%}.row-fluid .span4{width:31.623931624%;*width:31.5707401346383%}.row-fluid .span3{width:23.076923077%;*width:23.0237315876383%}.row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%}.row-fluid .span1{width:5.982905983%;*width:5.929714493638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:1160px}input.span11,textarea.span11,.uneditable-input.span11{width:1060px}input.span10,textarea.span10,.uneditable-input.span10{width:960px}input.span9,textarea.span9,.uneditable-input.span9{width:860px}input.span8,textarea.span8,.uneditable-input.span8{width:760px}input.span7,textarea.span7,.uneditable-input.span7{width:660px}input.span6,textarea.span6,.uneditable-input.span6{width:560px}input.span5,textarea.span5,.uneditable-input.span5{width:460px}input.span4,textarea.span4,.uneditable-input.span4{width:360px}input.span3,textarea.span3,.uneditable-input.span3{width:260px}input.span2,textarea.span2,.uneditable-input.span2{width:160px}input.span1,textarea.span1,.uneditable-input.span1{width:60px}.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:18px}.navbar-fixed-bottom{margin-top:18px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 9px}.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:#999;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999;-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:#222}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222;border-bottom:1px solid #222;-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 .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/pkg/inst/web/css/bootstrap.css b/pkg/inst/web/css/bootstrap.css new file mode 100644 index 0000000..bb40c85 --- /dev/null +++ b/pkg/inst/web/css/bootstrap.css @@ -0,0 +1,4983 @@ +/*! + * Bootstrap v2.0.4 + * + * 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. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + max-width: 100%; + 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; +} + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover { + color: #005580; + text-decoration: underline; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + margin-left: 20px; +} + +.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: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.127659574%; + *margin-left: 2.0744680846382977%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .span12 { + width: 99.99999998999999%; + *width: 99.94680850063828%; +} + +.row-fluid .span11 { + width: 91.489361693%; + *width: 91.4361702036383%; +} + +.row-fluid .span10 { + width: 82.97872339599999%; + *width: 82.92553190663828%; +} + +.row-fluid .span9 { + width: 74.468085099%; + *width: 74.4148936096383%; +} + +.row-fluid .span8 { + width: 65.95744680199999%; + *width: 65.90425531263828%; +} + +.row-fluid .span7 { + width: 57.446808505%; + *width: 57.3936170156383%; +} + +.row-fluid .span6 { + width: 48.93617020799999%; + *width: 48.88297871863829%; +} + +.row-fluid .span5 { + width: 40.425531911%; + *width: 40.3723404216383%; +} + +.row-fluid .span4 { + width: 31.914893614%; + *width: 31.8617021246383%; +} + +.row-fluid .span3 { + width: 23.404255317%; + *width: 23.3510638276383%; +} + +.row-fluid .span2 { + width: 14.89361702%; + *width: 14.8404255306383%; +} + +.row-fluid .span1 { + width: 6.382978723%; + *width: 6.329787233638298%; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 9px; +} + +p small { + font-size: 11px; + color: #999999; +} + +.lead { + margin-bottom: 18px; + font-size: 20px; + font-weight: 200; + line-height: 27px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-family: inherit; + font-weight: bold; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + color: #999999; +} + +h1 { + font-size: 30px; + line-height: 36px; +} + +h1 small { + font-size: 18px; +} + +h2 { + font-size: 24px; + line-height: 36px; +} + +h2 small { + font-size: 18px; +} + +h3 { + font-size: 18px; + line-height: 27px; +} + +h3 small { + font-size: 14px; +} + +h4, +h5, +h6 { + line-height: 18px; +} + +h4 { + font-size: 14px; +} + +h4 small { + font-size: 12px; +} + +h5 { + font-size: 12px; +} + +h6 { + font-size: 11px; + color: #999999; + text-transform: uppercase; +} + +.page-header { + padding-bottom: 17px; + margin: 18px 0; + border-bottom: 1px solid #eeeeee; +} + +.page-header h1 { + line-height: 1; +} + +ul, +ol { + padding: 0; + margin: 0 0 9px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +ul { + list-style: disc; +} + +ol { + list-style: decimal; +} + +li { + line-height: 18px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +dl { + margin-bottom: 18px; +} + +dt, +dd { + line-height: 18px; +} + +dt { + font-weight: bold; + line-height: 17px; +} + +dd { + margin-left: 9px; +} + +.dl-horizontal dt { + float: left; + width: 120px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 130px; +} + +hr { + margin: 18px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +.muted { + color: #999999; +} + +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 18px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 22.5px; +} + +blockquote small { + display: block; + line-height: 18px; + 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; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 18px; + font-style: normal; + line-height: 18px; +} + +small { + font-size: 100%; +} + +cite { + font-style: normal; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12.025px; + line-height: 18px; + 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: 18px; +} + +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 18px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 27px; + font-size: 19.5px; + line-height: 36px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 13.5px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 13px; + font-weight: normal; + line-height: 18px; +} + +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: 18px; + padding: 4px; + margin-bottom: 9px; + font-size: 13px; + line-height: 18px; + color: #555555; +} + +input, +textarea { + width: 210px; +} + +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-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 3px 0; + *margin-top: 0; + /* IE7 */ + + line-height: normal; + cursor: pointer; +} + +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +select, +input[type="file"] { + height: 28px; + /* 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: 28px; +} + +select { + width: 220px; + border: 1px solid #bbb; +} + +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; +} + +.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-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 930px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 850px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 770px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 690px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 610px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 530px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 450px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 370px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 290px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 210px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 130px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 50px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; + border-color: #ddd; +} + +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; + border-color: #c09853; +} + +.control-group.warning .checkbox:focus, +.control-group.warning .radio:focus, +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + box-shadow: 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; + border-color: #b94a48; +} + +.control-group.error .checkbox:focus, +.control-group.error .radio:focus, +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + box-shadow: 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; + border-color: #468847; +} + +.control-group.success .checkbox:focus, +.control-group.success .radio:focus, +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + box-shadow: 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; +} + +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: 17px 20px 18px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; + cursor: not-allowed; + background-color: #ffffff; + border-color: #eee; + -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); +} + +:-moz-placeholder { + color: #999999; +} + +:-ms-input-placeholder { + color: #999999; +} + +::-webkit-input-placeholder { + color: #999999; +} + +.help-block, +.help-inline { + color: #555555; +} + +.help-block { + display: block; + margin-bottom: 9px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-prepend, +.input-append { + margin-bottom: 5px; +} + +.input-prepend input, +.input-append input, +.input-prepend select, +.input-append select, +.input-prepend .uneditable-input, +.input-append .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: middle; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-prepend input:focus, +.input-append input:focus, +.input-prepend select:focus, +.input-append select:focus, +.input-prepend .uneditable-input:focus, +.input-append .uneditable-input:focus { + z-index: 2; +} + +.input-prepend .uneditable-input, +.input-append .uneditable-input { + border-left-color: #ccc; +} + +.input-prepend .add-on, +.input-append .add-on { + display: inline-block; + width: auto; + height: 18px; + min-width: 16px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + vertical-align: middle; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-prepend .add-on, +.input-append .add-on, +.input-prepend .btn, +.input-append .btn { + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend .active, +.input-append .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 .uneditable-input { + border-right-color: #ccc; + border-left-color: #eee; +} + +.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; +} + +.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: 14px; + -moz-border-radius: 14px; + border-radius: 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label { + 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: 9px; +} + +legend + .control-group { + margin-top: 18px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 18px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 140px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 160px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 160px; +} + +.form-horizontal .help-block { + margin-top: 9px; + margin-bottom: 0; +} + +.form-horizontal .form-actions { + padding-left: 160px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 18px; +} + +.table th, +.table td { + padding: 8px; + line-height: 18px; + 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: collapsed; + 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 { + -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 { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-striped tbody tr:nth-child(odd) td, +.table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} + +.table tbody tr:hover td, +.table tbody tr:hover th { + background-color: #f5f5f5; +} + +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; +} + +[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; +} + +[class^="icon-"]:last-child, +[class*=" icon-"]:last-child { + *margin-left: 0; +} + +.icon-white { + 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; +} + +.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; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; + opacity: 0.3; + filter: alpha(opacity=30); +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown:hover .caret, +.open .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 4px 0; + margin: 1px 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: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -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: 8px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu a { + display: block; + padding: 3px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu li > a:hover, +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; +} + +.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: "\2191"; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-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; + -ms-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + 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; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 10px 4px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 13px; + line-height: 18px; + *line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -ms-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(top, #ffffff, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + 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; + -ms-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: 15px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.btn-large [class^="icon-"] { + margin-top: 1px; +} + +.btn-small { + padding: 5px 9px; + font-size: 11px; + line-height: 16px; +} + +.btn-small [class^="icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 2px 6px; + font-size: 11px; + line-height: 14px; +} + +.btn-primary, +.btn-primary:hover, +.btn-warning, +.btn-warning:hover, +.btn-danger, +.btn-danger:hover, +.btn-success, +.btn-success:hover, +.btn-info, +.btn-info:hover, +.btn-inverse, +.btn-inverse:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.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: #ccc; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} + +.btn-primary { + background-color: #0074cc; + *background-color: #0055cc; + background-image: -ms-linear-gradient(top, #0088cc, #0055cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0055cc); + background-image: -o-linear-gradient(top, #0088cc, #0055cc); + background-image: -moz-linear-gradient(top, #0088cc, #0055cc); + background-image: linear-gradient(top, #0088cc, #0055cc); + background-repeat: repeat-x; + border-color: #0055cc #0055cc #003580; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + background-color: #0055cc; + *background-color: #004ab3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #004099 \9; +} + +.btn-warning { + background-color: #faa732; + *background-color: #f89406; + background-image: -ms-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: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + background-color: #da4f49; + *background-color: #bd362f; + background-image: -ms-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: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + background-color: #5bb75b; + *background-color: #51a351; + background-image: -ms-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: -moz-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -ms-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: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + background-color: #414141; + *background-color: #222222; + background-image: -ms-linear-gradient(top, #555555, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222)); + background-image: -webkit-linear-gradient(top, #555555, #222222); + background-image: -o-linear-gradient(top, #555555, #222222); + background-image: -moz-linear-gradient(top, #555555, #222222); + background-image: linear-gradient(top, #555555, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 2px; + *padding-bottom: 2px; +} + +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-group { + position: relative; + *margin-left: .3em; + *zoom: 1; +} + +.btn-group:before, +.btn-group:after { + display: table; + content: ""; +} + +.btn-group:after { + clear: both; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 9px; + margin-bottom: 9px; +} + +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group > .btn { + position: relative; + float: left; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .dropdown-toggle { + *padding-top: 4px; + padding-right: 8px; + *padding-bottom: 4px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini.dropdown-toggle { + padding-right: 5px; + padding-left: 5px; +} + +.btn-group > .btn-small.dropdown-toggle { + *padding-top: 4px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large.dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0055cc; +} + +.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: 7px; + margin-left: 0; +} + +.btn:hover .caret, +.open.btn-group .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.btn-mini .caret { + margin-top: 5px; +} + +.btn-small .caret { + margin-top: 6px; +} + +.btn-large .caret { + margin-top: 6px; + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.dropup .btn-large .caret { + border-top: 0; + border-bottom: 5px solid #000000; +} + +.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; + opacity: 0.75; + filter: alpha(opacity=75); +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 18px; + color: #c09853; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert-heading { + color: inherit; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 18px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 18px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > .pull-right { + float: right; +} + +.nav .nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover { + 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: 8px 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: ""; +} + +.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: 18px; + 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; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + 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-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.nav-tabs.nav-stacked > li > a:hover { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.nav-tabs .dropdown-toggle .caret, +.nav-pills .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav-tabs .dropdown-toggle:hover .caret, +.nav-pills .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +.nav-tabs .active .dropdown-toggle .caret, +.nav-pills .active .dropdown-toggle .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.nav > .dropdown.active > a:hover { + color: #000000; + 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: ""; +} + +.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-top-color: #ddd; + border-bottom-color: transparent; +} + +.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; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 18px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; +} + +.navbar { + color: #999999; +} + +.navbar .brand:hover { + text-decoration: none; +} + +.navbar .brand { + display: block; + float: left; + padding: 8px 20px 12px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + line-height: 1; + color: #999999; +} + +.navbar .navbar-text { + margin-bottom: 0; + line-height: 40px; +} + +.navbar .navbar-link { + color: #999999; +} + +.navbar .navbar-link:hover { + color: #ffffff; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn { + margin: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select { + 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: 6px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + background-color: #626262; + border: 1px solid #151515; + -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; + -ms-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-search .search-query:focus, +.navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; +} + +.navbar .nav > li { + display: block; + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 9px 10px 11px; + line-height: 19px; + color: #999999; + text-decoration: none; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar .btn { + display: inline-block; + padding: 4px 10px 4px; + margin: 5px 5px 6px; + line-height: 18px; +} + +.navbar .btn-group { + padding: 5px 5px 6px; + margin: 0; +} + +.navbar .nav > li > a:hover { + color: #ffffff; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav .active > a, +.navbar .nav .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #222222; +} + +.navbar .divider-vertical { + width: 1px; + height: 40px; + margin: 0 9px; + overflow: hidden; + background-color: #222222; + border-right: 1px solid #333333; +} + +.navbar .nav.pull-right { + margin-right: 0; + margin-left: 10px; +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + background-color: #2c2c2c; + *background-color: #222222; + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-image: -moz-linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + background-color: #222222; + *background-color: #151515; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #080808 \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 .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown .dropdown-toggle .caret, +.navbar .nav li.dropdown.open .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .nav li.dropdown.active .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: transparent; +} + +.navbar .nav li.dropdown.active > .dropdown-toggle:hover { + color: #ffffff; +} + +.navbar .pull-right .dropdown-menu, +.navbar .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right .dropdown-menu:before, +.navbar .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right .dropdown-menu:after, +.navbar .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + list-style: none; + background-color: #fbfbfb; + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + background-repeat: repeat-x; + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.breadcrumb li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb .divider { + padding: 0 5px; + color: #999999; +} + +.breadcrumb .active a { + color: #333333; +} + +.pagination { + height: 36px; + margin: 18px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination li { + display: inline; +} + +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + text-decoration: none; + border: 1px solid #ddd; + border-left-width: 0; +} + +.pagination a:hover, +.pagination .active a { + background-color: #f5f5f5; +} + +.pagination .active a { + color: #999999; + cursor: default; +} + +.pagination .disabled span, +.pagination .disabled a, +.pagination .disabled a:hover { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination li:first-child a { + 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 li:last-child a { + -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-bottom: 18px; + margin-left: 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager a { + 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 { + float: right; +} + +.pager .previous a { + float: left; +} + +.pager .disabled a, +.pager .disabled a:hover { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-open .dropdown-menu { + z-index: 2050; +} + +.modal-open .dropdown.open { + *z-index: 2050; +} + +.modal-open .popover { + z-index: 2060; +} + +.modal-open .tooltip { + z-index: 2070; +} + +.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; + width: 560px; + margin: -250px 0 0 -280px; + overflow: auto; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -ms-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 50%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-body { + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.tooltip { + position: absolute; + z-index: 1020; + display: block; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + margin-top: -2px; +} + +.tooltip.right { + margin-left: 2px; +} + +.tooltip.bottom { + margin-top: 2px; +} + +.tooltip.left { + margin-left: -2px; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top: 5px solid #000000; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; + border-left: 5px solid transparent; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-right: 5px solid #000000; + border-bottom: 5px solid transparent; +} + +.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; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + padding: 5px; +} + +.popover.top { + margin-top: -5px; +} + +.popover.right { + margin-left: 5px; +} + +.popover.bottom { + margin-top: 5px; +} + +.popover.left { + margin-left: -5px; +} + +.popover.top .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top: 5px solid #000000; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-right: 5px solid #000000; + border-bottom: 5px solid transparent; +} + +.popover.bottom .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; + border-left: 5px solid transparent; +} + +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} + +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} + +.popover-inner { + width: 280px; + padding: 3px; + overflow: hidden; + background: #000000; + background: rgba(0, 0, 0, 0.8); + -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); +} + +.popover-title { + padding: 9px 15px; + line-height: 1; + background-color: #f5f5f5; + border-bottom: 1px solid #eee; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} + +.popover-content { + padding: 14px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.popover-content p, +.popover-content ul, +.popover-content ol { + margin-bottom: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 18px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 1; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} + +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-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; +} + +.label, +.badge { + font-size: 10.998px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + 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; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 18px; + margin-bottom: 18px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -ms-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(top, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + width: 0; + height: 18px; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(top, #149bdf, #0480be); + background-image: -ms-linear-gradient(top, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', 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; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -ms-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .bar { + background-color: #149bdf; + 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: -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: -ms-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: -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: 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 { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-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(top, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar { + 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: -ms-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 { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-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(top, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); +} + +.progress-success.progress-striped .bar { + 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: -ms-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 { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-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(top, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar { + 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: -ms-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 { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-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(top, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); +} + +.progress-warning.progress-striped .bar { + 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: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 18px; +} + +.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: 18px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -ms-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 { + right: 15px; + left: auto; +} + +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 10px 15px 5px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + color: #ffffff; +} + +.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; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; + color: inherit; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} diff --git a/pkg/inst/web/css/bootstrap.min.css b/pkg/inst/web/css/bootstrap.min.css new file mode 100644 index 0000000..b74b454 --- /dev/null +++ b/pkg/inst/web/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.0.4 + * + * 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. + */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;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}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.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:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.127659574%;*margin-left:2.0744680846382977%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.99999998999999%;*width:99.94680850063828%}.row-fluid .span11{width:91.489361693%;*width:91.4361702036383%}.row-fluid .span10{width:82.97872339599999%;*width:82.92553190663828%}.row-fluid .span9{width:74.468085099%;*width:74.4148936096383%}.row-fluid .span8{width:65.95744680199999%;*width:65.90425531263828%}.row-fluid .span7{width:57.446808505%;*width:57.3936170156383%}.row-fluid .span6{width:48.93617020799999%;*width:48.88297871863829%}.row-fluid .span5{width:40.425531911%;*width:40.3723404216383%}.row-fluid .span4{width:31.914893614%;*width:31.8617021246383%}.row-fluid .span3{width:23.404255317%;*width:23.3510638276383%}.row-fluid .span2{width:14.89361702%;*width:14.8404255306383%}.row-fluid .span1{width:6.382978723%;*width:6.329787233638298%}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:""}.container-fluid:after{clear:both}p{margin:0 0 9px}p small{font-size:11px;color:#999}.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px}h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:18px}h3{font-size:18px;line-height:27px}h3 small{font-size:14px}h4,h5,h6{line-height:18px}h4{font-size:14px}h4 small{font-size:12px}h5{font-size:12px}h6{font-size:11px;color:#999;text-transform:uppercase}.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eee}.page-header h1{line-height:1}ul,ol{padding:0;margin:0 0 9px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}ul{list-style:disc}ol{list-style:decimal}li{line-height:18px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:18px}dt,dd{line-height:18px}dt{font-weight:bold;line-height:17px}dd{margin-left:9px}.dl-horizontal dt{float:left;width:120px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:130px}hr{margin:18px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}strong{font-weight:bold}em{font-style:italic}.muted{color:#999}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px}blockquote small{display:block;line-height:18px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:18px;font-style:normal;line-height:18px}small{font-size:100%}cite{font-style:normal}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;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:18px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 18px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:13.5px;color:#999}label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px}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:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555}input,textarea{width:210px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-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;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer}input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}.uneditable-textarea{width:auto;height:auto}select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px}select{width:220px;border:1px solid #bbb}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}.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-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:930px}input.span11,textarea.span11,.uneditable-input.span11{width:850px}input.span10,textarea.span10,.uneditable-input.span10{width:770px}input.span9,textarea.span9,.uneditable-input.span9{width:690px}input.span8,textarea.span8,.uneditable-input.span8{width:610px}input.span7,textarea.span7,.uneditable-input.span7{width:530px}input.span6,textarea.span6,.uneditable-input.span6{width:450px}input.span5,textarea.span5,.uneditable-input.span5{width:370px}input.span4,textarea.span4,.uneditable-input.span4{width:290px}input.span3,textarea.span3,.uneditable-input.span3{width:210px}input.span2,textarea.span2,.uneditable-input.span2{width:130px}input.span1,textarea.span1,.uneditable-input.span1{width:50px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee;border-color:#ddd}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;border-color:#c09853}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow: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;border-color:#b94a48}.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow: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;border-color:#468847}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow: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}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:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:""}.form-actions:after{clear:both}.uneditable-input{overflow:hidden;white-space:nowrap;cursor:not-allowed;background-color:#fff;border-color:#eee;-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)}:-moz-placeholder{color:#999}:-ms-input-placeholder{color:#999}::-webkit-input-placeholder{color:#999}.help-block,.help-inline{color:#555}.help-block{display:block;margin-bottom:9px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-prepend,.input-append{margin-bottom:5px}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:middle;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{z-index:2}.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc}.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;height:18px;min-width:16px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc}.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend .active,.input-append .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 .uneditable-input{border-right-color:#ccc;border-left-color:#eee}.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}.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label{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:9px}legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:18px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:160px}.form-horizontal .help-block{margin-top:9px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:18px}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-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{-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{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5}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}[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}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0}.icon-white{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}.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}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:.3;filter:alpha(opacity=30)}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:4px 0;margin:1px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-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:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0,0,0,0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-ms-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-ms-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 10px 4px;margin-bottom:0;*margin-left:.3em;font-size:13px;line-height:18px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-ms-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-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:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:1px}.btn-small{padding:5px 9px;font-size:11px;line-height:16px}.btn-small [class^="icon-"]{margin-top:-1px}.btn-mini{padding:2px 6px;font-size:11px;line-height:14px}.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.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:#ccc;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn-primary{background-color:#0074cc;*background-color:#05c;background-image:-ms-linear-gradient(top,#08c,#05c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#05c));background-image:-webkit-linear-gradient(top,#08c,#05c);background-image:-o-linear-gradient(top,#08c,#05c);background-image:-moz-linear-gradient(top,#08c,#05c);background-image:linear-gradient(top,#08c,#05c);background-repeat:repeat-x;border-color:#05c #05c #003580;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc',endColorstr='#0055cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#05c;*background-color:#004ab3}.btn-primary:active,.btn-primary.active{background-color:#004099 \9}.btn-warning{background-color:#faa732;*background-color:#f89406;background-image:-ms-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:-moz-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{background-color:#da4f49;*background-color:#bd362f;background-image:-ms-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:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#bd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{background-color:#5bb75b;*background-color:#51a351;background-image:-ms-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:-moz-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{background-color:#49afcd;*background-color:#2f96b4;background-image:-ms-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:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{background-color:#414141;*background-color:#222;background-image:-ms-linear-gradient(top,#555,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#555),to(#222));background-image:-webkit-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#555555',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px}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-group{position:relative;*margin-left:.3em;*zoom:1}.btn-group:before,.btn-group:after{display:table;content:""}.btn-group:after{clear:both}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:9px;margin-bottom:9px}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-group>.btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.dropdown-toggle{*padding-top:4px;padding-right:8px;*padding-bottom:4px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini.dropdown-toggle{padding-right:5px;padding-left:5px}.btn-group>.btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px}.btn-group>.btn-large.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#05c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:7px;margin-left:0}.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100)}.btn-mini .caret{margin-top:5px}.btn-small .caret{margin-top:6px}.btn-large .caret{margin-top:6px;border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:.75;filter:alpha(opacity=75)}.alert{padding:8px 35px 8px 14px;margin-bottom:18px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert-heading{color:inherit}.alert .close{position:relative;top:-2px;right:-21px;line-height:18px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:18px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:""}.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:18px;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:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333;border-bottom-color:#333}.nav>.dropdown.active>a:hover{color:#000;cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.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:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.navbar{*position:relative;*z-index:2;margin-bottom:18px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top,#333,#222);background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1)}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar{color:#999}.navbar .brand:hover{text-decoration:none}.navbar .brand{display:block;float:left;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999}.navbar .navbar-text{margin-bottom:0;line-height:40px}.navbar .navbar-link{color:#999}.navbar .navbar-link:hover{color:#fff}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn{margin:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select{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:6px;margin-bottom:0}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#fff;background-color:#626262;border:1px solid #151515;-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;-ms-transition:none;-o-transition:none;transition:none}.navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right}.navbar .nav>li{display:block;float:left}.navbar .nav>li>a{float:none;padding:9px 10px 11px;line-height:19px;color:#999;text-decoration:none;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar .btn{display:inline-block;padding:4px 10px 4px;margin:5px 5px 6px;line-height:18px}.navbar .btn-group{padding:5px 5px 6px;margin:0}.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:transparent}.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#fff;text-decoration:none;background-color:#222}.navbar .divider-vertical{width:1px;height:40px;margin:0 9px;overflow:hidden;background-color:#222;border-right:1px solid #333}.navbar .nav.pull-right{margin-right:0;margin-left:10px}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;background-color:#2c2c2c;*background-color:#222;background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-image:-moz-linear-gradient(top,#333,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#222;*background-color:#151515}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#080808 \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 .dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown .dropdown-toggle .caret,.navbar .nav li.dropdown.open .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.active .caret{opacity:1;filter:alpha(opacity=100)}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:transparent}.navbar .nav li.dropdown.active>.dropdown-toggle:hover{color:#fff}.navbar .pull-right .dropdown-menu,.navbar .dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right .dropdown-menu:before,.navbar .dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right .dropdown-menu:after,.navbar .dropdown-menu.pull-right:after{right:13px;left:auto}.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top,#fff,#f5f5f5);background-image:-ms-linear-gradient(top,#fff,#f5f5f5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#fff,#f5f5f5);background-image:-o-linear-gradient(top,#fff,#f5f5f5);background-image:linear-gradient(top,#fff,#f5f5f5);background-repeat:repeat-x;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#999}.breadcrumb .active a{color:#333}.pagination{height:36px;margin:18px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination li{display:inline}.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0}.pagination a:hover,.pagination .active a{background-color:#f5f5f5}.pagination .active a{color:#999;cursor:default}.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999;cursor:default;background-color:transparent}.pagination li:first-child a{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 li:last-child a{-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-bottom:18px;margin-left:0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a{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{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover{color:#999;cursor:default;background-color:#fff}.modal-open .dropdown-menu{z-index:2050}.modal-open .dropdown.open{*z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2070}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1020;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-2px}.tooltip.right{margin-left:2px}.tooltip.bottom{margin-top:2px}.tooltip.left{margin-left:-2px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px}.popover.top{margin-top:-5px}.popover.right{margin-left:5px}.popover.bottom{margin-top:5px}.popover.left{margin-left:-5px}.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.popover .arrow{position:absolute;width:0;height:0}.popover-inner{width:280px;padding:3px;overflow:hidden;background:#000;background:rgba(0,0,0,0.8);-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)}.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.popover-content{padding:14px;background-color:#fff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:18px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px}.label,.badge{font-size:10.998px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{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:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:18px;margin-bottom:18px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-ms-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(top,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{width:0;height:18px;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(top,#149bdf,#0480be);background-image:-ms-linear-gradient(top,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf',endColorstr='#0480be',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;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-ms-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .bar{background-color:#149bdf;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:-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:-ms-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:-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: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{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-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(top,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0)}.progress-danger.progress-striped .bar{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:-ms-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{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-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(top,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0)}.progress-success.progress-striped .bar{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:-ms-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{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-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(top,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0)}.progress-info.progress-striped .bar{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:-ms-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{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-ms-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(top,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0)}.progress-warning.progress-striped .bar{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:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:18px}.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:18px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-ms-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.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:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:10px 15px 5px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{color:#fff}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden} diff --git a/pkg/inst/web/css/highlight.css b/pkg/inst/web/css/highlight.css new file mode 100644 index 0000000..4b85237 --- /dev/null +++ b/pkg/inst/web/css/highlight.css @@ -0,0 +1,28 @@ +/* Syntax highlighting ---------------------------------------------------- */ + +pre .input { + border-left: 3px solid #ccc; + padding-left: 0.5em; +} +pre .output { + background-color: #eee; +} + +.number {color:rgb(21,20,181);} +.functioncall {color:#264D66 ;} +.string {color:#375D81 ;} +.keyword {font-weight:bolder ;color:black;} +.argument {color:#264D66 ;} +.comment {color: #333;} +.formalargs {color: #264D66;} +.eqformalargs {color:#264D66;} +.slot {font-style:italic;} +.symbol {color:black ;} +.prompt {color:black ;} + +pre img { + background-color: #fff; + border: 1px solid #ccc; + display: block; + margin: 0.5em auto 0.5em auto; +} diff --git a/pkg/inst/web/css/staticdocs.css b/pkg/inst/web/css/staticdocs.css new file mode 100644 index 0000000..9fee28b --- /dev/null +++ b/pkg/inst/web/css/staticdocs.css @@ -0,0 +1,18 @@ +h2 {padding-top: 20px} + +.icon img { + float: right; + border: 1px solid #ccc; +} +.index .internal {display: none;} +ul.index li {margin-bottom: 0.5em; clear: both;} + +footer { + margin-top: 45px; + padding: 35px 0 36px; + border-top: 1px solid #e5e5e5; +} +footer p { + margin-bottom: 0; + color: #555; +} diff --git a/pkg/inst/web/drift_data_JKI.html b/pkg/inst/web/drift_data_JKI.html new file mode 100644 index 0000000..865e7fa --- /dev/null +++ b/pkg/inst/web/drift_data_JKI.html @@ -0,0 +1,239 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>drift_data_JKI. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Deposition from spray drift expressed as percent of the applied dose as +published by the JKI</h1> + +<div class="row"> + <div class="span8"> + + <div class="Format"> + <h2>Format</h2> + + <p>A list currently containing matrices with spray drift percentage +data for field crops (Ackerbau), and Pome/stone fruit, early and late +(Obstbau frueh, spaet).</p> + + </div> + + <div class="Source"> + <h2>Source</h2> + + <p>JKI (2010) Spreadsheet 'Tabelle der Abdrifteckwerte.xls', retrieved +from +http://www.jki.bund.de/no_cache/de/startseite/institute/anwendungstechnik/abdrift-eckwerte.html +on 2015-06-11</p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>Deposition from spray drift expressed as percent of the applied dose as +published by the German Julius-Kühn Institute (JKI).</p> + + </div> + + <div class="Details"> + <h2>Details</h2> + + <p>The data were extracted from the spreadsheet cited below using the R code +given in the example section. The spreadsheet is not included in the package +as its licence is not clear.</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'> +## Not run: +# # This is the code that was used to extract the data +# library(readxl) +# abdrift_path <- "inst/extdata/Tabelle der Abdrifteckwerte.xls" +# JKI_crops <- c("Ackerbau", "Obstbau frueh", "Obstbau spaet") +# names(JKI_crops) <- c("Field crops", "Pome/stone fruit, early", "Pome/stone fruit, late") +# drift_data_JKI <- list() +# +# for (n in 1:8) { +# drift_data_raw <- read_excel(abdrift_path, sheet = n + 1, skip = 2) +# drift_data <- as.matrix(drift_data_raw[1:9, 2:4]) +# dimnames(drift_data) <- list(distance = as.integer(drift_data_raw[1:9, 1]), +# crop = JKI_crops) +# drift_data_JKI[[n]] <- drift_data +# } +# save(drift_data_JKI, file = "data/drift_data_JKI.RData") +# ## End(Not run) + +# And this is the resulting data +drift_data_JKI +</div> +<div class='output'>[[1]] + crop +distance Ackerbau Obstbau frueh Obstbau spaet + 1 2.77 NA NA + 3 NA 29.20 15.73 + 5 0.57 19.89 8.41 + 10 0.29 11.81 3.60 + 15 0.20 5.55 1.81 + 20 0.15 2.77 1.09 + 30 0.10 1.04 0.54 + 40 0.07 0.52 0.32 + 50 0.06 0.30 0.22 + +[[2]] + crop +distance Ackerbau Obstbau frueh Obstbau spaet + 1 2.38 NA NA + 3 NA 25.53 12.13 + 5 0.47 16.87 6.81 + 10 0.24 9.61 3.11 + 15 0.16 5.61 1.58 + 20 0.12 2.59 0.90 + 30 0.08 0.87 0.40 + 40 0.06 0.40 0.23 + 50 0.05 0.22 0.15 + +[[3]] + crop +distance Ackerbau Obstbau frueh Obstbau spaet + 1 2.01 NA NA + 3 NA 23.96 11.01 + 5 0.41 15.79 6.04 + 10 0.20 8.96 2.67 + 15 0.14 4.24 1.39 + 20 0.10 2.01 0.80 + 30 0.07 0.70 0.36 + 40 0.05 0.33 0.21 + 50 0.04 0.19 0.13 + +[[4]] + crop +distance Ackerbau Obstbau frueh Obstbau spaet + 1 1.85 NA NA + 3 NA 23.61 10.12 + 5 0.38 15.42 5.60 + 10 0.19 8.66 2.50 + 15 0.13 4.01 1.28 + 20 0.10 1.89 0.75 + 30 0.06 0.66 0.35 + 40 0.05 0.31 0.20 + 50 0.04 0.17 0.13 + +[[5]] + crop +distance Ackerbau Obstbau frueh Obstbau spaet + 1 1.75 NA NA + 3 NA 23.12 9.74 + 5 0.36 15.06 5.41 + 10 0.18 8.42 2.43 + 15 0.12 3.83 1.24 + 20 0.09 1.81 0.72 + 30 0.06 0.63 0.34 + 40 0.05 0.30 0.20 + 50 0.04 0.17 0.13 + +[[6]] + crop +distance Ackerbau Obstbau frueh Obstbau spaet + 1 1.64 NA NA + 3 NA 22.76 9.21 + 5 0.34 14.64 5.18 + 10 0.17 8.04 2.38 + 15 0.11 3.71 1.20 + 20 0.09 1.75 0.68 + 30 0.06 0.61 0.31 + 40 0.04 0.29 0.17 + 50 0.03 0.16 0.11 + +[[7]] + crop +distance Ackerbau Obstbau frueh Obstbau spaet + 1 1.61 NA NA + 3 NA 22.69 9.10 + 5 0.33 14.45 5.11 + 10 0.17 7.83 2.33 + 15 0.11 3.62 1.20 + 20 0.08 1.71 0.67 + 30 0.06 0.60 0.30 + 40 0.04 0.28 0.17 + 50 0.03 0.16 0.11 + +[[8]] + crop +distance Ackerbau Obstbau frueh Obstbau spaet + 1 1.52 NA NA + 3 NA 22.24 8.66 + 5 0.31 14.09 4.92 + 10 0.16 7.58 2.29 + 15 0.11 3.48 1.14 + 20 0.08 1.65 0.65 + 30 0.05 0.57 0.29 + 40 0.04 0.27 0.16 + 50 0.03 0.15 0.11 + +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>drift_data_JKI</li> + </ul> + <ul> + <li>datasets</li> + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/endpoint.html b/pkg/inst/web/endpoint.html new file mode 100644 index 0000000..0789d95 --- /dev/null +++ b/pkg/inst/web/endpoint.html @@ -0,0 +1,142 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>endpoint. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Retrieve endpoint information from the chyaml field of a chent object</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>endpoint(chent, medium = "soil", type = c("degradation", "sorption"), lab_field = c(NA, "laboratory", "field"), redox = c(NA, "aerobic", "anaerobic"), value = c("DT50ref", "Kfoc", "N"), aggregator = geomean, raw = FALSE, signif = 3)</div> +<div>soil_DT50(chent, aggregator = geomean, signif = 3, lab_field = "laboratory", value = "DT50ref", redox = "aerobic", raw = FALSE)</div> +<div>soil_Kfoc(chent, aggregator = geomean, signif = 3, value = "Kfoc", raw = FALSE)</div> +<div>soil_N(chent, aggregator = mean, signif = 3, raw = FALSE)</div> +<div>soil_sorption(chent, values = c("Kfoc", "N"), aggregators = c(Kfoc = geomean, Koc = geomean, N = mean), signif = rep(3, length(values)), raw = FALSE)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>chent</dt> + <dd>The <code><a href='http://www.inside-r.org/packages/cran/chents/docs/chent'>chent</a></code> object to get the information from</dd> + <dt>medium</dt> + <dd>The medium for which information is sought</dd> + <dt>type</dt> + <dd>The information type</dd> + <dt>lab_field</dt> + <dd>If not NA, do we want laboratory or field endpoints</dd> + <dt>redox</dt> + <dd>If not NA, are we looking for aerobic or anaerobic data</dd> + <dt>value</dt> + <dd>The name of the value we want. The list given in the +usage section is not exclusive</dd> + <dt>aggregator</dt> + <dd>The aggregator function. Can be mean, +<code><a href='geomean.html'>geomean</a></code>, or identity, for example.</dd> + <dt>raw</dt> + <dd>Should the number(s) be returned as stored in the chent +object (could be a character value) to retain original information +about precision?</dd> + <dt>signif</dt> + <dd>How many significant digits do we want</dd> + <dt>values</dt> + <dd>The values to be returned</dd> + <dt>aggregators</dt> + <dd>A named vector of aggregator functions to be used</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +The result from applying the aggregator function to + the values converted to a numeric vector, rounded to the + given number of significant digits, or, if raw = TRUE, + the values as a character value, retaining any implicit + information on precision that may be present. +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>R6 class objects of class <code><a href='http://www.inside-r.org/packages/cran/chents/docs/chent'>chent</a></code> represent chemical entities +and can hold a list of information loaded from a chemical yaml file in their +chyaml field. Such information is extracted and optionally aggregated by +this function.</p> + + </div> + + <div class="Details"> + <h2>Details</h2> + + <p>The functions <code>soil_*</code> are functions to extract soil specific endpoints. +For the Freundlich exponent, the capital letter <code>N</code> is used in order to +facilitate dealing with such data in R. In pesticide fate modelling, this +exponent is often called 1/n.</p> + + </div> + </div> + <div class="span4"> + <!-- <ul> + <li>endpoint</li><li>soil_DT50</li><li>soil_Kfoc</li><li>soil_N</li><li>soil_sorption</li> + </ul> + <ul> + + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/geomean.html b/pkg/inst/web/geomean.html new file mode 100644 index 0000000..fb859fa --- /dev/null +++ b/pkg/inst/web/geomean.html @@ -0,0 +1,121 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>geomean. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate the geometric mean</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>geomean(x, na.rm = TRUE)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>x</dt> + <dd>Vector of numbers</dd> + <dt>na.rm</dt> + <dd>Should NA values be omitted?</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +The geometric mean +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>Based on some posts in a thread on Stackoverflow +<a href = 'http://stackoverflow.com/questions/2602583/geometric-mean-is-there-a-built-in'>http://stackoverflow.com/questions/2602583/geometric-mean-is-there-a-built-in</a> +This function checks for negative values, removes NA values per default and +returns 0 if at least one element of the vector is 0.</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>geomean(c(1, 3, 9)) +</div> +<div class='output'>[1] 3 +</div> +<div class='input'>geomean(c(1, 3, NA, 9)) +</div> +<div class='output'>[1] 3 +</div> +<div class='input'>## Not run: geomean(c(1, -3, 9)) # returns an error +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>geomean</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/img/glyphicons-halflings-white.png b/pkg/inst/web/img/glyphicons-halflings-white.png Binary files differnew file mode 100644 index 0000000..3bf6484 --- /dev/null +++ b/pkg/inst/web/img/glyphicons-halflings-white.png diff --git a/pkg/inst/web/img/glyphicons-halflings.png b/pkg/inst/web/img/glyphicons-halflings.png Binary files differnew file mode 100644 index 0000000..79bc568 --- /dev/null +++ b/pkg/inst/web/img/glyphicons-halflings.png diff --git a/pkg/inst/web/index.html b/pkg/inst/web/index.html new file mode 100644 index 0000000..3eb1ad1 --- /dev/null +++ b/pkg/inst/web/index.html @@ -0,0 +1,182 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>Index. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <div class="row"> + <div class="span8"> + Utilities for simple calculations of predicted environmental +concentrations (PECs) and for dealing with data from some FOCUS pesticide +fate modelling software packages. + + <h2>Help topics</h2> + + <h3>Degradation</h3> + <p>Functions related to degradation</p> + + + <ul class="index"> + + <li> + <code><a href="pfm_degradation.html">pfm_degradation</a></code><br />Calculate a time course of relative concentrations based on an mkinmod model</li> + + <li> + <code><a href="SFO_actual_twa.html">SFO_actual_twa</a></code><br />Actual and maximum moving window time average concentrations for SFO kinetics</li> + + </ul> + <h3>Mobility</h3> + <p>Indicators related to mobility</p> + + + <ul class="index"> + + <li> + <code><a href="GUS.html">GUS</a></code>(GUS.chent, GUS.numeric, print.GUS_result)<br />Groundwater ubiquity score based on Gustafson (1989)</li> + + <li> + <code><a href="SSLRC_mobility_classification.html">SSLRC_mobility_classification</a></code><br />Determine the SSLRC mobility classification for a chemical substance from its Koc</li> + + </ul> + <h3>Soil</h3> + <p>Predicted environmental concentrations in soil</p> + + + <ul class="index"> + + <li> + <code><a href="PEC_soil.html">PEC_soil</a></code><br />Calculate predicted environmental concentrations in soil</li> + + <li> + <code><a href="soil_scenario_data_EFSA_2015.html">soil_scenario_data_EFSA_2015</a></code><br />Properties of the predefined scenarios from the EFSA guidance from 2015</li> + + </ul> + <h3>Surface water</h3> + <p>Predicted environmental concentrations in surface water</p> + + + <ul class="index"> + + <li> + <code><a href="PEC_sw_drift.html">PEC_sw_drift</a></code><br />Calculate predicted environmental concentrations in surface water due to drift</li> + + <li> + <code><a href="PEC_sw_sed.html">PEC_sw_sed</a></code><br />Calculate predicted environmental concentrations in sediment from surface +</li> + + <li> + <code><a href="drift_data_JKI.html">drift_data_JKI</a></code><br />Deposition from spray drift expressed as percent of the applied dose as +</li> + + <li> + <code><a href="PEC_sw_drainage_UK.html">PEC_sw_drainage_UK</a></code><br />Calculate initial predicted environmental concentrations in surface water due to drainage using the UK method</li> + + <li> + <code><a href="TOXSWA_cwa.html">TOXSWA_cwa</a></code><br />R6 class for holding TOXSWA cwa concentration data and associated statistics</li> + + <li> + <code><a href="read.TOXSWA_cwa.html">read.TOXSWA_cwa</a></code><br />Read TOXSWA surface water concentrations</li> + + <li> + <code><a href="plot.TOXSWA_cwa.html">plot.TOXSWA_cwa</a></code><br />Plot TOXSWA surface water concentrations</li> + + </ul> + <h3>Groundwater</h3> + <p>Predicted environmental concentrations in groundwater</p> + + + <ul class="index"> + + <li> + <code><a href="FOCUS_GW_scenarios_2012.html">FOCUS_GW_scenarios_2012</a></code><br />A very small subset of the FOCUS Groundwater scenario defitions</li> + + </ul> + <h3>Chemical entities</h3> + <p>Work with input stored in chemical entites as R objects using the chent package</p> + + + <ul class="index"> + + <li> + <code><a href="endpoint.html">endpoint</a></code>(soil_DT50, soil_Kfoc, soil_N, soil_sorption)<br />Retrieve endpoint information from the chyaml field of a chent object</li> + + </ul> + <h3>General</h3> + <p>Utilities that are generally useful</p> + + + <ul class="index"> + + <li> + <code><a href="geomean.html">geomean</a></code><br />Calculate the geometric mean</li> + + </ul> + </div> + + <div class="span3 offset1"> + + <h2>Dependencies</h2> + <ul> + <li><strong>Depends</strong>: R6, mkin</li> + <li><strong>Imports</strong>: graphics, chents</li> + <li><strong>Suggests</strong>: testthat</li> + + </ul> + <h2>Authors</h2> + <ul> + <li><a href="mailto:jranke@uni-bremen.de">Johannes Ranke</a> [aut, cre, cph]</li> + </ul> + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/js/bootstrap.js b/pkg/inst/web/js/bootstrap.js new file mode 100644 index 0000000..5d6e65b --- /dev/null +++ b/pkg/inst/web/js/bootstrap.js @@ -0,0 +1,1825 @@ +/* =================================================== + * bootstrap-transition.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + $(function () { + + "use strict"; // jshint ;_; + + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $.support.transition = (function () { + + var transitionEnd = (function () { + + var el = document.createElement('bootstrap') + , transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd' + , 'msTransition' : 'MSTransitionEnd' + , 'transition' : 'transitionend' + } + , name + + for (name in transEndEventNames){ + if (el.style[name] !== undefined) { + return transEndEventNames[name] + } + } + + }()) + + return transitionEnd && { + end: transitionEnd + } + + })() + + }) + +}(window.jQuery);/* ========================================================== + * bootstrap-alert.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.trigger(e = $.Event('close')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent + .trigger('closed') + .remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}(window.jQuery);/* ============================================================ + * bootstrap-button.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + Button.prototype.toggle = function () { + var $parent = this.$element.parent('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + }) + }) + +}(window.jQuery);/* ========================================================== + * bootstrap-carousel.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.options = options + this.options.slide && this.slide(this.options.slide) + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.prototype = { + + cycle: function (e) { + if (!e) this.paused = false + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + return this + } + + , to: function (pos) { + var $active = this.$element.find('.active') + , children = $active.parent().children() + , activePos = children.index($active) + , that = this + + if (pos > (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function (e) { + if (!e) this.paused = true + clearInterval(this.interval) + this.interval = null + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + , e = $.Event('slide') + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if ($next.hasClass('active')) return + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (typeof option == 'string' || (option = options.slide)) data[option]() + else if (options.interval) data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + , pause: 'hover' + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}(window.jQuery);/* ============================================================= + * bootstrap-collapse.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options.parent) { + this.$parent = $(this.options.parent) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension + , scroll + , actives + , hasData + + if (this.transitioning) return + + dimension = this.dimension() + scroll = $.camelCase(['scroll', dimension].join('-')) + actives = this.$parent && this.$parent.find('> .accordion-group > .in') + + if (actives && actives.length) { + hasData = actives.data('collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', $.Event('show'), 'shown') + this.$element[dimension](this.$element[0][scroll]) + } + + , hide: function () { + var dimension + if (this.transitioning) return + dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', $.Event('hide'), 'hidden') + this.$element[dimension](0) + } + + , reset: function (size) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') + + return this + } + + , transition: function (method, startEvent, completeEvent) { + var that = this + , complete = function () { + if (startEvent.type == 'show') that.reset() + that.transitioning = 0 + that.$element.trigger(completeEvent) + } + + this.$element.trigger(startEvent) + + if (startEvent.isDefaultPrevented()) return + + this.transitioning = 1 + + this.$element[method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $(target).collapse(option) + }) + }) + +}(window.jQuery);/* ============================================================ + * bootstrap-dropdown.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function (element) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function (e) { + var $this = $(this) + , $parent + , selector + , isActive + + if ($this.is('.disabled, :disabled')) return + + selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body') + .on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() }) + .on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}(window.jQuery);/* ========================================================= + * bootstrap-modal.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (content, options) { + this.options = options + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + , e = $.Event('show') + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + $('body').addClass('modal-open') + + this.isShown = true + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body) //don't move modals dom position + } + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function (e) { + e && e.preventDefault() + + var that = this + + e = $.Event('hide') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element.removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal(that) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop(callback) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') + .appendTo(document.body) + + if (this.options.backdrop != 'static') { + this.$backdrop.click($.proxy(this.hide, this)) + } + + if (doAnimate) this.$backdrop[0].offsetWidth // force reflow + + this.$backdrop.addClass('in') + + doAnimate ? + this.$backdrop.one($.support.transition.end, callback) : + callback() + + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass('in') + + $.support.transition && this.$element.hasClass('fade')? + this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) : + removeBackdrop.call(this) + + } else if (callback) { + callback() + } + } + + function removeBackdrop() { + this.$backdrop.remove() + this.$backdrop = null + } + + function escape() { + var that = this + if (this.isShown && this.options.keyboard) { + $(document).on('keyup.dismiss.modal', function ( e ) { + e.which == 27 && that.hide() + }) + } else if (!this.isShown) { + $(document).off('keyup.dismiss.modal') + } + } + + + /* MODAL PLUGIN DEFINITION + * ======================= */ + + $.fn.modal = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('modal') + , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option) + if (!data) $this.data('modal', (data = new Modal(this, options))) + if (typeof option == 'string') data[option]() + else if (options.show) data.show() + }) + } + + $.fn.modal.defaults = { + backdrop: true + , keyboard: true + , show: true + } + + $.fn.modal.Constructor = Modal + + + /* MODAL DATA-API + * ============== */ + + $(function () { + $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data()) + + e.preventDefault() + $target.modal(option) + }) + }) + +}(window.jQuery);/* =========================================================== + * bootstrap-tooltip.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#tooltips + * Inspired by the original jQuery.tipsy by Jason Frame + * =========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* TOOLTIP PUBLIC CLASS DEFINITION + * =============================== */ + + var Tooltip = function (element, options) { + this.init('tooltip', element, options) + } + + Tooltip.prototype = { + + constructor: Tooltip + + , init: function (type, element, options) { + var eventIn + , eventOut + + this.type = type + this.$element = $(element) + this.options = this.getOptions(options) + this.enabled = true + + if (this.options.trigger != 'manual') { + eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus' + eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur' + this.$element.on(eventIn, this.options.selector, $.proxy(this.enter, this)) + this.$element.on(eventOut, this.options.selector, $.proxy(this.leave, this)) + } + + this.options.selector ? + (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : + this.fixTitle() + } + + , getOptions: function (options) { + options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data()) + + if (options.delay && typeof options.delay == 'number') { + options.delay = { + show: options.delay + , hide: options.delay + } + } + + return options + } + + , enter: function (e) { + var self = $(e.currentTarget)[this.type](this._options).data(this.type) + + if (!self.options.delay || !self.options.delay.show) return self.show() + + clearTimeout(this.timeout) + self.hoverState = 'in' + this.timeout = setTimeout(function() { + if (self.hoverState == 'in') self.show() + }, self.options.delay.show) + } + + , leave: function (e) { + var self = $(e.currentTarget)[this.type](this._options).data(this.type) + + if (this.timeout) clearTimeout(this.timeout) + if (!self.options.delay || !self.options.delay.hide) return self.hide() + + self.hoverState = 'out' + this.timeout = setTimeout(function() { + if (self.hoverState == 'out') self.hide() + }, self.options.delay.hide) + } + + , show: function () { + var $tip + , inside + , pos + , actualWidth + , actualHeight + , placement + , tp + + if (this.hasContent() && this.enabled) { + $tip = this.tip() + this.setContent() + + if (this.options.animation) { + $tip.addClass('fade') + } + + placement = typeof this.options.placement == 'function' ? + this.options.placement.call(this, $tip[0], this.$element[0]) : + this.options.placement + + inside = /in/.test(placement) + + $tip + .remove() + .css({ top: 0, left: 0, display: 'block' }) + .appendTo(inside ? this.$element : document.body) + + pos = this.getPosition(inside) + + actualWidth = $tip[0].offsetWidth + actualHeight = $tip[0].offsetHeight + + switch (inside ? placement.split(' ')[1] : placement) { + case 'bottom': + tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2} + break + case 'top': + tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2} + break + case 'left': + tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth} + break + case 'right': + tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width} + break + } + + $tip + .css(tp) + .addClass(placement) + .addClass('in') + } + } + + , isHTML: function(text) { + // html string detection logic adapted from jQuery + return typeof text != 'string' + || ( text.charAt(0) === "<" + && text.charAt( text.length - 1 ) === ">" + && text.length >= 3 + ) || /^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(text) + } + + , setContent: function () { + var $tip = this.tip() + , title = this.getTitle() + + $tip.find('.tooltip-inner')[this.isHTML(title) ? 'html' : 'text'](title) + $tip.removeClass('fade in top bottom left right') + } + + , hide: function () { + var that = this + , $tip = this.tip() + + $tip.removeClass('in') + + function removeWithAnimation() { + var timeout = setTimeout(function () { + $tip.off($.support.transition.end).remove() + }, 500) + + $tip.one($.support.transition.end, function () { + clearTimeout(timeout) + $tip.remove() + }) + } + + $.support.transition && this.$tip.hasClass('fade') ? + removeWithAnimation() : + $tip.remove() + } + + , fixTitle: function () { + var $e = this.$element + if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') { + $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title') + } + } + + , hasContent: function () { + return this.getTitle() + } + + , getPosition: function (inside) { + return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), { + width: this.$element[0].offsetWidth + , height: this.$element[0].offsetHeight + }) + } + + , getTitle: function () { + var title + , $e = this.$element + , o = this.options + + title = $e.attr('data-original-title') + || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) + + return title + } + + , tip: function () { + return this.$tip = this.$tip || $(this.options.template) + } + + , validate: function () { + if (!this.$element[0].parentNode) { + this.hide() + this.$element = null + this.options = null + } + } + + , enable: function () { + this.enabled = true + } + + , disable: function () { + this.enabled = false + } + + , toggleEnabled: function () { + this.enabled = !this.enabled + } + + , toggle: function () { + this[this.tip().hasClass('in') ? 'hide' : 'show']() + } + + } + + + /* TOOLTIP PLUGIN DEFINITION + * ========================= */ + + $.fn.tooltip = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('tooltip') + , options = typeof option == 'object' && option + if (!data) $this.data('tooltip', (data = new Tooltip(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.tooltip.Constructor = Tooltip + + $.fn.tooltip.defaults = { + animation: true + , placement: 'top' + , selector: false + , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' + , trigger: 'hover' + , title: '' + , delay: 0 + } + +}(window.jQuery); +/* =========================================================== + * bootstrap-popover.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#popovers + * =========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* POPOVER PUBLIC CLASS DEFINITION + * =============================== */ + + var Popover = function ( element, options ) { + this.init('popover', element, options) + } + + + /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js + ========================================== */ + + Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, { + + constructor: Popover + + , setContent: function () { + var $tip = this.tip() + , title = this.getTitle() + , content = this.getContent() + + $tip.find('.popover-title')[this.isHTML(title) ? 'html' : 'text'](title) + $tip.find('.popover-content > *')[this.isHTML(content) ? 'html' : 'text'](content) + + $tip.removeClass('fade top bottom left right in') + } + + , hasContent: function () { + return this.getTitle() || this.getContent() + } + + , getContent: function () { + var content + , $e = this.$element + , o = this.options + + content = $e.attr('data-content') + || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) + + return content + } + + , tip: function () { + if (!this.$tip) { + this.$tip = $(this.options.template) + } + return this.$tip + } + + }) + + + /* POPOVER PLUGIN DEFINITION + * ======================= */ + + $.fn.popover = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('popover') + , options = typeof option == 'object' && option + if (!data) $this.data('popover', (data = new Popover(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.popover.Constructor = Popover + + $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, { + placement: 'right' + , 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);/* ============================================================= + * bootstrap-scrollspy.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#scrollspy + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* SCROLLSPY CLASS DEFINITION + * ========================== */ + + function ScrollSpy( element, options) { + var process = $.proxy(this.process, this) + , $element = $(element).is('body') ? $(window) : $(element) + , href + this.options = $.extend({}, $.fn.scrollspy.defaults, options) + this.$scrollElement = $element.on('scroll.scroll.data-api', process) + this.selector = (this.options.target + || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + || '') + ' .nav li > a' + this.$body = $('body') + this.refresh() + this.process() + } + + ScrollSpy.prototype = { + + constructor: ScrollSpy + + , refresh: function () { + var self = this + , $targets + + this.offsets = $([]) + this.targets = $([]) + + $targets = this.$body + .find(this.selector) + .map(function () { + var $el = $(this) + , href = $el.data('target') || $el.attr('href') + , $href = /^#\w/.test(href) && $(href) + return ( $href + && href.length + && [[ $href.position().top, href ]] ) || null + }) + .sort(function (a, b) { return a[0] - b[0] }) + .each(function () { + self.offsets.push(this[0]) + self.targets.push(this[1]) + }) + } + + , process: function () { + var scrollTop = this.$scrollElement.scrollTop() + this.options.offset + , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight + , maxScroll = scrollHeight - this.$scrollElement.height() + , offsets = this.offsets + , targets = this.targets + , activeTarget = this.activeTarget + , i + + if (scrollTop >= maxScroll) { + return activeTarget != (i = targets.last()[0]) + && this.activate ( i ) + } + + for (i = offsets.length; i--;) { + activeTarget != targets[i] + && scrollTop >= offsets[i] + && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) + && this.activate( targets[i] ) + } + } + + , activate: function (target) { + var active + , selector + + this.activeTarget = target + + $(this.selector) + .parent('.active') + .removeClass('active') + + selector = this.selector + + '[data-target="' + target + '"],' + + this.selector + '[href="' + target + '"]' + + active = $(selector) + .parent('li') + .addClass('active') + + if (active.parent('.dropdown-menu')) { + active = active.closest('li.dropdown').addClass('active') + } + + active.trigger('activate') + } + + } + + + /* SCROLLSPY PLUGIN DEFINITION + * =========================== */ + + $.fn.scrollspy = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('scrollspy') + , options = typeof option == 'object' && option + if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.scrollspy.Constructor = ScrollSpy + + $.fn.scrollspy.defaults = { + offset: 10 + } + + + /* SCROLLSPY DATA-API + * ================== */ + + $(function () { + $('[data-spy="scroll"]').each(function () { + var $spy = $(this) + $spy.scrollspy($spy.data()) + }) + }) + +}(window.jQuery);/* ======================================================== + * bootstrap-tab.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#tabs + * ======================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* TAB CLASS DEFINITION + * ==================== */ + + var Tab = function ( element ) { + this.element = $(element) + } + + Tab.prototype = { + + constructor: Tab + + , show: function () { + var $this = this.element + , $ul = $this.closest('ul:not(.dropdown-menu)') + , selector = $this.attr('data-target') + , previous + , $target + , e + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + if ( $this.parent('li').hasClass('active') ) return + + previous = $ul.find('.active a').last()[0] + + e = $.Event('show', { + relatedTarget: previous + }) + + $this.trigger(e) + + if (e.isDefaultPrevented()) return + + $target = $(selector) + + this.activate($this.parent('li'), $ul) + this.activate($target, $target.parent(), function () { + $this.trigger({ + type: 'shown' + , relatedTarget: previous + }) + }) + } + + , activate: function ( element, container, callback) { + var $active = container.find('> .active') + , transition = callback + && $.support.transition + && $active.hasClass('fade') + + function next() { + $active + .removeClass('active') + .find('> .dropdown-menu > .active') + .removeClass('active') + + element.addClass('active') + + if (transition) { + element[0].offsetWidth // reflow for transition + element.addClass('in') + } else { + element.removeClass('fade') + } + + if ( element.parent('.dropdown-menu') ) { + element.closest('li.dropdown').addClass('active') + } + + callback && callback() + } + + transition ? + $active.one($.support.transition.end, next) : + next() + + $active.removeClass('in') + } + } + + + /* TAB PLUGIN DEFINITION + * ===================== */ + + $.fn.tab = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('tab') + if (!data) $this.data('tab', (data = new Tab(this))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.tab.Constructor = Tab + + + /* TAB DATA-API + * ============ */ + + $(function () { + $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { + e.preventDefault() + $(this).tab('show') + }) + }) + +}(window.jQuery);/* ============================================================= + * bootstrap-typeahead.js v2.0.4 + * http://twitter.github.com/bootstrap/javascript.html#typeahead + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function($){ + + "use strict"; // jshint ;_; + + + /* TYPEAHEAD PUBLIC CLASS DEFINITION + * ================================= */ + + var Typeahead = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.typeahead.defaults, options) + 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 = $(this.options.menu).appendTo('body') + this.source = this.options.source + this.shown = false + this.listen() + } + + Typeahead.prototype = { + + constructor: Typeahead + + , select: function () { + var val = this.$menu.find('.active').attr('data-value') + this.$element + .val(this.updater(val)) + .change() + return this.hide() + } + + , updater: function (item) { + return item + } + + , show: function () { + var pos = $.extend({}, this.$element.offset(), { + height: this.$element[0].offsetHeight + }) + + this.$menu.css({ + top: pos.top + pos.height + , left: pos.left + }) + + this.$menu.show() + this.shown = true + return this + } + + , hide: function () { + this.$menu.hide() + this.shown = false + return this + } + + , lookup: function (event) { + var that = this + , items + , q + + this.query = this.$element.val() + + if (!this.query) { + return this.shown ? this.hide() : this + } + + items = $.grep(this.source, function (item) { + return that.matcher(item) + }) + + items = this.sorter(items) + + if (!items.length) { + return this.shown ? this.hide() : this + } + + return this.render(items.slice(0, this.options.items)).show() + } + + , matcher: function (item) { + return ~item.toLowerCase().indexOf(this.query.toLowerCase()) + } + + , sorter: function (items) { + var beginswith = [] + , caseSensitive = [] + , caseInsensitive = [] + , item + + while (item = items.shift()) { + if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item) + else if (~item.indexOf(this.query)) caseSensitive.push(item) + else caseInsensitive.push(item) + } + + return beginswith.concat(caseSensitive, caseInsensitive) + } + + , highlighter: function (item) { + var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&') + return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) { + return '<strong>' + match + '</strong>' + }) + } + + , render: function (items) { + var that = this + + items = $(items).map(function (i, item) { + i = $(that.options.item).attr('data-value', item) + i.find('a').html(that.highlighter(item)) + return i[0] + }) + + items.first().addClass('active') + this.$menu.html(items) + return this + } + + , next: function (event) { + var active = this.$menu.find('.active').removeClass('active') + , next = active.next() + + if (!next.length) { + next = $(this.$menu.find('li')[0]) + } + + next.addClass('active') + } + + , prev: function (event) { + var active = this.$menu.find('.active').removeClass('active') + , prev = active.prev() + + if (!prev.length) { + prev = this.$menu.find('li').last() + } + + prev.addClass('active') + } + + , listen: function () { + this.$element + .on('blur', $.proxy(this.blur, this)) + .on('keypress', $.proxy(this.keypress, this)) + .on('keyup', $.proxy(this.keyup, this)) + + if ($.browser.webkit || $.browser.msie) { + this.$element.on('keydown', $.proxy(this.keypress, this)) + } + + this.$menu + .on('click', $.proxy(this.click, this)) + .on('mouseenter', 'li', $.proxy(this.mouseenter, this)) + } + + , keyup: function (e) { + switch(e.keyCode) { + case 40: // down arrow + case 38: // up arrow + break + + case 9: // tab + case 13: // enter + if (!this.shown) return + this.select() + break + + case 27: // escape + if (!this.shown) return + this.hide() + break + + default: + this.lookup() + } + + e.stopPropagation() + e.preventDefault() + } + + , keypress: function (e) { + if (!this.shown) return + + switch(e.keyCode) { + case 9: // tab + case 13: // enter + case 27: // escape + e.preventDefault() + break + + case 38: // up arrow + if (e.type != 'keydown') break + e.preventDefault() + this.prev() + break + + case 40: // down arrow + if (e.type != 'keydown') break + e.preventDefault() + this.next() + break + } + + e.stopPropagation() + } + + , blur: function (e) { + var that = this + setTimeout(function () { that.hide() }, 150) + } + + , click: function (e) { + e.stopPropagation() + e.preventDefault() + this.select() + } + + , mouseenter: function (e) { + this.$menu.find('.active').removeClass('active') + $(e.currentTarget).addClass('active') + } + + } + + + /* TYPEAHEAD PLUGIN DEFINITION + * =========================== */ + + $.fn.typeahead = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('typeahead') + , options = typeof option == 'object' && option + if (!data) $this.data('typeahead', (data = new Typeahead(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.typeahead.defaults = { + source: [] + , items: 8 + , menu: '<ul class="typeahead dropdown-menu"></ul>' + , item: '<li><a href="#"></a></li>' + } + + $.fn.typeahead.Constructor = Typeahead + + + /* TYPEAHEAD DATA-API + * ================== */ + + $(function () { + $('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) { + var $this = $(this) + if ($this.data('typeahead')) return + e.preventDefault() + $this.typeahead($this.data()) + }) + }) + +}(window.jQuery);
\ No newline at end of file diff --git a/pkg/inst/web/js/bootstrap.min.js b/pkg/inst/web/js/bootstrap.min.js new file mode 100644 index 0000000..1435698 --- /dev/null +++ b/pkg/inst/web/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/*! +* Bootstrap.js by @fat & @mdo +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){a(function(){"use strict",a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){"use strict";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){"use strict";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.parent('[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){"use strict";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(".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(a){return a||(this.paused=!0),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(".active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j=a.Event("slide");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);e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):typeof c=="string"||(c=f.slide)?e[c]():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){"use strict";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"),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();a(e).collapse(f)})})}(window.jQuery),!function(a){function d(){a(b).parent().removeClass("open")}"use strict";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),e,f,g;if(c.is(".disabled, :disabled"))return;return f=c.attr("data-target"),f||(f=c.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,"")),e=a(f),e.length||(e=c.parent()),g=e.hasClass("open"),d(),g||e.toggleClass("open"),!1}},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",d),a("body").on("click.dropdown",".dropdown form",function(a){a.stopPropagation()}).on("click.dropdown.data-api",b,c.prototype.toggle)})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(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(f,this)):f.call(this)):b&&b()}function f(){this.$backdrop.remove(),this.$backdrop=null}function g(){var b=this;this.isShown&&this.options.keyboard?a(document).on("keyup.dismiss.modal",function(a){a.which==27&&b.hide()}):this.isShown||a(document).off("keyup.dismiss.modal")}"use strict";var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this))};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,g.call(this),e.call(this,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"),c?b.$element.one(a.support.transition.end,function(){b.$element.trigger("shown")}):b.$element.trigger("shown")})},hide:function(b){b&&b.preventDefault();var e=this;b=a.Event("hide"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,a("body").removeClass("modal-open"),g.call(this),this.$element.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?c.call(this):d.call(this)}},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,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({},e.data(),c.data());b.preventDefault(),e.modal(f)})})}(window.jQuery),!function(a){"use strict";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!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f,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")}},isHTML:function(a){return typeof a!="string"||a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3||/^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(a)},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.isHTML(b)?"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();c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.remove()},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"]()}},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}}(window.jQuery),!function(a){"use strict";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.isHTML(b)?"html":"text"](b),a.find(".popover-content > *")[this.isHTML(c)?"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}}),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",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){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.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()}"use strict",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&&c.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")&&(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(function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){"use strict";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){"use strict";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=this,d,e;return this.query=this.$element.val(),this.query?(d=a.grep(this.source,function(a){return c.matcher(a)}),d=this.sorter(d),d.length?this.render(d.slice(0,this.options.items)).show():this.shown?this.hide():this):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.webkit||a.browser.msie)&&this.$element.on("keydown",a.proxy(this.keypress,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this))},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()},keypress:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:if(a.type!="keydown")break;a.preventDefault(),this.prev();break;case 40:if(a.type!="keydown")break;a.preventDefault(),this.next()}a.stopPropagation()},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>'},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/pkg/inst/web/pfm_degradation.html b/pkg/inst/web/pfm_degradation.html new file mode 100644 index 0000000..68e8859 --- /dev/null +++ b/pkg/inst/web/pfm_degradation.html @@ -0,0 +1,119 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>pfm_degradation. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Calculate a time course of relative concentrations based on an mkinmod model</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>pfm_degradation(model = "SFO", DT50 = 1000, parms = c(k_parent_sink = log(2)/DT50), years = 1, step_days = 1, times = seq(0, years * 365, by = step_days))</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>model</dt> + <dd>The degradation model to be used. Either a parent only model like +'SFO' or 'FOMC', or an mkinmod object</dd> + <dt>DT50</dt> + <dd>The half-life. This is only used when simple exponential decline +is calculated (SFO model).</dd> + <dt>parms</dt> + <dd>The parameters used for the degradation model</dd> + <dt>years</dt> + <dd>For how many years should the degradation be predicted?</dd> + <dt>step_days</dt> + <dd>What step size in days should the output have?</dd> + <dt>times</dt> + <dd>The output times</dd> + </dl> + + <div class="Description"> + <h2>Description</h2> + + <p>Calculate a time course of relative concentrations based on an mkinmod model</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>head(pfm_degradation("SFO", DT50 = 10)) +</div> +<div class='output'> time parent +1 0 1.0000000 +2 1 0.9330330 +3 2 0.8705506 +4 3 0.8122524 +5 4 0.7578583 +6 5 0.7071068 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>pfm_degradation</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/plot.TOXSWA_cwa-2.png b/pkg/inst/web/plot.TOXSWA_cwa-2.png Binary files differnew file mode 100644 index 0000000..764c7f4 --- /dev/null +++ b/pkg/inst/web/plot.TOXSWA_cwa-2.png diff --git a/pkg/inst/web/plot.TOXSWA_cwa-4.png b/pkg/inst/web/plot.TOXSWA_cwa-4.png Binary files differnew file mode 100644 index 0000000..764c7f4 --- /dev/null +++ b/pkg/inst/web/plot.TOXSWA_cwa-4.png diff --git a/pkg/inst/web/plot.TOXSWA_cwa.html b/pkg/inst/web/plot.TOXSWA_cwa.html new file mode 100644 index 0000000..184c4f6 --- /dev/null +++ b/pkg/inst/web/plot.TOXSWA_cwa.html @@ -0,0 +1,119 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>plot.TOXSWA_cwa. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Plot TOXSWA surface water concentrations</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>"plot"(x, time_column = c("datetime", "t", "t_firstjan", "t_rel_to_max"), xlab = "default", ylab = "default", add = FALSE, total = FALSE, LC_TIME = "C", ...)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>x</dt> + <dd>The TOXSWA_cwa object to be plotted.</dd> + <dt>time_column</dt> + <dd>What should be used for the time axis. If "t_firstjan" is chosen, +the time is given in days relative to the first of January in the first year.</dd> + <dt>xlab, ylab</dt> + <dd>Labels for x and y axis.</dd> + <dt>add</dt> + <dd>Should we add to an existing plot?</dd> + <dt>total</dt> + <dd>Should the total concentration in water be plotted, including substance sorbed +to suspended matter?</dd> + <dt>LC_TIME</dt> + <dd>Specification of the locale used to format dates</dd> + <dt>...</dt> + <dd>Further arguments passed to <code>plot</code> if we are not adding to an existing plot</dd> + </dl> + + <div class="Description"> + <h2>Description</h2> + + <p>Plot TOXSWA hourly concentrations of a chemical substance in a specific +segment of a TOXSWA surface water body.</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>H_sw_D4_pond <- read.TOXSWA_cwa("00001p_pa.cwa", + basedir = "SwashProjects/project_H_sw/TOXSWA", + zipfile = system.file("testdata/SwashProjects.zip", + package = "pfm")) +plot(H_sw_D4_pond) +</div> +<p><img src='plot.TOXSWA_cwa-2.png' alt='' width='540' height='400' /></p></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>plot.TOXSWA_cwa</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/read.TOXSWA_cwa.html b/pkg/inst/web/read.TOXSWA_cwa.html new file mode 100644 index 0000000..5542fca --- /dev/null +++ b/pkg/inst/web/read.TOXSWA_cwa.html @@ -0,0 +1,127 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>read.TOXSWA_cwa. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=" +Johannes Ranke +"> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Read TOXSWA surface water concentrations</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>read.TOXSWA_cwa(filename, basedir = ".", zipfile = NULL, segment = "last", windows = NULL, thresholds = NULL)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>filename</dt> + <dd>The filename of the cwa file.</dd> + <dt>basedir</dt> + <dd>The path to the directory where the cwa file resides.</dd> + <dt>zipfile</dt> + <dd>Optional path to a zip file containing the cwa file.</dd> + <dt>segment</dt> + <dd>The segment for which the data should be read. Either "last", or +the segment number.</dd> + <dt>windows</dt> + <dd>Numeric vector of width of moving windows in days, for calculating +maximum time weighted average concentrations and areas under the curve.</dd> + <dt>thresholds</dt> + <dd>Numeric vector of threshold concentrations in µg/L for +generating event statistics.</dd> + </dl> + + <div class="Value"> + <h2>Value</h2> + + <p><dl> +An instance of an R6 object of class +<code><a href='TOXSWA_cwa.html'>TOXSWA_cwa</a></code>. +</dl></p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>Read TOXSWA hourly concentrations of a chemical substance in a specific +segment of a TOXSWA surface water body. Per default, the data for the last +segment are imported.</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>H_sw_D4_pond <- read.TOXSWA_cwa("00001p_pa.cwa", + basedir = "SwashProjects/project_H_sw/TOXSWA", + zipfile = system.file("testdata/SwashProjects.zip", + package = "pfm")) +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>read.TOXSWA_cwa</li> + </ul> + <ul> + + </ul> --> + + + <h2>Author</h2> + +Johannes Ranke + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/soil_DT50.html b/pkg/inst/web/soil_DT50.html new file mode 100644 index 0000000..0e142ae --- /dev/null +++ b/pkg/inst/web/soil_DT50.html @@ -0,0 +1,104 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>soil_DT50. pfm 0.2-4</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.2-4</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Obtain soil DT50</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>soil_DT50(chent, aggregator = geomean, signif = 3, lab_field = "laboratory", value = "DT50ref", redox = "aerobic", raw = FALSE)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>chent</dt> + <dd>The <code><a href='http://www.inside-r.org/packages/cran/chents/docs/chent'>chent</a></code> object to get the information from</dd> + <dt>aggregator</dt> + <dd>The aggregator function. Can be mean, +<code><a href='geomean.html'>geomean</a></code>, or identity, for example.</dd> + <dt>signif</dt> + <dd>How many significant digits do we want</dd> + <dt>lab_field</dt> + <dd>If not NA, do we want laboratory or field endpoints</dd> + <dt>value</dt> + <dd>The name of the value we want. The list given in the +usage section is not exclusive</dd> + <dt>redox</dt> + <dd>If not NA, are we looking for aerobic or anaerobic data</dd> + <dt>raw</dt> + <dd>Should the number(s) be returned as stored in the chent +object (could be a character value) to retain original information +about precision?</dd> + </dl> + + <div class="Description"> + <h2>Description</h2> + + <p>Obtain soil DT50</p> + + </div> + </div> + <div class="span4"> + <!-- <ul> + <li>soil_DT50</li> + </ul> + <ul> + + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/soil_Kfoc.html b/pkg/inst/web/soil_Kfoc.html new file mode 100644 index 0000000..ace5f4b --- /dev/null +++ b/pkg/inst/web/soil_Kfoc.html @@ -0,0 +1,100 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>soil_Kfoc. pfm 0.2-4</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.2-4</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Obtain soil Kfoc</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>soil_Kfoc(chent, aggregator = geomean, signif = 3, value = "Kfoc", raw = FALSE)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>chent</dt> + <dd>The <code><a href='http://www.inside-r.org/packages/cran/chents/docs/chent'>chent</a></code> object to get the information from</dd> + <dt>aggregator</dt> + <dd>The aggregator function. Can be mean, +<code><a href='geomean.html'>geomean</a></code>, or identity, for example.</dd> + <dt>signif</dt> + <dd>How many significant digits do we want</dd> + <dt>value</dt> + <dd>The name of the value we want. The list given in the +usage section is not exclusive</dd> + <dt>raw</dt> + <dd>Should the number(s) be returned as stored in the chent +object (could be a character value) to retain original information +about precision?</dd> + </dl> + + <div class="Description"> + <h2>Description</h2> + + <p>Obtain soil Kfoc</p> + + </div> + </div> + <div class="span4"> + <!-- <ul> + <li>soil_Kfoc</li> + </ul> + <ul> + + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/soil_N.html b/pkg/inst/web/soil_N.html new file mode 100644 index 0000000..886bbc7 --- /dev/null +++ b/pkg/inst/web/soil_N.html @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>soil_N. pfm 0.2-4</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.2-4</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Obtain soil Freundlich exponent</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>soil_N(chent, aggregator = mean, signif = 3, raw = FALSE)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>chent</dt> + <dd>The <code><a href='http://www.inside-r.org/packages/cran/chents/docs/chent'>chent</a></code> object to get the information from</dd> + <dt>aggregator</dt> + <dd>The aggregator function. Can be mean, +<code><a href='geomean.html'>geomean</a></code>, or identity, for example.</dd> + <dt>signif</dt> + <dd>How many significant digits do we want</dd> + <dt>raw</dt> + <dd>Should the number(s) be returned as stored in the chent +object (could be a character value) to retain original information +about precision?</dd> + </dl> + + <div class="Description"> + <h2>Description</h2> + + <p>In pesticide fate modelling, this exponent is often called 1/n. Here, in +order to facilitate dealing with such data in R, it is called N.</p> + + </div> + </div> + <div class="span4"> + <!-- <ul> + <li>soil_N</li> + </ul> + <ul> + + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/soil_scenario_data_EFSA_2015.html b/pkg/inst/web/soil_scenario_data_EFSA_2015.html new file mode 100644 index 0000000..1d4328f --- /dev/null +++ b/pkg/inst/web/soil_scenario_data_EFSA_2015.html @@ -0,0 +1,141 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>soil_scenario_data_EFSA_2015. pfm 0.3-1</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.3-1</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Properties of the predefined scenarios from the EFSA guidance from 2015</h1> + +<div class="row"> + <div class="span8"> + + <div class="Format"> + <h2>Format</h2> + + <p>A data frame with one row for each scenario. Row names are the scenario codes, + e.g. CTN for the Northern scenario for the total concentration in soil. Columns are + mostly self-explanatory. <code>rho</code> is the dry bulk density of the top soil.</p> + + </div> + + <div class="Source"> + <h2>Source</h2> + + <p>EFSA (European Food Safety Authority) (2015) +EFSA guidance document for predicting environmental concentrations +of active substances of plant protection products and transformation products of these +active substances in soil. <em>EFSA Journal</em> <b>13</b>(4) 4093 +doi:10.2903/j.efsa.2015.4093</p> + + </div> + + <div class="Description"> + <h2>Description</h2> + + <p>Properties of the predefined scenarios used at Tier 1, Tier 2A and Tier 3A for the +concentration in soil as given in the EFSA guidance (2015, p. 13/14). Also, the +scenario and model adjustment factors from p. 15 and p. 17 are included.</p> + + </div> + + <h2 id="examples">Examples</h2> + <pre class="examples"><div class='input'>## Not run: +# # This is the code that was used to define the data +# soil_scenario_data_EFSA_2015 <- data.frame( +# Zone = rep(c("North", "Central", "South"), 2), +# Country = c("Estonia", "Germany", "France", "Denmark", "Czech Republik", "Spain"), +# T_arit = c(4.7, 8.0, 11.0, 8.2, 9.1, 12.8), +# T_arr = c(7.0, 10.1, 12.3, 9.8, 11.2, 14.7), +# Texture = c("Coarse", "Coarse", "Medium fine", "Medium", "Medium", "Medium"), +# f_om = c(0.118, 0.086, 0.048, 0.023, 0.018, 0.011), +# theta_fc = c(0.244, 0.244, 0.385, 0.347, 0.347, 0.347), +# rho = c(0.95, 1.05, 1.22, 1.39, 1.43, 1.51), +# f_sce = c(3, 2, 2, 2, 1.5, 1.5), +# f_mod = c(2, 2, 2, 4, 4, 4), +# stringsAsFactors = FALSE, +# row.names = c("CTN", "CTC", "CTS", "CLN", "CLC", "CLS") +# ) +# save(soil_scenario_data_EFSA_2015, file = '../data/soil_scenario_data_EFSA_2015.RData') +# ## End(Not run) + +# And this is the resulting dataframe +soil_scenario_data_EFSA_2015 +</div> +<div class='output'> Zone Country T_arit T_arr Texture f_om theta_fc rho f_sce +CTN North Estonia 4.7 7.0 Coarse 0.118 0.244 0.95 3.0 +CTC Central Germany 8.0 10.1 Coarse 0.086 0.244 1.05 2.0 +CTS South France 11.0 12.3 Medium fine 0.048 0.385 1.22 2.0 +CLN North Denmark 8.2 9.8 Medium 0.023 0.347 1.39 2.0 +CLC Central Czech Republik 9.1 11.2 Medium 0.018 0.347 1.43 1.5 +CLS South Spain 12.8 14.7 Medium 0.011 0.347 1.51 1.5 + f_mod +CTN 2 +CTC 2 +CTS 2 +CLN 4 +CLC 4 +CLS 4 +</div></pre> + </div> + <div class="span4"> + <!-- <ul> + <li>soil_scenario_data_EFSA_2015</li> + </ul> + <ul> + <li>datasets</li> + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/inst/web/soil_sorption.html b/pkg/inst/web/soil_sorption.html new file mode 100644 index 0000000..152fc5e --- /dev/null +++ b/pkg/inst/web/soil_sorption.html @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> +<title>soil_sorption. pfm 0.2-4</title> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="author" content=""> + +<link href="css/bootstrap.css" rel="stylesheet"> +<link href="css/bootstrap-responsive.css" rel="stylesheet"> +<link href="css/highlight.css" rel="stylesheet"> +<link href="css/staticdocs.css" rel="stylesheet"> + +<!--[if lt IE 9]> + <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> +<![endif]--> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + processEscapes: true + } + }); +</script> +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> +</script> + </head> + + <body> + <div class="navbar"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#">pfm 0.2-4</a> + <div class="nav"> + <ul class="nav"> + <li><a href="index.html"><i class="icon-home icon-white"></i> Index</a></li> + </ul> + </div> + </div> + </div> +</div> + + <div class="container"> + <header> + + </header> + + <h1>Obtain soil sorption data</h1> + +<div class="row"> + <div class="span8"> + <h2>Usage</h2> + <pre><div>soil_sorption(chent, values = c("Kfoc", "N"), aggregators = c(Kfoc = geomean, Koc = geomean, N = mean), signif = rep(3, length(values)), raw = FALSE)</div></pre> + + <h2>Arguments</h2> + <dl> + <dt>chent</dt> + <dd>The <code><a href='http://www.inside-r.org/packages/cran/chents/docs/chent'>chent</a></code> object to get the information from</dd> + <dt>values</dt> + <dd>The values to be returned</dd> + <dt>aggregators</dt> + <dd>A named vector of aggregator functions to be used</dd> + <dt>signif</dt> + <dd>How many significant digits do we want</dd> + <dt>raw</dt> + <dd>Should the number(s) be returned as stored in the chent +object (could be a character value) to retain original information +about precision?</dd> + </dl> + + <div class="Description"> + <h2>Description</h2> + + <p>Obtain soil sorption data</p> + + </div> + </div> + <div class="span4"> + <!-- <ul> + <li>soil_sorption</li> + </ul> + <ul> + + </ul> --> + + + </div> +</div> + + <footer> + <p class="pull-right"><a href="#">Back to top</a></p> +<p>Built by <a href="https://github.com/hadley/staticdocs">staticdocs</a>. Styled with <a href="http://twitter.github.com/bootstrap">bootstrap</a>.</p> + </footer> + </div> + </body> +</html>
\ No newline at end of file diff --git a/pkg/man/FOCUS_GW_scenarios_2012.Rd b/pkg/man/FOCUS_GW_scenarios_2012.Rd index 5494d16..3ae151b 100644 --- a/pkg/man/FOCUS_GW_scenarios_2012.Rd +++ b/pkg/man/FOCUS_GW_scenarios_2012.Rd @@ -6,6 +6,9 @@ \description{ Currently, only a small subset of the soil definitions are provided. } +\examples{ +FOCUS_GW_scenarios_2012 +} \references{ FOCUS (2012) Generic guidance for Tier 1 FOCUS ground water assessments. Version 2.1. FOrum for the Co-ordination of pesticde fate models and their USe. diff --git a/pkg/man/GUS.Rd b/pkg/man/GUS.Rd index 33c7364..f1f5f28 100644 --- a/pkg/man/GUS.Rd +++ b/pkg/man/GUS.Rd @@ -68,7 +68,7 @@ A list with the DT50 and Koc used as well as the resulting score \description{ The groundwater ubiquity score GUS is calculated according to the following equation -\deqn{GUS = \log_10 DT50_{soil} (4 - \log_10 K_{oc}}{GUS = log10 DT50soil * (4 - log10 Koc)} +\deqn{GUS = \log_{10} DT50_{soil} (4 - \log_{10} K_{oc})}{GUS = log10 DT50soil * (4 - log10 Koc)} } \author{ Johannes Ranke diff --git a/pkg/man/PEC_soil.Rd b/pkg/man/PEC_soil.Rd index 2433ecc..c0b5201 100644 --- a/pkg/man/PEC_soil.Rd +++ b/pkg/man/PEC_soil.Rd @@ -5,7 +5,10 @@ \title{Calculate predicted environmental concentrations in soil} \usage{ PEC_soil(rate, rate_units = "g/ha", interception = 0, mixing_depth = 5, - bulk_density = 1.5, PEC_units = "mg/kg") + PEC_units = "mg/kg", PEC_pw_units = "mg/L", interval = NA, + n_periods = Inf, tillage_depth = 20, chent = NA, DT50 = NA, + Koc = NA, Kom = Koc/1.724, t_avg = 0, scenarios = c("default", + "EFSA_2015"), porewater = FALSE) } \arguments{ \item{rate}{Application rate in units specified below} @@ -16,21 +19,101 @@ PEC_soil(rate, rate_units = "g/ha", interception = 0, mixing_depth = 5, \item{mixing_depth}{Mixing depth in cm} -\item{bulk_density}{Bulk density of the soil. Defaults to 1.5 kg/L, or 1500 kg/m3} - \item{PEC_units}{Requested units for the calculated PEC. Only mg/kg currently supported} + +\item{PEC_pw_units}{Only mg/L currently supported} + +\item{interval}{Period of the deeper mixing, defaults to 365, which is a year if +rate units are in days} + +\item{n_periods}{Number of periods to be considered for long term PEC calculations} + +\item{tillage_depth}{Periodic (see interval) deeper mixing in cm} + +\item{chent}{An optional chent object holding substance specific information. Can +also be a name for the substance as a character string} + +\item{DT50}{If specified, overrides soil DT50 endpoints from a chent object +If DT50 is not specified here and not available from the chent object, zero +degradation is assumed} + +\item{Koc}{If specified, overrides Koc endpoints from a chent object} + +\item{Kom}{Calculated from Koc by default, but can explicitly be specified +as Kom here} + +\item{t_avg}{Averaging times for time weighted average concentrations} + +\item{scenarios}{If this is 'default', the DT50 will be used without correction +and soil properties as specified in the REACH guidance (R.16, Table +R.16-9) are used for porewater PEC calculations. If this is "EFSA_2015", +the DT50 is taken to be a modelling half-life at 20°C and pF2 (for when +'chents' is specified, the DegT50 with destination 'PECgw' will be used), +and corrected using an Arrhenius activation energy of 65.4 kJ/mol. Also +model and scenario adjustment factors from the EFSA guidance are used.} + +\item{porewater}{Should equilibrium porewater concentrations be estimated +based on Kom and the organic carbon fraction of the soil instead of total +soil concentrations? Based on equation (7) given in the PPR panel opinion +(EFSA 2012, p. 24) and the scenarios specified in the EFSA guidance (2015, +p. 13).} } \value{ The predicted concentration in soil } \description{ -This is a basic, vectorised form of a simple calculation of a contaminant -concentration in bulk soil based on complete, instantaneous mixing. +This is a basic calculation of a contaminant concentration in bulk soil +based on complete, instantaneous mixing. If an interval is given, an +attempt is made at calculating a long term maximum concentration using +the concepts layed out for example in the PPR panel opinion (EFSA 2012). +} +\details{ +This assumes that the complete load to soil during the time specified by +'interval' (typically 365 days) is dosed at once. As in the PPR panel +opinion cited below (PPR panel 2012), only temperature correction using the +Arrhenius equation is performed. + +Total soil and porewater PEC values for the scenarios as defined in the EFSA +guidance (2015, p. 13) can easily be calculated. +} +\note{ +If temperature information is available in the selected scenarios, as + e.g. in the EFSA scenarios, the DT50 for groundwater modelling + (destination 'PECgw') is taken from the chent object, otherwise the DT50 + with destination 'PECsoil'. } \examples{ PEC_soil(100, interception = 0.25) + +# This is example 1 starting at p. 79 of the EFSA guidance (2015) +PEC_soil(1000, interval = 365, DT50 = 250, t_avg = c(0, 21), + scenarios = "EFSA_2015") +PEC_soil(1000, interval = 365, DT50 = 250, t_av = c(0, 21), + Kom = 1000, scenarios = "EFSA_2015", porewater = TRUE) + +# The following is from example 4 starting at p. 85 of the EFSA guidance (2015) +# Metabolite M2 +# Calculate total and porewater soil concentrations for tier 1 scenarios +# Relative molar mass is 100/300, formation fraction is 0.7 * 1 +results_pfm <- PEC_soil(100/300 * 0.7 * 1 * 1000, interval = 365, DT50 = 250, t_avg = c(0, 21), + scenarios = "EFSA_2015") +results_pfm_pw <- PEC_soil(100/300 * 0.7 * 1000, interval = 365, DT50 = 250, t_av = c(0, 21), + Kom = 100, scenarios = "EFSA_2015", porewater = TRUE) } \author{ Johannes Ranke } +\references{ +EFSA Panel on Plant Protection Products and their Residues (2012) + Scientific Opinion on the science behind the guidance for scenario + selection and scenario parameterisation for predicting environmental + concentrations of plant protection products in soil. \emph{EFSA Journal} + \bold{10}(2) 2562, doi:10.2903/j.efsa.2012.2562 + + EFSA (European Food Safety Authority) (2015) EFSA guidance document for + predicting environmental concentrations of active substances of plant + protection products and transformation products of these active substances + in soil. \emph{EFSA Journal} \bold{13}(4) 4093 + doi:10.2903/j.efsa.2015.4093 +} diff --git a/pkg/man/PEC_soil_product.Rd b/pkg/man/PEC_soil_product.Rd deleted file mode 100644 index b3afc8e..0000000 --- a/pkg/man/PEC_soil_product.Rd +++ /dev/null @@ -1,41 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/PEC_soil.R -\name{PEC_soil_product} -\alias{PEC_soil_product} -\title{Calculate predicted environmental concentrations in soil for a product} -\usage{ -PEC_soil_product(product, rate, rate_units = "L/ha", interception = 0, - mixing_depth = 5, tillage_depth = 20, interval = 365, - bulk_density = 1.5, PEC_units = "mg/kg") -} -\arguments{ -\item{product}{An object of class pp} - -\item{rate}{Application rate in units specified below} - -\item{rate_units}{Defaults to g/ha} - -\item{interception}{The fraction of the application rate that does not reach the soil} - -\item{mixing_depth}{Mixing depth in cm} - -\item{tillage_depth}{Periodic (see interval) deeper mixing in cm} - -\item{interval}{Period of the deeper mixing, defaults to 365, which is a year if -rate units are in days} - -\item{bulk_density}{Bulk density of the soil. Defaults to 1.5 kg/L, or 1500 kg/m3} - -\item{PEC_units}{Requested units for the calculated PEC. Only mg/kg currently supported} -} -\value{ -A data frame with compound names, and initial, plateau maximum, plateau minimum (background) - and long term maximum predicted concentrations in soil -} -\description{ -Calculates long term accumulation PEC values -} -\author{ -Johannes Ranke -} - diff --git a/pkg/man/PEC_sw_drainage_UK_ini.Rd b/pkg/man/PEC_sw_drainage_UK.Rd index c75b846..cb64bde 100644 --- a/pkg/man/PEC_sw_drainage_UK_ini.Rd +++ b/pkg/man/PEC_sw_drainage_UK.Rd @@ -1,12 +1,11 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/PEC_sw_drainage_UK.R -\name{PEC_sw_drainage_UK_ini} -\alias{PEC_sw_drainage_UK_ini} +\name{PEC_sw_drainage_UK} +\alias{PEC_sw_drainage_UK} \title{Calculate initial predicted environmental concentrations in surface water due to drainage using the UK method} \usage{ -PEC_sw_drainage_UK_ini(rate, interception = 0, Koc, - latest_application = NULL, soil_DT50 = NULL, model = NULL, - model_parms = NULL) +PEC_sw_drainage_UK(rate, interception = 0, Koc, latest_application = NULL, + soil_DT50 = NULL, model = NULL, model_parms = NULL) } \arguments{ \item{rate}{Application rate in g/ha} @@ -19,8 +18,8 @@ PEC_sw_drainage_UK_ini(rate, interception = 0, Koc, \item{soil_DT50}{Soil degradation half-life, if SFO kinetics are to be used} -\item{model}{The degradation model to be used. Either one of "FOMC", "DFOP", -"HS", or "IORE", or an mkinmod object} +\item{model}{The soil degradation model to be used. Either one of "FOMC", +"DFOP", "HS", or "IORE", or an mkinmod object} \item{model_parms}{A named numeric vector containing the model parameters} } @@ -32,7 +31,7 @@ This implements the method specified in the UK data requirements handbook and wa published on the CRC website } \examples{ -PEC_sw_drainage_UK_ini(150, Koc = 100) +PEC_sw_drainage_UK(150, Koc = 100) } \author{ Johannes Ranke diff --git a/pkg/man/PEC_sw_drift_ini.Rd b/pkg/man/PEC_sw_drift_ini.Rd deleted file mode 100644 index 26ef40a..0000000 --- a/pkg/man/PEC_sw_drift_ini.Rd +++ /dev/null @@ -1,42 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/PEC_sw_drift_ini.R -\name{PEC_sw_drift_ini} -\alias{PEC_sw_drift_ini} -\title{Calculate initial predicted environmental concentrations in surface water due to drift} -\usage{ -PEC_sw_drift_ini(rate, applications = 1, water_depth = 30, - drift_data = "JKI", crop = "Ackerbau", distances = c(1, 5, 10, 20), - rate_units = "g/ha", PEC_units = "µg/L") -} -\arguments{ -\item{rate}{Application rate in units specified below} - -\item{applications}{Number of applications for selection of drift percentile} - -\item{water_depth}{Depth of the water body in cm} - -\item{drift_data}{Source of drift percentage data} - -\item{crop}{Crop name (use German names for JKI data), defaults to "Ackerbau"} - -\item{distances}{The distances in m for which to get PEC values} - -\item{rate_units}{Defaults to g/ha} - -\item{PEC_units}{Requested units for the calculated PEC. Only µg/L currently supported} -} -\value{ -The predicted concentration in surface water -} -\description{ -This is a basic, vectorised form of a simple calculation of a contaminant -concentration in surface water based on complete, instantaneous mixing -with input via spray drift. -} -\examples{ -PEC_sw_drift_ini(100) -} -\author{ -Johannes Ranke -} - diff --git a/pkg/man/PEC_sw_sed.Rd b/pkg/man/PEC_sw_sed.Rd index ecd57f5..3140eb0 100644 --- a/pkg/man/PEC_sw_sed.Rd +++ b/pkg/man/PEC_sw_sed.Rd @@ -2,8 +2,8 @@ % Please edit documentation in R/PEC_sw_sed.R \name{PEC_sw_sed} \alias{PEC_sw_sed} -\title{Calculate initial predicted environmental concentrations in sediment from -surface water concentrations} +\title{Calculate predicted environmental concentrations in sediment from surface +water concentrations} \usage{ PEC_sw_sed(PEC_sw, percentage = 100, method = "percentage", sediment_depth = 5, water_depth = 30, sediment_density = 1.3, @@ -34,7 +34,7 @@ The method 'percentage' is equivalent to what is used in the CRD spreadsheet PEC calculator } \examples{ -PEC_sw_sed(PEC_sw_drift_ini(100, distances = 1), percentage = 50) +PEC_sw_sed(PEC_sw_drift(100, distances = 1), percentage = 50) } \author{ Johannes Ranke diff --git a/pkg/man/drift_data_JKI.Rd b/pkg/man/drift_data_JKI.Rd index cc27985..c193c0d 100644 --- a/pkg/man/drift_data_JKI.Rd +++ b/pkg/man/drift_data_JKI.Rd @@ -22,8 +22,6 @@ published by the German Julius-Kühn Institute (JKI). The data were extracted from the spreadsheet cited below using the R code given in the example section. The spreadsheet is not included in the package as its licence is not clear. - - } \examples{ @@ -45,6 +43,8 @@ as its licence is not clear. save(drift_data_JKI, file = "data/drift_data_JKI.RData") } +# And this is the resulting data +drift_data_JKI } \keyword{datasets} diff --git a/pkg/man/endpoint.Rd b/pkg/man/endpoint.Rd index 0ca53b1..15b3cb2 100644 --- a/pkg/man/endpoint.Rd +++ b/pkg/man/endpoint.Rd @@ -2,12 +2,29 @@ % Please edit documentation in R/endpoint.R \name{endpoint} \alias{endpoint} +\alias{soil_DT50} +\alias{soil_Kfoc} +\alias{soil_N} +\alias{soil_sorption} \title{Retrieve endpoint information from the chyaml field of a chent object} \usage{ endpoint(chent, medium = "soil", type = c("degradation", "sorption"), lab_field = c(NA, "laboratory", "field"), redox = c(NA, "aerobic", "anaerobic"), value = c("DT50ref", "Kfoc", "N"), aggregator = geomean, raw = FALSE, signif = 3) + +soil_DT50(chent, aggregator = geomean, signif = 3, + lab_field = "laboratory", value = "DT50ref", redox = "aerobic", + raw = FALSE) + +soil_Kfoc(chent, aggregator = geomean, signif = 3, value = "Kfoc", + raw = FALSE) + +soil_N(chent, aggregator = mean, signif = 3, raw = FALSE) + +soil_sorption(chent, values = c("Kfoc", "N"), aggregators = c(Kfoc = + geomean, Koc = geomean, N = mean), signif = rep(3, length(values)), + raw = FALSE) } \arguments{ \item{chent}{The \code{\link{chent}} object to get the information from} @@ -31,6 +48,10 @@ object (could be a character value) to retain original information about precision?} \item{signif}{How many significant digits do we want} + +\item{values}{The values to be returned} + +\item{aggregators}{A named vector of aggregator functions to be used} } \value{ The result from applying the aggregator function to @@ -45,4 +66,10 @@ and can hold a list of information loaded from a chemical yaml file in their chyaml field. Such information is extracted and optionally aggregated by this function. } +\details{ +The functions \code{soil_*} are functions to extract soil specific endpoints. +For the Freundlich exponent, the capital letter \code{N} is used in order to +facilitate dealing with such data in R. In pesticide fate modelling, this +exponent is often called 1/n. +} diff --git a/pkg/man/pfm_degradation.Rd b/pkg/man/pfm_degradation.Rd index 6e5ce03..9ab1d0a 100644 --- a/pkg/man/pfm_degradation.Rd +++ b/pkg/man/pfm_degradation.Rd @@ -27,7 +27,7 @@ is calculated (SFO model).} Calculate a time course of relative concentrations based on an mkinmod model } \examples{ -pfm_degradation("SFO", DT50 = 10) +head(pfm_degradation("SFO", DT50 = 10)) } \author{ Johannes Ranke diff --git a/pkg/man/plot.TOXSWA_cwa.Rd b/pkg/man/plot.TOXSWA_cwa.Rd index fdc11f5..b5f0163 100644 --- a/pkg/man/plot.TOXSWA_cwa.Rd +++ b/pkg/man/plot.TOXSWA_cwa.Rd @@ -27,7 +27,7 @@ to suspended matter?} } \description{ Plot TOXSWA hourly concentrations of a chemical substance in a specific -segment of a segment of a TOXSWA surface water body. +segment of a TOXSWA surface water body. } \examples{ H_sw_D4_pond <- read.TOXSWA_cwa("00001p_pa.cwa", diff --git a/pkg/man/soil_DT50.Rd b/pkg/man/soil_DT50.Rd deleted file mode 100644 index 89d2883..0000000 --- a/pkg/man/soil_DT50.Rd +++ /dev/null @@ -1,33 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/endpoint.R -\name{soil_DT50} -\alias{soil_DT50} -\title{Obtain soil DT50} -\usage{ -soil_DT50(chent, aggregator = geomean, signif = 3, - lab_field = "laboratory", value = "DT50ref", redox = "aerobic", - raw = FALSE) -} -\arguments{ -\item{chent}{The \code{\link{chent}} object to get the information from} - -\item{aggregator}{The aggregator function. Can be mean, -\code{\link{geomean}}, or identity, for example.} - -\item{signif}{How many significant digits do we want} - -\item{lab_field}{If not NA, do we want laboratory or field endpoints} - -\item{value}{The name of the value we want. The list given in the -usage section is not exclusive} - -\item{redox}{If not NA, are we looking for aerobic or anaerobic data} - -\item{raw}{Should the number(s) be returned as stored in the chent -object (could be a character value) to retain original information -about precision?} -} -\description{ -Obtain soil DT50 -} - diff --git a/pkg/man/soil_Kfoc.Rd b/pkg/man/soil_Kfoc.Rd deleted file mode 100644 index b8c0727..0000000 --- a/pkg/man/soil_Kfoc.Rd +++ /dev/null @@ -1,28 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/endpoint.R -\name{soil_Kfoc} -\alias{soil_Kfoc} -\title{Obtain soil Kfoc} -\usage{ -soil_Kfoc(chent, aggregator = geomean, signif = 3, value = "Kfoc", - raw = FALSE) -} -\arguments{ -\item{chent}{The \code{\link{chent}} object to get the information from} - -\item{aggregator}{The aggregator function. Can be mean, -\code{\link{geomean}}, or identity, for example.} - -\item{signif}{How many significant digits do we want} - -\item{value}{The name of the value we want. The list given in the -usage section is not exclusive} - -\item{raw}{Should the number(s) be returned as stored in the chent -object (could be a character value) to retain original information -about precision?} -} -\description{ -Obtain soil Kfoc -} - diff --git a/pkg/man/soil_N.Rd b/pkg/man/soil_N.Rd deleted file mode 100644 index 9564f82..0000000 --- a/pkg/man/soil_N.Rd +++ /dev/null @@ -1,25 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/endpoint.R -\name{soil_N} -\alias{soil_N} -\title{Obtain soil Freundlich exponent} -\usage{ -soil_N(chent, aggregator = mean, signif = 3, raw = FALSE) -} -\arguments{ -\item{chent}{The \code{\link{chent}} object to get the information from} - -\item{aggregator}{The aggregator function. Can be mean, -\code{\link{geomean}}, or identity, for example.} - -\item{signif}{How many significant digits do we want} - -\item{raw}{Should the number(s) be returned as stored in the chent -object (could be a character value) to retain original information -about precision?} -} -\description{ -In pesticide fate modelling, this exponent is often called 1/n. Here, in -order to facilitate dealing with such data in R, it is called N. -} - diff --git a/pkg/man/soil_scenario_data_EFSA_2015.Rd b/pkg/man/soil_scenario_data_EFSA_2015.Rd new file mode 100644 index 0000000..b45af4a --- /dev/null +++ b/pkg/man/soil_scenario_data_EFSA_2015.Rd @@ -0,0 +1,46 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/soil_scenario_data_EFSA_2015.R +\docType{data} +\name{soil_scenario_data_EFSA_2015} +\alias{soil_scenario_data_EFSA_2015} +\title{Properties of the predefined scenarios from the EFSA guidance from 2015} +\format{A data frame with one row for each scenario. Row names are the scenario codes, + e.g. CTN for the Northern scenario for the total concentration in soil. Columns are + mostly self-explanatory. \code{rho} is the dry bulk density of the top soil.} +\source{ +EFSA (European Food Safety Authority) (2015) +EFSA guidance document for predicting environmental concentrations +of active substances of plant protection products and transformation products of these +active substances in soil. \emph{EFSA Journal} \bold{13}(4) 4093 +doi:10.2903/j.efsa.2015.4093 +} +\description{ +Properties of the predefined scenarios used at Tier 1, Tier 2A and Tier 3A for the +concentration in soil as given in the EFSA guidance (2015, p. 13/14). Also, the +scenario and model adjustment factors from p. 15 and p. 17 are included. +} +\examples{ +\dontrun{ + # This is the code that was used to define the data + soil_scenario_data_EFSA_2015 <- data.frame( + Zone = rep(c("North", "Central", "South"), 2), + Country = c("Estonia", "Germany", "France", "Denmark", "Czech Republik", "Spain"), + T_arit = c(4.7, 8.0, 11.0, 8.2, 9.1, 12.8), + T_arr = c(7.0, 10.1, 12.3, 9.8, 11.2, 14.7), + Texture = c("Coarse", "Coarse", "Medium fine", "Medium", "Medium", "Medium"), + f_om = c(0.118, 0.086, 0.048, 0.023, 0.018, 0.011), + theta_fc = c(0.244, 0.244, 0.385, 0.347, 0.347, 0.347), + rho = c(0.95, 1.05, 1.22, 1.39, 1.43, 1.51), + f_sce = c(3, 2, 2, 2, 1.5, 1.5), + f_mod = c(2, 2, 2, 4, 4, 4), + stringsAsFactors = FALSE, + row.names = c("CTN", "CTC", "CTS", "CLN", "CLC", "CLS") + ) + save(soil_scenario_data_EFSA_2015, file = '../data/soil_scenario_data_EFSA_2015.RData') +} + +# And this is the resulting dataframe +soil_scenario_data_EFSA_2015 +} +\keyword{datasets} + diff --git a/pkg/man/soil_sorption.Rd b/pkg/man/soil_sorption.Rd deleted file mode 100644 index 5b8bd53..0000000 --- a/pkg/man/soil_sorption.Rd +++ /dev/null @@ -1,27 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/endpoint.R -\name{soil_sorption} -\alias{soil_sorption} -\title{Obtain soil sorption data} -\usage{ -soil_sorption(chent, values = c("Kfoc", "N"), aggregators = c(Kfoc = - geomean, Koc = geomean, N = mean), signif = rep(3, length(values)), - raw = FALSE) -} -\arguments{ -\item{chent}{The \code{\link{chent}} object to get the information from} - -\item{values}{The values to be returned} - -\item{aggregators}{A named vector of aggregator functions to be used} - -\item{signif}{How many significant digits do we want} - -\item{raw}{Should the number(s) be returned as stored in the chent -object (could be a character value) to retain original information -about precision?} -} -\description{ -Obtain soil sorption data -} - diff --git a/pkg/tests/testthat/test_PEC_sed.R b/pkg/tests/testthat/test_PEC_sed.R index d83be0f..443f789 100644 --- a/pkg/tests/testthat/test_PEC_sed.R +++ b/pkg/tests/testthat/test_PEC_sed.R @@ -4,6 +4,6 @@ test_that("PEC_sw_sed calculates correctly using the percentage method", { # Application of 100 g/ha, 1 m spray drift distance (2.77% drift input), 50% in sediment, # default assumptions of CRD spreadsheet (5 cm sediment depth, 1.3 kg/L sediment density) # Reference value calculated with CRD spreadsheet - PEC_sw_100_1_m <- PEC_sw_drift_ini(100, distances = 1) + PEC_sw_100_1_m <- PEC_sw_drift(100, distances = 1) expect_equivalent(round(PEC_sw_sed(PEC_sw_100_1_m, percentage = 50), 3), 2.131) }) diff --git a/pkg/tests/testthat/test_PEC_soil.R b/pkg/tests/testthat/test_PEC_soil.R index 27b2eb7..0661a52 100644 --- a/pkg/tests/testthat/test_PEC_soil.R +++ b/pkg/tests/testthat/test_PEC_soil.R @@ -3,11 +3,93 @@ context("Simple PEC soil calculations") test_that("PEC_soil calculates correctly", { # Application of 100 g/ha gives 0.133 mg/kg under default assumptions - expect_equal(PEC_soil(100), 0.1 * 4/3) + expect_equal(as.numeric(PEC_soil(100)), 0.1 * 4/3) # or 0.1 mg/kg assuming 25% interception - expect_equal(PEC_soil(100, interception = 0.25), 0.1) + expect_equal(as.numeric(PEC_soil(100, interception = 0.25)), 0.1) # Mixing depth of 1 cm gives five-fold PEC - expect_equal(PEC_soil(100, interception = 0.25, mixing_depth = 1), 0.5) + expect_equal(as.numeric(PEC_soil(100, interception = 0.25, mixing_depth = 1)), 0.5) +}) + +test_that("Tier 1 PEC soil example for Pesticide A in EFSA guidance can be reproduced", { + # Calculate total soil concentrations for tier 1 scenarios + results_pfm <- PEC_soil(1000, interval = 365, DT50 = 250, t_avg = c(0, 21), + scenarios = "EFSA_2015") + + # From Table I.5, p. 80 + results_guidance <- matrix(c(22.0, 11.5, 9.1, 21.8, 11.4, 9.0), + ncol = 3, byrow = TRUE) + dimnames(results_guidance) <- list(t_avg = c(0, 21), + scenario = c("CTN", "CTC", "CTS")) + + + expect_equal(round(results_pfm, 1), results_guidance) + + # Calculate porewater soil concentrations for tier 1 scenarios + results_pfm_pw <- PEC_soil(1000, interval = 365, DT50 = 250, t_av = c(0, 21), + Kom = 1000, scenarios = "EFSA_2015", porewater = TRUE) + + # From Table I.5, p. 80 + results_guidance_pw <- matrix(c(0.76, 0.67, 0.91, 0.75, 0.66, 0.90), + ncol = 3, byrow = TRUE) + dimnames(results_guidance_pw) <- list(t_avg = c(0, 21), + scenario = c("CLN", "CLC", "CLS")) + + expect_equal(round(results_pfm_pw, 2), results_guidance_pw) +}) + +test_that("Tier 1 PEC soil example for Pesticide F in EFSA guidance can be reproduced", { + # Parent F + # Calculate total and porewater soil concentrations for tier 1 scenarios + results_pfm <- PEC_soil(1000, interval = 365, DT50 = 25, t_avg = c(0, 21), + scenarios = "EFSA_2015") + results_pfm_pw <- PEC_soil(1000, interval = 365, DT50 = 25, t_av = c(0, 21), + Kom = 1000, scenarios = "EFSA_2015", porewater = TRUE) + + # From Table I.14, p. 88 + results_guidance <- matrix(c(12.8, 7.7, 6.6, 11.8, 6.8, 5.7), + ncol = 3, byrow = TRUE) + results_guidance_pw <- matrix(c(0.50, 0.46, 0.71, 0.45, 0.41, 0.60), + ncol = 3, byrow = TRUE) + + # Skip checking dimnames by using expect_equivalent() + expect_equivalent(round(results_pfm, 1), results_guidance) + expect_equivalent(round(results_pfm_pw, 2), results_guidance_pw) + + # Metabolite M1 + # Calculate total and porewater soil concentrations for tier 1 scenarios + # Relative molar mass is 200/300, formation fraction is 0.7 + results_pfm <- PEC_soil(200/300 * 0.7 * 1000, interval = 365, DT50 = 100, t_avg = c(0, 21), + scenarios = "EFSA_2015") + results_pfm_pw <- PEC_soil(200/300 * 0.7 * 1000, interval = 365, DT50 = 100, t_av = c(0, 21), + Kom = 10, scenarios = "EFSA_2015", porewater = TRUE) + + # From Table I.15, p. 88 + results_guidance <- matrix(c(7.27, 4.08, 3.38, 7.12, 3.97, 3.26), + ncol = 3, byrow = TRUE) + results_guidance_pw <- matrix(c(12.93, 10.42, 11.66, 12.58, 10.09, 11.15), + ncol = 3, byrow = TRUE) + + # Skip checking dimnames by using expect_equivalent() + expect_equivalent(round(results_pfm, 2), results_guidance) + expect_equivalent(round(results_pfm_pw, 2), results_guidance_pw) + + # Metabolite M2 + # Calculate total and porewater soil concentrations for tier 1 scenarios + # Relative molar mass is 100/300, formation fraction is 0.7 * 1 + results_pfm <- PEC_soil(100/300 * 0.7 * 1 * 1000, interval = 365, DT50 = 250, t_avg = c(0, 21), + scenarios = "EFSA_2015") + results_pfm_pw <- PEC_soil(100/300 * 0.7 * 1000, interval = 365, DT50 = 250, t_av = c(0, 21), + Kom = 100, scenarios = "EFSA_2015", porewater = TRUE) + + # From Table I.16, p. 89 + results_guidance <- matrix(c(5.13, 2.69, 2.13, 5.08, 2.66, 2.10), + ncol = 3, byrow = TRUE) + results_guidance_pw <- matrix(c(1.61, 1.39, 1.80, 1.60, 1.37, 1.77), + ncol = 3, byrow = TRUE) + + # Skip checking dimnames by using expect_equivalent() + expect_equivalent(round(results_pfm, 2), results_guidance) + expect_equivalent(round(results_pfm_pw, 2), results_guidance_pw) }) diff --git a/pkg/tests/testthat/test_PEC_sw_drift_ini.R b/pkg/tests/testthat/test_PEC_sw_drift.R index 2480e5c..d09d578 100644 --- a/pkg/tests/testthat/test_PEC_sw_drift_ini.R +++ b/pkg/tests/testthat/test_PEC_sw_drift.R @@ -3,11 +3,11 @@ context("Simple PEC surface water calculations with drift entry") test_that("PEC_sw_drift gives the same results as the CRD PEC calculator", { # One application of 30 g/ha to field crops calculated with UK PEC calculator published by CRD - expect_equal(round(PEC_sw_drift_ini(30), 3), + expect_equal(round(PEC_sw_drift(30), 3), c('1 m' = 0.277, '5 m' = 0.057, '10 m' = 0.029, '20 m' = 0.015)) # 7 applications of 30 g/ha to field crops calculated with UK PEC calculator, initial PEC - expect_equal(round(PEC_sw_drift_ini(30, 7), 3), + expect_equal(round(PEC_sw_drift(30, 7), 3), c('1 m' = 0.161, '5 m' = 0.033, '10 m' = 0.017, '20 m' = 0.008)) # 4 applications of 30 g/ha to late fruit crops calculated with UK PEC calculator published by CRD (uses different drift values from SANCO aquatic guidance) diff --git a/pkg/tests/testthat/test_UK_drainage.R b/pkg/tests/testthat/test_UK_drainage.R index 3a57db8..859f145 100644 --- a/pkg/tests/testthat/test_UK_drainage.R +++ b/pkg/tests/testthat/test_UK_drainage.R @@ -21,13 +21,13 @@ test_that("UK drainflow PECs are correct", { # This is the first example calculation from the data requirements handbook, where they give # 8.07 µg/L as the result (obviously a rounding error). - expect_equal(round(PEC_sw_drainage_UK_ini(150, interception = 0, Koc = 100), 4), 8.0769) + expect_equal(round(PEC_sw_drainage_UK(150, interception = 0, Koc = 100), 4), 8.0769) # This is the second example calculation from the data requirements handbook - expect_equal(round(PEC_sw_drainage_UK_ini(90, interception = 0, Koc = 10), 4), 13.1538) + expect_equal(round(PEC_sw_drainage_UK(90, interception = 0, Koc = 10), 4), 13.1538) # This is the third example calculation from the data requirements handbook, - expect_equal(round(PEC_sw_drainage_UK_ini(60, interception = 0.5, Koc = 550, - latest_application = "01 July", - soil_DT50 = 200), 2), 0.84) + expect_equal(round(PEC_sw_drainage_UK(60, interception = 0.5, Koc = 550, + latest_application = "01 July", + soil_DT50 = 200), 2), 0.84) }) |