diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..0ca1374 --- /dev/null +++ b/.classpath @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..87d3522 --- /dev/null +++ b/.project @@ -0,0 +1,60 @@ + + + MCA + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.springframework.ide.eclipse.boot.validation.springbootbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.jdt.core.javanature + org.springframework.ide.eclipse.core.springnature + egovframework.dev.imp.ide.natures.egovnature + org.eclipse.wst.jsdt.core.jsNature + + + + 1644803890467 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope new file mode 100644 index 0000000..81672d4 --- /dev/null +++ b/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..075c81e --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/webapp/WEB-INF/jsp/include/header.jsp=UTF-8 +encoding//src/main/webapp/WEB-INF/jsp/mapUseSetting.jsp=UTF-8 +encoding//src/test/java=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..26aef1a --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=enabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..8a8ed96 --- /dev/null +++ b/.settings/org.eclipse.wst.common.component @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml b/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml new file mode 100644 index 0000000..6d59853 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.prefs.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..e9fd478 --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/.settings/org.eclipse.wst.validation.prefs b/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 0000000..04cad8c --- /dev/null +++ b/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,2 @@ +disabled=06target +eclipse.preferences.version=1 diff --git a/.springBeans b/.springBeans new file mode 100644 index 0000000..83620af --- /dev/null +++ b/.springBeans @@ -0,0 +1,23 @@ + + + 1 + + + + + + + + + src/main/resources/egovframework/spring/context-idgen.xml + src/main/resources/egovframework/spring/context-sqlMap.xml + src/main/resources/egovframework/spring/context-transaction.xml + src/main/resources/egovframework/spring/context-mapper.xml + src/main/resources/egovframework/spring/context-common.xml + src/main/resources/egovframework/spring/context-properties.xml + src/main/resources/egovframework/spring/context-datasource.xml + src/main/resources/egovframework/spring/context-validator.xml + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..bbaa712 --- /dev/null +++ b/pom.xml @@ -0,0 +1,373 @@ + + + 4.0.0 + MBCA + MBCA + war + 1.0.0 + sample + http://www.egovframe.go.kr + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + 4.3.22.RELEASE + 3.9.0 + 5.0.6.RELEASE + 3.0.5 + + + + + mvn2s + https://repo1.maven.org/maven2/ + + true + + + true + + + + egovframe + http://maven.egovframe.kr:8080/maven/ + + true + + + false + + + + egovframe2 + http://www.egovframe.go.kr/maven/ + + true + + + false + + + + + + + + egovframework.rte + egovframework.rte.fdl.security + ${egovframework.rte.version} + + + + + + egovframework.rte + egovframework.rte.ptl.mvc + ${egovframework.rte.version} + + + commons-logging + commons-logging + + + + + + egovframework.rte + egovframework.rte.psl.dataaccess + ${egovframework.rte.version} + + + egovframework.rte + egovframework.rte.fdl.idgnr + ${egovframework.rte.version} + + + egovframework.rte + egovframework.rte.fdl.property + ${egovframework.rte.version} + + + + javax.servlet + servlet-api + provided + 2.5 + + + + javax.servlet + jstl + 1.2 + + + + taglibs + standard + 1.1.2 + + + + org.antlr + antlr + 3.5 + + + + org.hsqldb + hsqldb + 2.3.2 + + + + mysql + mysql-connector-java + 8.0.11 + + + + commons-dbcp + commons-dbcp + 1.4 + + + + org.projectlombok + lombok + 1.18.20 + + + + + + org.json + json + 20210307 + + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.13 + + + + com.fasterxml.jackson.core + jackson-core + 2.9.9 + + + + com.fasterxml.jackson.core + jackson-databind + 2.9.9 + + + + + com.google.code.gson + gson + 2.8.5 + + + + + org.apache.tiles + tiles-extras + ${org.apache.tiles.version} + + + org.apache.tiles + tiles-jsp + ${org.apache.tiles.version} + + + org.apache.tiles + tiles-servlet + ${org.apache.tiles.version} + + + + + + + + + + + install + ${basedir}/target + ${artifactId}-${version} + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + 80 + / + + -Xms256m -Xmx768m -XX:MaxPermSize=256m + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + UTF-8 + + + + org.codehaus.mojo + hibernate3-maven-plugin + 2.1 + + + + hbm2ddl + annotationconfiguration + + + + + + org.hsqldb + hsqldb + 2.3.2 + + + + + + org.codehaus.mojo + emma-maven-plugin + 1.0-alpha-3 + + + + org.apache.maven.plugins + maven-pmd-plugin + 3.1 + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + true + once + xml + + **/Abstract*.java + **/*Suite.java + + + **/*Test.java + + + + + org.codehaus.mojo + emma-maven-plugin + true + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + + + + ${basedir}/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.7 + + + sunlink + + javadoc + + true + + + http://docs.oracle.com/javase/6/docs/api/ + + + + + + + + org.codehaus.mojo + emma-maven-plugin + true + + + org.codehaus.mojo + surefire-report-maven-plugin + true + + + + report-only + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + 128m + 512m + ${encoding} + ${encoding} + ${encoding} + + + + + org.apache.maven.plugins + maven-jxr-plugin + + ${encoding} + ${encoding} + true + apidocs + + + + + diff --git a/src/main/java/com/mca/cmmn/mapper/AreaCodeMapper.java b/src/main/java/com/mca/cmmn/mapper/AreaCodeMapper.java new file mode 100644 index 0000000..1350cdc --- /dev/null +++ b/src/main/java/com/mca/cmmn/mapper/AreaCodeMapper.java @@ -0,0 +1,25 @@ +package com.mca.cmmn.mapper; + +import java.util.List; + +import com.mca.cmmn.vo.AreaCodeVO; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("areaCodeMapper") +public interface AreaCodeMapper { + + /** + * + * + * @param searchVO 검색, 페이지 정보 객체 + * @return 게시물 리스트 + * @throws Exception 기본 예외 처리 + */ + public List selectCity() throws Exception; + + public List selectCounty(AreaCodeVO areaCodeVO) throws Exception; + + public String selectAreaName(String places) throws Exception; + +} diff --git a/src/main/java/com/mca/cmmn/mapper/LayersMapper.java b/src/main/java/com/mca/cmmn/mapper/LayersMapper.java new file mode 100644 index 0000000..2dfa02b --- /dev/null +++ b/src/main/java/com/mca/cmmn/mapper/LayersMapper.java @@ -0,0 +1,16 @@ +package com.mca.cmmn.mapper; + +import java.util.List; + +import com.mca.cmmn.vo.LayersVO; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("layersMapper") +public interface LayersMapper { + + public LayersVO selectFacility(String layer); + + public List selectLayers(); + +} diff --git a/src/main/java/com/mca/cmmn/service/AreaCodeService.java b/src/main/java/com/mca/cmmn/service/AreaCodeService.java new file mode 100644 index 0000000..0cd496d --- /dev/null +++ b/src/main/java/com/mca/cmmn/service/AreaCodeService.java @@ -0,0 +1,48 @@ +package com.mca.cmmn.service; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.mca.cmmn.mapper.AreaCodeMapper; +import com.mca.cmmn.vo.AreaCodeVO; + +@Service("areaCodeService") +public class AreaCodeService { + + @Resource(name="areaCodeMapper") + AreaCodeMapper areaCodeMapper; + + public List selectCity() throws Exception { + // TODO Auto-generated method stub + return areaCodeMapper.selectCity(); + } + + + public List selectCounty(String code, String area) throws Exception { + // TODO Auto-generated method stub + code = code + "___"; + AreaCodeVO areaCodeVO = new AreaCodeVO(); + areaCodeVO.setCode(code); + return areaCodeMapper.selectCounty(areaCodeVO); + } + + + public String selectAreaName(String code) throws Exception{ + // TODO Auto-generated method stub + String areaName = null; + if(code.length() == 5){ + areaName = areaCodeMapper.selectAreaName(code.substring(0, 2)); + areaName = areaName + " " + areaCodeMapper.selectAreaName(code); + }else if(code.length() == 8){ + areaName = areaCodeMapper.selectAreaName(code.substring(0, 2)); + areaName = areaName + " " + areaCodeMapper.selectAreaName(code.substring(0, 5)); + areaName = areaName + " " + areaCodeMapper.selectAreaName(code); + }else { + areaName = areaCodeMapper.selectAreaName(code); + } + return areaName; + } +} diff --git a/src/main/java/com/mca/cmmn/service/LayersService.java b/src/main/java/com/mca/cmmn/service/LayersService.java new file mode 100644 index 0000000..e3e4b7a --- /dev/null +++ b/src/main/java/com/mca/cmmn/service/LayersService.java @@ -0,0 +1,27 @@ +package com.mca.cmmn.service; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.mca.cmmn.mapper.LayersMapper; +import com.mca.cmmn.vo.LayersVO; + +@Service("layersService") +public class LayersService { + + @Resource(name="layersMapper") + LayersMapper layersMapper; + + public LayersVO selectFacility(String layer) { + return layersMapper.selectFacility(layer); + } + + public List selectLayers() { + // TODO Auto-generated method stub + return layersMapper.selectLayers(); + } + +} diff --git a/src/main/java/com/mca/cmmn/vo/AreaCodeVO.java b/src/main/java/com/mca/cmmn/vo/AreaCodeVO.java new file mode 100644 index 0000000..0d19940 --- /dev/null +++ b/src/main/java/com/mca/cmmn/vo/AreaCodeVO.java @@ -0,0 +1,26 @@ +package com.mca.cmmn.vo; + +public class AreaCodeVO { + String code; + String area; + String tile_id; + + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } + public String getArea() { + return area; + } + public void setArea(String area) { + this.area = area; + } + public String getTile_id() { + return tile_id; + } + public void setTile_id(String tile_id) { + this.tile_id = tile_id; + } +} diff --git a/src/main/java/com/mca/cmmn/vo/BaseSearchVO.java b/src/main/java/com/mca/cmmn/vo/BaseSearchVO.java new file mode 100644 index 0000000..84045c7 --- /dev/null +++ b/src/main/java/com/mca/cmmn/vo/BaseSearchVO.java @@ -0,0 +1,108 @@ +package com.mca.cmmn.vo; + +public class BaseSearchVO { + + /** + * serialVersion UID + */ + private static final long serialVersionUID = -858838578081269359L; + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + public String getSearchCondition() { + return searchCondition; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchKeyword() { + return searchKeyword; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchUseYn() { + return searchUseYn; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public int getPageIndex() { + return pageIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageUnit() { + return pageUnit; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getFirstIndex() { + return firstIndex; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getLastIndex() { + return lastIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } +} diff --git a/src/main/java/com/mca/cmmn/vo/LayersVO.java b/src/main/java/com/mca/cmmn/vo/LayersVO.java new file mode 100644 index 0000000..fcdda8d --- /dev/null +++ b/src/main/java/com/mca/cmmn/vo/LayersVO.java @@ -0,0 +1,26 @@ +package com.mca.cmmn.vo; + +public class LayersVO { + private String layer; + private String name; + private String code; + + public String getLayer() { + return layer; + } + public void setLayer(String layer) { + this.layer = layer; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } +} diff --git a/src/main/java/com/mca/cmmn/web/AdminController.java b/src/main/java/com/mca/cmmn/web/AdminController.java new file mode 100644 index 0000000..7504536 --- /dev/null +++ b/src/main/java/com/mca/cmmn/web/AdminController.java @@ -0,0 +1,400 @@ +package com.mca.cmmn.web; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.mca.cmmn.service.AreaCodeService; +import com.mca.cmmn.service.LayersService; +import com.mca.cmmn.vo.LayersVO; +import com.mca.map.service.FieldDataService; +import com.mca.map.service.UseHistoryService; +import com.mca.map.service.UseRequestService; +import com.mca.map.vo.FieldDataSearchVO; +import com.mca.map.vo.FieldDataVO; +import com.mca.map.vo.UseHistorySearchVO; +import com.mca.map.vo.UseRequestSearchVO; +import com.mca.map.vo.UseRequestVO; +import com.mca.sec.UserUtil; +import com.mca.sec.vo.LoginUserVO; +import com.mca.user.service.UserService; +import com.mca.user.vo.UserSearchVO; +import com.mca.user.vo.UserVO; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +@Controller +@RequestMapping("/admin") +public class AdminController { + + /** + * properties값을 가져오는 인터페이스. + **/ + @Resource(name="propertiesService") + private EgovPropertyService propertiesService; + + @Resource(name="useRequestService") + private UseRequestService useRequestService; + + @Resource(name="useHistoryService") + private UseHistoryService useHistoryService; + + @Resource(name="areaCodeService") + private AreaCodeService areaCodeService; + + @Resource(name="layersService") + private LayersService layersService; + + @Resource(name="userService") + private UserService userService; + + @Resource(name="fieldDataService") + private FieldDataService fieldDataService; + + + /** + * 지도 사용요청 목록을 반환한다. + * + * @param useRequestSearchVO 지도사용요청 검색, 페이지 정보 객체 + * @param model 모델 객체 + * @return 지도사용요청 목록 화면 + * @throws + */ + @RequestMapping("/request") + public String reqList(@ModelAttribute("UseRequestSearchVO") UseRequestSearchVO useRequestSearchVO, Model model) throws Exception { + try { + useRequestSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + useRequestSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(useRequestSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(useRequestSearchVO.getPageUnit()); + paginationInfo.setPageSize(useRequestSearchVO.getPageSize()); + + useRequestSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + useRequestSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + useRequestSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List userList = useRequestService.selectUseRequestList(useRequestSearchVO); + int count = useRequestService.selectUseRequestCnt(useRequestSearchVO); + int statusCnt = useRequestService.selectUseRequeststatusCnt(); + + paginationInfo.setTotalRecordCount(count); + + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("useRequestList", userList); + model.addAttribute("useRequestSearchVO", useRequestSearchVO); + model.addAttribute("count", count); + model.addAttribute("statusCnt", statusCnt); + + return "admin/request"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 지도 사용요청 상세화면을 반환한다. + * + * @param idx 지도사용요청 Primary Key + * @param model 모델 객체 + * @return 지도사용요청 상세 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping("/request/{idx}") + public String reqDetail(@PathVariable int idx, Model model) throws Exception{ + try { + LoginUserVO loginUserVO = UserUtil.getMemberInfo(); + + UseRequestVO useRequestVO = useRequestService.selectUseRequest(idx); + useRequestVO = useRequestService.selectUseRequest(idx); + UserVO userVO = userService.selectUserInfo(useRequestVO.getUserid()); + + String layers[] = useRequestVO.getLayers().split(","); + String places[] = useRequestVO.getPlaces().split(","); + + ArrayList selectArea = new ArrayList(); + for(int i=0;i layersVO = layersService.selectLayers(); + model.addAttribute("loginUserVO", loginUserVO); + model.addAttribute("userVO", userVO); + model.addAttribute("useRequestVO", useRequestVO); + model.addAttribute("selectArea", selectArea); + model.addAttribute("layers", layers); + model.addAttribute("layersVO", layersVO); + return "admin/requestView"; + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 지도사용이력 목록을 반환한다. + * + * @param useHistorySearchVO 지도사용이력 검색, 페이지 정보 객체 + * @param model 모델 객체 + * @return 지도사용요청 목록 화면 + * @throws + */ + @RequestMapping("/history") + public String history(@ModelAttribute("UseHistorySearchVO") UseHistorySearchVO useHistorySearchVO, Model model) throws Exception { + try { + useHistorySearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + useHistorySearchVO.setPageSize(propertiesService.getInt("pageSize")); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(useHistorySearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(useHistorySearchVO.getPageUnit()); + paginationInfo.setPageSize(useHistorySearchVO.getPageSize()); + + useHistorySearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + useHistorySearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + useHistorySearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List useHistoryList = useHistoryService.selectUseHistoryList(useHistorySearchVO); + int count = useHistoryService.selectUseHistoryCnt(useHistorySearchVO); + + paginationInfo.setTotalRecordCount(count); + + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("useHistoryList", useHistoryList); + model.addAttribute("useHistorySearchVO", useHistorySearchVO); + model.addAttribute("count", count); + + return "admin/history"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 지도사용요청 승인/거절 처리한다. + * + * @param useRequestVO 지도사용요청 VO + * @param model 모델 객체 + * @return 지도사용요청 목록 화면 + * @throws + */ + @RequestMapping("/updateReqConfirm") + public String updateReqConfirm(@ModelAttribute("useRequestVO") UseRequestVO useRequestVO, Model model) throws Exception { + try { + useRequestService.updateReqConfirm(useRequestVO); + String resultMsg; + if(useRequestVO.getStatus().equals("0")) { + resultMsg = "지도사용요청 승인 처리가 되었습니다."; + }else { + resultMsg = "지도사용요청 거절 처리가 되었습니다."; + } + + model.addAttribute("url", "/admin/request"); + model.addAttribute("resultMsg", resultMsg); + return "/redirect"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 사용자관리 목록을 반환한다. + * + * @param userSearchVO 사용자정보 검색 VO + * @param model 모델 객체 + * @return 사용자관리 목록 화면 + * @throws + */ + @RequestMapping("/userInfo") + public String userInfo(@ModelAttribute("UserSearchVO") UserSearchVO userSearchVO, Model model) throws Exception { + try { + userSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + userSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit()); + paginationInfo.setPageSize(userSearchVO.getPageSize()); + + userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List userList = userService.selectUserList(userSearchVO); + int count = userService.selectUserCount(userSearchVO); + int standByCount = userService.selectUserStandByCount(); + + paginationInfo.setTotalRecordCount(count); + + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("userList", userList); + model.addAttribute("userSearchVO", userSearchVO); + model.addAttribute("count", count); + model.addAttribute("standByCount", standByCount); + + return "admin/userInfo"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 사용자관리 상세화면을 반환한다. + * + * @param userid 사용자정보 ID + * @param model 모델 객체 + * @return 사용자관리 상세 화면 + * @throws + */ + @RequestMapping("/userInfo/{userid}") + public String userInfoView(@PathVariable String userid, Model model) throws Exception { + try { + UserVO userVO = userService.selectUserInfo(userid); + model.addAttribute("userVO", userVO); + + return "admin/userInfoView"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 사용자정보를 수정한다. + * + * @param req Request 객체 + * @param model 모델 객체 + * @param userVO 사용자정보 VO + * @return 사용자관리 목록 화면 + * @throws + */ + @RequestMapping("/userUpdate") + public String userUpdate(HttpServletRequest req, Model model, UserVO userVO) throws Exception { + try { + userService.updateUser(userVO); + model.addAttribute("url", "/admin/userInfo"); + model.addAttribute("resultMsg", "수정되었습니다."); + return "/redirect"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 사용자를 승인/거절 처리한다. + * + * @param userVO 사용자정보 VO + * @param model 모델 객체 + * @return 사용자관리 목록 화면 + * @throws + */ + @RequestMapping("/userSign") + public String userSign(@ModelAttribute("userVO") UserVO userVO, Model model) throws Exception { + try { + String resultMsg = null; + if(userVO.getAuth() == 2) { + userService.updateUserSign(userVO.getUserid()); + resultMsg = "승인 처리 되었습니다."; + }else { + userService.updateUserDelete(userVO.getUserid()); + resultMsg = "삭제 처리 되었습니다."; + } + + model.addAttribute("url", "/admin/userInfo?auth=99"); + model.addAttribute("resultMsg", resultMsg); + return "/redirect"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 현장수집데이터 목록을 반환한다. + * + * @param fieldDataSearchVO 현장수집데이터 검색 VO + * @param model 모델 객체 + * @return 현장수집데이터 목록 화면 + * @throws + */ + @RequestMapping("/fieldData") + public String fieldData(@ModelAttribute("FieldDataSearchVO") FieldDataSearchVO fieldDataSearchVO, Model model) throws Exception { + try { + fieldDataSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + fieldDataSearchVO.setPageSize(propertiesService.getInt("pageSize")); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(fieldDataSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(fieldDataSearchVO.getPageUnit()); + paginationInfo.setPageSize(fieldDataSearchVO.getPageSize()); + + fieldDataSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + fieldDataSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + fieldDataSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List fieldDataList = fieldDataService.selectFieldDataList(fieldDataSearchVO); + int count = fieldDataService.selectFieldDataCnt(fieldDataSearchVO); + + + paginationInfo.setTotalRecordCount(count); + + model.addAttribute("fieldDataList", fieldDataList); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("fieldDataSearchVO", fieldDataSearchVO); + model.addAttribute("count", count); + + return "admin/fieldData"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 현장수집데이터 상세화면을 반환한다. + * + * @param id 현장수집데이터 id + * @param model 모델 객체 + * @return 현장수집데이터 상세 화면 + * @throws + */ + @RequestMapping("/fieldData/{id}") + public String fieldData(@PathVariable String id, Model model) throws Exception { + try { + FieldDataVO fieldDataVO = fieldDataService.selectFieldData(id); + UserVO userVO = userService.selectUserInfo(fieldDataVO.getUserid()); + + model.addAttribute("fieldDataVO", fieldDataVO); + model.addAttribute("userVO", userVO); + return "admin/fieldView"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } +} diff --git a/src/main/java/com/mca/cmmn/web/CommonController.java b/src/main/java/com/mca/cmmn/web/CommonController.java new file mode 100644 index 0000000..5459686 --- /dev/null +++ b/src/main/java/com/mca/cmmn/web/CommonController.java @@ -0,0 +1,175 @@ +package com.mca.cmmn.web; + +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpSession; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.mca.cmmn.service.AreaCodeService; +import com.mca.user.service.UserService; +import com.mca.user.vo.UserVO; + +import egovframework.rte.fdl.property.EgovPropertyService; + +@Controller +public class CommonController { + + + /** + * properties값을 가져오는 인터페이스. + **/ + @Resource(name="propertiesService") + private EgovPropertyService propertiesService; + + @Resource(name="userService") + private UserService userService; + + @Resource(name="areaCodeService") + private AreaCodeService areaCodeService; + + + /** + * 로그인 화면을 반환한다. + * + * @param error 로그인 실패정보 + * @param fail 사용자 인증정보 + * @return 로그인화면 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/login") + public String login(String error, String fail, Model model) throws Exception{ + try { + if(error != null) { + model.addAttribute("errMsg", "접속자 정보를 찾을 수 없습니다."); + } + if(fail != null) { + model.addAttribute("errMsg", "승인 처리중입니다."); + } + return "login"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 로그아웃처리를 한다 + * + * @param session 세션 객체 + * @param model 모델 객체 + * @return 로그인 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/logout") + public String logout(HttpSession session, Model model) throws Exception { + try { + session.removeAttribute("id"); + session.removeAttribute("admin"); + model.addAttribute("url", "/"); + model.addAttribute("resultMsg", "로그아웃 되었습니다."); + return "/redirect"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 회원가입 화면을 반환한다. + * @return 회원가입 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/join") + public String join() throws Exception { + try { + return "join"; + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 아이디 중복 체크를 한다. + * @param checkId 입력 아이디값 + * @return 성공, 실패 여부 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/userIdCheck") + @ResponseBody + public String checkId(@RequestParam("checkId")String checkId) throws Exception { + try { + int cnt = userService.selectUserIdCheck(checkId); + if(cnt > 0) { + return "duplicate"; + }else { + return "ok"; + } + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 사용자 등록 처리를 한다. + * @param userVO 사용자정보 VO + * @param model 모델 객체 + * @return 로그인 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/insertUser") + public String userInsert(@ModelAttribute("userVO") UserVO userVO, Model model) throws Exception { + try { + int result = userService.insertUser(userVO); + if(result == 0) { + model.addAttribute("url", "/"); + model.addAttribute("resultMsg", "회원가입이 완료 되었습니다. 승인을 기다려주세요."); + return "/redirect"; + }else { + model.addAttribute("resultMsg", "오류가 발생하였습니다."); + return "/join"; + } + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 지역 리스트 가져온다. + * @param code 법정동 코드 + * @param area 지역이름 + * @return 선택된 지역 리스트 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/selectAreaList") + @ResponseBody + public List selectAreaList(@RequestParam("code")String code, @RequestParam("area")String area) throws Exception { + List countyList = areaCodeService.selectCounty(code, area); + return countyList; + } + + /** + * 권한이 없는 사용자가 접근시 권한제한 화면으로 이동한다. + * + * @return 권한없음 페이지 + * @exception Exception 기본 예외 처리 + */ + @RequestMapping("/error/EgovAccessDenied") + public String accessDenied() throws Exception { + return "error/EgovAccessDenied"; + } +} diff --git a/src/main/java/com/mca/cmmn/web/MapController.java b/src/main/java/com/mca/cmmn/web/MapController.java new file mode 100644 index 0000000..5da997f --- /dev/null +++ b/src/main/java/com/mca/cmmn/web/MapController.java @@ -0,0 +1,264 @@ +package com.mca.cmmn.web; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.mca.cmmn.service.AreaCodeService; +import com.mca.cmmn.service.LayersService; +import com.mca.cmmn.vo.LayersVO; +import com.mca.map.service.UseRequestService; +import com.mca.map.vo.UseRequestSearchVO; +import com.mca.map.vo.UseRequestVO; +import com.mca.sec.UserUtil; +import com.mca.sec.vo.LoginUserVO; +import com.mca.user.service.UserService; +import com.mca.user.vo.UserVO; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +@Controller +@RequestMapping("/map") +public class MapController { + + private static final Logger logger = LoggerFactory.getLogger(MapController.class); + + /** + * properties값을 가져오는 인터페이스. + **/ + @Resource(name="propertiesService") + private EgovPropertyService propertiesService; + + @Resource(name="useRequestService") + private UseRequestService useRequestService; + + @Resource(name="areaCodeService") + private AreaCodeService areaCodeService; + + @Resource(name="layersService") + private LayersService layersService; + + @Resource(name="userService") + private UserService userService; + + + /** + * 지도 사용요청 목록을 반환한다. + * + * @param useRequestSearchVO 지도사용요청 검색, 페이지 정보 객체 + * @param request Request 객체 + * @param model 모델 객체 + * @return 지도사용요청 목록 화면 + * @throws + */ + @RequestMapping("/request") + public String reqList(@ModelAttribute("UseRequestSearchVO") UseRequestSearchVO useRequestSearchVO, HttpServletRequest req, Model model) throws Exception { + + LoginUserVO user = (LoginUserVO) req.getSession().getAttribute("userVO"); + + useRequestSearchVO.setPageUnit(propertiesService.getInt("pageUnit")); + useRequestSearchVO.setPageSize(propertiesService.getInt("pageSize")); + useRequestSearchVO.setUserid(user.getUserid()); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(useRequestSearchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(useRequestSearchVO.getPageUnit()); + paginationInfo.setPageSize(useRequestSearchVO.getPageSize()); + + useRequestSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + useRequestSearchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + useRequestSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List useRequestList = useRequestService.selectUseRequestList(useRequestSearchVO); + int count = useRequestService.selectUseRequestCnt(useRequestSearchVO); + + paginationInfo.setTotalRecordCount(count); + + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("useRequestList", useRequestList); + model.addAttribute("useRequestSearchVO", useRequestSearchVO); + model.addAttribute("count", count); + + return "map/request"; + } + + + /** + * 지도 사용요청 상세화면을 반환한다. + * + * @param idx 지도사용요청 Primary Key + * @param model 모델 객체 + * @return 지도사용요청 상세 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping("/request/{idx}") + public String reqDetail(@PathVariable int idx, Model model) throws Exception { + try { + List cityList = areaCodeService.selectCity(); + UseRequestVO useRequestVO = useRequestService.selectUseRequest(idx); + + if(UserUtil.isEqualMember(useRequestVO.getUserid())) { + String layers[] = useRequestVO.getLayers().split(","); + String places[] = useRequestVO.getPlaces().split(","); + + List selectArea = new ArrayList(); + for(int i=0;i map = new HashMap(); + map.put("name", areaCodeService.selectAreaName(places[i])); + map.put("code", places[i]); + selectArea.add(map); + } + + List layersVO = layersService.selectLayers(); + + model.addAttribute("useRequestVO", useRequestVO); + model.addAttribute("selectArea", selectArea); + model.addAttribute("cityList", cityList); + model.addAttribute("layers", layers); + model.addAttribute("layersVO", layersVO); + + return "map/requestView"; + }else { + model.addAttribute("url", "/map/request"); + model.addAttribute("resultMsg", "권한이 없습니다."); + return "/redirect"; + } + } catch (Exception e) { + e.printStackTrace(); + return "error/EgovServerError"; + } + } + + /** + * 지도 사용요청을 등록한다. + * + * @param useRequestVO 지도사용요청 VO + * @param req request 객체 + * @param model 모델 객체 + * @return 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/insertReq") + public String insertReq(@ModelAttribute("useRequestVO") UseRequestVO useRequestVO, HttpServletRequest req, Model model) throws Exception { + + LoginUserVO user = (LoginUserVO) req.getSession().getAttribute("userVO"); + useRequestVO.setUserid(user.getUserid()); + useRequestService.insertReq(useRequestVO); + + model.addAttribute("url", "/map/request"); + model.addAttribute("resultMsg", "지도사용요청 신청이 완료되었습니다. 승인을 기다려주세요."); + return "/redirect"; + } + + + /** + * 지도 사용요청을 수정한다. + * + * @param useRequestVO 지도사용요청 VO + * @param model 모델 객체 + * @return 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/updateReq" ) + public String updateReq(@ModelAttribute("useRequestVO") UseRequestVO useRequestVO, Model model) throws Exception { + + useRequestService.updateReq(useRequestVO); + + model.addAttribute("url", "/map/request"); + model.addAttribute("resultMsg", "지도사용요청 수정이 완료되었습니다. 승인을 기다려주세요."); + return "/redirect"; + } + + /** + * 지도 사용요청을 삭제한다. + * + * @param useRequestVO 지도사용요청 VO + * @param model 모델 객체 + * @return 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/deleteReq" ) + public String deleteReq(@ModelAttribute("useRequestVO") UseRequestVO useRequestVO, Model model) throws Exception { + + useRequestService.deleteReq(useRequestVO.getIdx()); + + model.addAttribute("url", "/map/reqList"); + model.addAttribute("resultMsg", "지도사용요청이 취소되었습니다.."); + return "/redirect"; + } + + /** + * 지도 사용요청 등록화면을 반환한다. + * + * @param model 모델 객체 + * @return 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping(value="/reqWrite") + public String reqWrite(Model model) throws Exception { + try { + List cityList = areaCodeService.selectCity(); + List layersVO = layersService.selectLayers(); + + model.addAttribute("layersVO", layersVO); + model.addAttribute("cityList", cityList); + return "map/requestWrite"; + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return "map/requestWrite"; + } + } + + /** + * 사용자 목록화면을 반환한다. + * + * @param model 모델 객체 + * @param req Request 객체 + * @return 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping("/userInfo") + public String userInfo(HttpServletRequest req, Model model) throws Exception { + + LoginUserVO loginUserVO = (LoginUserVO) req.getSession().getAttribute("userVO"); + UserVO userVO = userService.selectUserInfo(loginUserVO.getUserid()); + + model.addAttribute("userVO", userVO); + + return "map/userInfo"; + } + + /** + * 사용자정보를 수정한다. + * + * @param req Request 객체 + * @param model 모델 객체 + * @param userVO 사용자정보 VO + * @return 목록 화면 + * @throws Exception 기본 예외 처리 + */ + @RequestMapping("/userUpdate") + public String userUpdate(HttpServletRequest req, Model model, UserVO userVO) throws Exception { + + userService.updateUser(userVO); + + model.addAttribute("url", "/map/userInfo"); + model.addAttribute("resultMsg", "수정되었습니다."); + return "/redirect"; + } + + +} diff --git a/src/main/java/com/mca/map/mapper/FieldDataMapper.java b/src/main/java/com/mca/map/mapper/FieldDataMapper.java new file mode 100644 index 0000000..4c761ad --- /dev/null +++ b/src/main/java/com/mca/map/mapper/FieldDataMapper.java @@ -0,0 +1,18 @@ +package com.mca.map.mapper; + +import java.util.List; + +import com.mca.map.vo.FieldDataSearchVO; +import com.mca.map.vo.FieldDataVO; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("fieldDataMapper") +public interface FieldDataMapper { + + List selectFieldDataList(FieldDataSearchVO fieldDataSearchVO); + + int selectFieldDataCnt(FieldDataSearchVO fieldDataSearchVO); + + FieldDataVO selectFieldData(String id); +} diff --git a/src/main/java/com/mca/map/mapper/UseHistoryMapper.java b/src/main/java/com/mca/map/mapper/UseHistoryMapper.java new file mode 100644 index 0000000..1dacee7 --- /dev/null +++ b/src/main/java/com/mca/map/mapper/UseHistoryMapper.java @@ -0,0 +1,15 @@ +package com.mca.map.mapper; + +import java.util.List; + +import com.mca.map.vo.UseHistorySearchVO; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("useHistoryMapper") +public interface UseHistoryMapper { + + List selectUseHistoryList(UseHistorySearchVO useHistorySearchVO); + + int selectUseHistoryCnt(UseHistorySearchVO useHistorySearchVO); +} diff --git a/src/main/java/com/mca/map/mapper/UseReqeustMapper.java b/src/main/java/com/mca/map/mapper/UseReqeustMapper.java new file mode 100644 index 0000000..5e9a94d --- /dev/null +++ b/src/main/java/com/mca/map/mapper/UseReqeustMapper.java @@ -0,0 +1,29 @@ +package com.mca.map.mapper; + +import java.util.List; + +import com.mca.map.vo.UseRequestSearchVO; +import com.mca.map.vo.UseRequestVO; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("useReqeustMapper") +public interface UseReqeustMapper { + + + public int selectUseRequestCnt(UseRequestSearchVO useRequestSearchVO); + + public List selectUseRequestList(UseRequestSearchVO useRequestSearchVO); + + public void insertReq(UseRequestVO useRequestVO); + + public UseRequestVO selectUseRequest(int idx); + + public void updateReq(UseRequestVO useRequestVO); + + public void deleteReq(int idx); + + public void updateReqConfirm(UseRequestVO useRequestVO); + + public int selectUseRequeststatusCnt(); +} diff --git a/src/main/java/com/mca/map/service/FieldDataService.java b/src/main/java/com/mca/map/service/FieldDataService.java new file mode 100644 index 0000000..24c63c6 --- /dev/null +++ b/src/main/java/com/mca/map/service/FieldDataService.java @@ -0,0 +1,34 @@ +package com.mca.map.service; + + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.mca.map.mapper.FieldDataMapper; +import com.mca.map.vo.FieldDataSearchVO; +import com.mca.map.vo.FieldDataVO; + +@Service("fieldDataService") +public class FieldDataService { + + @Resource(name="fieldDataMapper") + FieldDataMapper fieldDataMapper; + + public List selectFieldDataList(FieldDataSearchVO fieldDataSearchVO) { + // TODO Auto-generated method stub + return fieldDataMapper.selectFieldDataList(fieldDataSearchVO); + } + + public int selectFieldDataCnt(FieldDataSearchVO fieldDataSearchVO) { + // TODO Auto-generated method stub + return fieldDataMapper.selectFieldDataCnt(fieldDataSearchVO); + } + + public FieldDataVO selectFieldData(String id) { + // TODO Auto-generated method stub + return fieldDataMapper.selectFieldData(id); + } +} diff --git a/src/main/java/com/mca/map/service/UseHistoryService.java b/src/main/java/com/mca/map/service/UseHistoryService.java new file mode 100644 index 0000000..fe1a7b8 --- /dev/null +++ b/src/main/java/com/mca/map/service/UseHistoryService.java @@ -0,0 +1,27 @@ +package com.mca.map.service; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; +import com.mca.map.mapper.UseHistoryMapper; +import com.mca.map.vo.UseHistorySearchVO; + +@Service("useHistoryService") +public class UseHistoryService { + + @Resource(name="useHistoryMapper") + UseHistoryMapper useHistoryMapper; + + + public int selectUseHistoryCnt(UseHistorySearchVO useHistorySearchVO) { + // TODO Auto-generated method stub + return useHistoryMapper.selectUseHistoryCnt(useHistorySearchVO); + } + + public List selectUseHistoryList(UseHistorySearchVO useHistorySearchVO) { + // TODO Auto-generated method stub + return useHistoryMapper.selectUseHistoryList(useHistorySearchVO); + } +} diff --git a/src/main/java/com/mca/map/service/UseRequestService.java b/src/main/java/com/mca/map/service/UseRequestService.java new file mode 100644 index 0000000..61b0927 --- /dev/null +++ b/src/main/java/com/mca/map/service/UseRequestService.java @@ -0,0 +1,63 @@ +package com.mca.map.service; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.mca.map.mapper.UseReqeustMapper; +import com.mca.map.vo.UseRequestSearchVO; +import com.mca.map.vo.UseRequestVO; + +@Service("useRequestService") +public class UseRequestService { + + @Resource(name="useReqeustMapper") + UseReqeustMapper useReqeustMapper; + + public List selectUseRequestList(UseRequestSearchVO useRequestSearchVO) { + // TODO Auto-generated method stub + return useReqeustMapper.selectUseRequestList(useRequestSearchVO); + } + + public int selectUseRequestCnt(UseRequestSearchVO useRequestSearchVO) { + // TODO Auto-generated method stub + return useReqeustMapper.selectUseRequestCnt(useRequestSearchVO); + } + + public void insertReq(UseRequestVO useRequestVO) { + // TODO Auto-generated method stub + useReqeustMapper.insertReq(useRequestVO); + } + + public UseRequestVO selectUseRequest(int idx) { + // TODO Auto-generated method stub + return useReqeustMapper.selectUseRequest(idx); + } + + public void updateReq(UseRequestVO useRequestVO) { + // TODO Auto-generated method stub + useReqeustMapper.updateReq(useRequestVO); + } + + public void deleteReq(int idx) { + // TODO Auto-generated method stub + useReqeustMapper.deleteReq(idx); + } + + public void updateReqConfirm(UseRequestVO useRequestVO) { + // TODO Auto-generated method stub + useReqeustMapper.updateReqConfirm(useRequestVO); + } + + public int selectUseRequeststatusCnt() { + // TODO Auto-generated method stub + return useReqeustMapper.selectUseRequeststatusCnt(); + } + + + + + +} diff --git a/src/main/java/com/mca/map/vo/FieldDataSearchVO.java b/src/main/java/com/mca/map/vo/FieldDataSearchVO.java new file mode 100644 index 0000000..ae7ce84 --- /dev/null +++ b/src/main/java/com/mca/map/vo/FieldDataSearchVO.java @@ -0,0 +1,7 @@ +package com.mca.map.vo; + +import com.mca.cmmn.vo.BaseSearchVO; + +public class FieldDataSearchVO extends BaseSearchVO{ + +} \ No newline at end of file diff --git a/src/main/java/com/mca/map/vo/FieldDataVO.java b/src/main/java/com/mca/map/vo/FieldDataVO.java new file mode 100644 index 0000000..d1ddcc3 --- /dev/null +++ b/src/main/java/com/mca/map/vo/FieldDataVO.java @@ -0,0 +1,85 @@ +package com.mca.map.vo; + +import com.mca.user.vo.UserVO; + +public class FieldDataVO { + private String id; + private String userid; + private String save_date; + private String data_path; + private String layer_id; + private String field_data; + private String region; + private String description; + private String status; + private String err_note; + + private UserVO userVO; + + public UserVO getUserVO() { + return userVO; + } + public void setUserVO(UserVO userVO) { + this.userVO = userVO; + } + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } + public String getSave_date() { + return save_date; + } + public void setSave_date(String save_date) { + this.save_date = save_date; + } + public String getData_path() { + return data_path; + } + public void setData_path(String data_path) { + this.data_path = data_path; + } + public String getLayer_id() { + return layer_id; + } + public void setLayer_id(String layer_id) { + this.layer_id = layer_id; + } + public String getField_data() { + return field_data; + } + public void setField_data(String field_data) { + this.field_data = field_data; + } + public String getRegion() { + return region; + } + public void setRegion(String region) { + this.region = region; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } + public String getErr_note() { + return err_note; + } + public void setErr_note(String err_note) { + this.err_note = err_note; + } +} diff --git a/src/main/java/com/mca/map/vo/UseHistorySearchVO.java b/src/main/java/com/mca/map/vo/UseHistorySearchVO.java new file mode 100644 index 0000000..9da91df --- /dev/null +++ b/src/main/java/com/mca/map/vo/UseHistorySearchVO.java @@ -0,0 +1,29 @@ +package com.mca.map.vo; + +import com.mca.cmmn.vo.BaseSearchVO; + +public class UseHistorySearchVO extends BaseSearchVO{ + + private String userid; + private String company; + private String area; + + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } + public String getCompany() { + return company; + } + public void setCompany(String company) { + this.company = company; + } + public String getArea() { + return area; + } + public void setArea(String area) { + this.area = area; + } +} \ No newline at end of file diff --git a/src/main/java/com/mca/map/vo/UseHistoryVO.java b/src/main/java/com/mca/map/vo/UseHistoryVO.java new file mode 100644 index 0000000..f828d42 --- /dev/null +++ b/src/main/java/com/mca/map/vo/UseHistoryVO.java @@ -0,0 +1,50 @@ +package com.mca.map.vo; + +public class UseHistoryVO { + private String logDate; + private String reqArea; + // private String content; + private String userid; + private String name; + private String company; + + public String getLogDate() { + return logDate; + } + + public void setLogDate(String logDate) { + this.logDate = logDate; + } + + public String getReqArea() { + return reqArea; + } + + public void setReqArea(String reqArea) { + this.reqArea = reqArea; + } + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } +} diff --git a/src/main/java/com/mca/map/vo/UseRequestSearchVO.java b/src/main/java/com/mca/map/vo/UseRequestSearchVO.java new file mode 100644 index 0000000..10203fc --- /dev/null +++ b/src/main/java/com/mca/map/vo/UseRequestSearchVO.java @@ -0,0 +1,36 @@ +package com.mca.map.vo; + +import com.mca.cmmn.vo.BaseSearchVO; + +public class UseRequestSearchVO extends BaseSearchVO{ + + private String userid; + private String company; + private String area; + private String status; + + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } + public String getCompany() { + return company; + } + public void setCompany(String company) { + this.company = company; + } + public String getArea() { + return area; + } + public void setArea(String area) { + this.area = area; + } + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } +} diff --git a/src/main/java/com/mca/map/vo/UseRequestVO.java b/src/main/java/com/mca/map/vo/UseRequestVO.java new file mode 100644 index 0000000..75481e2 --- /dev/null +++ b/src/main/java/com/mca/map/vo/UseRequestVO.java @@ -0,0 +1,113 @@ +package com.mca.map.vo; + +public class UseRequestVO { + private int idx; + private String title; + private String status; + private String s_date; + private String e_date; + private String r_date; + private String places; + private String layers; + private String tile_id; + private String userid; + private String user_msg; + private String admin_id; + private String admin_msg; + + private String name; + private String company; + + public int getIdx() { + return idx; + } + public void setIdx(int idx) { + this.idx = idx; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } + public String getS_date() { + return s_date; + } + public void setS_date(String s_date) { + this.s_date = s_date; + } + public String getE_date() { + return e_date; + } + public void setE_date(String e_date) { + this.e_date = e_date; + } + public String getR_date() { + return r_date; + } + public void setR_date(String r_date) { + this.r_date = r_date; + } + public String getPlaces() { + return places; + } + public void setPlaces(String places) { + this.places = places; + } + public String getLayers() { + return layers; + } + public void setLayers(String layers) { + this.layers = layers; + } + public String getTile_id() { + return tile_id; + } + public void setTile_id(String tile_id) { + this.tile_id = tile_id; + } + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } + public String getUser_msg() { + return user_msg; + } + public void setUser_msg(String user_msg) { + this.user_msg = user_msg; + } + public String getAdmin_id() { + return admin_id; + } + public void setAdmin_id(String admin_id) { + this.admin_id = admin_id; + } + public String getAdmin_msg() { + return admin_msg; + } + public void setAdmin_msg(String admin_msg) { + this.admin_msg = admin_msg; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getCompany() { + return company; + } + public void setCompany(String company) { + this.company = company; + } + + +} diff --git a/src/main/java/com/mca/sec/LoginSuccessHandler.java b/src/main/java/com/mca/sec/LoginSuccessHandler.java new file mode 100644 index 0000000..7a5ce35 --- /dev/null +++ b/src/main/java/com/mca/sec/LoginSuccessHandler.java @@ -0,0 +1,47 @@ +package com.mca.sec; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; + +import com.mca.sec.vo.LoginUserVO; +import com.mca.sec.UserUtil; + +public class LoginSuccessHandler implements AuthenticationSuccessHandler{ + private String roleName; + + @Override + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, + Authentication authentication) throws IOException, ServletException { + // TODO Auto-generated method stub + + LoginUserVO user = UserUtil.getMemberInfo(); + + HttpSession session = request.getSession(); + session.setAttribute("userVO", user); + + LoginSuccessHandler loginSuccessHandler = new LoginSuccessHandler(); + authentication.getAuthorities().forEach(authority ->{ + loginSuccessHandler.roleName = authority.getAuthority(); + }); + + if(loginSuccessHandler.roleName.equals("ROLE_USER")) { + response.sendRedirect("/map/request"); + return; + }else if(loginSuccessHandler.roleName.equals("ROLE_ADMIN")) { + response.sendRedirect("/admin/request"); + return; + }else if(loginSuccessHandler.roleName.equals("ROLE_DISABLE")) { + response.sendRedirect("/login?fail"); + return; + } + response.sendRedirect("/"); + } + +} diff --git a/src/main/java/com/mca/sec/LogoutSuccessHandler.java b/src/main/java/com/mca/sec/LogoutSuccessHandler.java new file mode 100644 index 0000000..05cef44 --- /dev/null +++ b/src/main/java/com/mca/sec/LogoutSuccessHandler.java @@ -0,0 +1,25 @@ +package com.mca.sec; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; + +public class LogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler{ + + private String successUrl = "/"; + + public void setSuccessUrl(String successUrl){ + this.successUrl = successUrl; + } + + public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { + setDefaultTargetUrl(successUrl); + super.onLogoutSuccess(request, response, authentication); + } + +} diff --git a/src/main/java/com/mca/sec/UserUtil.java b/src/main/java/com/mca/sec/UserUtil.java new file mode 100644 index 0000000..e51d99e --- /dev/null +++ b/src/main/java/com/mca/sec/UserUtil.java @@ -0,0 +1,31 @@ +package com.mca.sec; + +import com.mca.sec.vo.LoginUserVO; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +public class UserUtil { + + /** + * 현재 로그인 상태인 회원의 정보를 반환한다. 로그인 상태가 아니면 null값을 반환한다. + * @return loginUserVO 회원 정보 + */ + public static LoginUserVO getMemberInfo() { + return (LoginUserVO) EgovUserDetailsHelper.getAuthenticatedUser(); + } + + /** + * 현재 로그인 상태인 회원과 선택한 회원이 동일한지 확인한다. + * @return boolean + */ + public static boolean isEqualMember(String target) { + LoginUserVO member = getMemberInfo(); + if (getMemberInfo() != null) { + if(member.getUserid().equals(target)){ + return true; + } else{ + return false; + } + } else { + return false; + } + } +} diff --git a/src/main/java/com/mca/sec/mapper/SecurityMapper.java b/src/main/java/com/mca/sec/mapper/SecurityMapper.java new file mode 100644 index 0000000..ea639f8 --- /dev/null +++ b/src/main/java/com/mca/sec/mapper/SecurityMapper.java @@ -0,0 +1,15 @@ +package com.mca.sec.mapper; + +import com.mca.sec.vo.LoginUserVO; +import com.mca.sec.vo.SecurityRolesVO; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("securityMapper") +public interface SecurityMapper { + + public LoginUserVO getUser(String userid); + + public SecurityRolesVO getAuthoritiesUser(int auth); + +} diff --git a/src/main/java/com/mca/sec/service/SecurityService.java b/src/main/java/com/mca/sec/service/SecurityService.java new file mode 100644 index 0000000..4a661e1 --- /dev/null +++ b/src/main/java/com/mca/sec/service/SecurityService.java @@ -0,0 +1,44 @@ +package com.mca.sec.service; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +import com.mca.sec.mapper.SecurityMapper; +import com.mca.sec.vo.LoginUserVO; + +import egovframework.rte.fdl.security.userdetails.EgovUserDetails; + + +public class SecurityService implements UserDetailsService{ + + @Resource(name = "securityMapper") + SecurityMapper securityMapper; + + + @Override + public UserDetails loadUserByUsername(String userid) throws UsernameNotFoundException { + // TODO Auto-generated method stub + + LoginUserVO member = securityMapper.getUser(userid); + List authorities = new ArrayList(); + + if (member != null) { + authorities.add(securityMapper.getAuthoritiesUser(member.getAuth())); + } else { + throw new UsernameNotFoundException("접속자 정보를 찾을 수 없습니다."); + } + if (authorities.size() == 0) { + throw new UsernameNotFoundException("User " + member.getUserid()+ " has no GrantedAuthority"); + } + + return new EgovUserDetails(member.getUserid(), member.getPassword(), true, true, true, true, authorities, member); + } + +} diff --git a/src/main/java/com/mca/sec/vo/LoginUserVO.java b/src/main/java/com/mca/sec/vo/LoginUserVO.java new file mode 100644 index 0000000..5000f71 --- /dev/null +++ b/src/main/java/com/mca/sec/vo/LoginUserVO.java @@ -0,0 +1,76 @@ +package com.mca.sec.vo; + +public class LoginUserVO { + private String userid; + private String password; + private String name; + private String company; + private String email; + private String phonenum; + private String regdate; + private int auth; + private String code; + private String description; + + + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } + public String getPassword() { + return password; + } + public void setPassword(String password) { + this.password = password; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getCompany() { + return company; + } + public void setCompany(String company) { + this.company = company; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + public String getPhonenum() { + return phonenum; + } + public void setPhonenum(String phonenum) { + this.phonenum = phonenum; + } + public String getRegdate() { + return regdate; + } + public void setRegdate(String regdate) { + this.regdate = regdate; + } + public int getAuth() { + return auth; + } + public void setAuth(int auth) { + this.auth = auth; + } + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } +} diff --git a/src/main/java/com/mca/sec/vo/SecurityRolesVO.java b/src/main/java/com/mca/sec/vo/SecurityRolesVO.java new file mode 100644 index 0000000..4d082a8 --- /dev/null +++ b/src/main/java/com/mca/sec/vo/SecurityRolesVO.java @@ -0,0 +1,28 @@ +package com.mca.sec.vo; + +import org.springframework.security.core.GrantedAuthority; + +public class SecurityRolesVO implements GrantedAuthority { + + /** + * + */ + private static final long serialVersionUID = 1L; + + private int auth; + private String authority; + + + public int getAuth() { + return auth; + } + public void setAuth(int auth) { + this.auth = auth; + } + public String getAuthority() { + return authority; + } + public void setAuthority(String authority) { + this.authority = authority; + } +} diff --git a/src/main/java/com/mca/user/mapper/UserMapper.java b/src/main/java/com/mca/user/mapper/UserMapper.java new file mode 100644 index 0000000..04b5b06 --- /dev/null +++ b/src/main/java/com/mca/user/mapper/UserMapper.java @@ -0,0 +1,30 @@ +package com.mca.user.mapper; + +import java.util.List; + +import com.mca.user.vo.UserSearchVO; +import com.mca.user.vo.UserVO; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("userMapper") +public interface UserMapper { + + public int selectUserIdCheck(String checkId); + + public void insertUser(UserVO userVO); + + public UserVO selectUserInfo(String userid); + + public List selectUserList(UserSearchVO userSearchVO); + + public int selectUserCount(UserSearchVO userSearchVO); + + public int selectUserStandByCount(); + + public void updateUserSign(String userid); + + public void updateUserDelete(String userid); + + public void updateUser(UserVO userVO); +} diff --git a/src/main/java/com/mca/user/service/UserService.java b/src/main/java/com/mca/user/service/UserService.java new file mode 100644 index 0000000..094557a --- /dev/null +++ b/src/main/java/com/mca/user/service/UserService.java @@ -0,0 +1,81 @@ +package com.mca.user.service; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Service; + +import com.mca.user.mapper.UserMapper; +import com.mca.user.vo.UserSearchVO; +import com.mca.user.vo.UserVO; + +@Service("userService") +public class UserService { + + @Resource(name="userMapper") + UserMapper userMapper; + + public int selectUserIdCheck(String checkId) { + return userMapper.selectUserIdCheck(checkId); + } + + public int insertUser(UserVO userVO) { + // TODO Auto-generated method stub + + try { + /* bcrypt 사용 고려 */ + //BCryptPasswordEncoder bcryptPasswordEncoder = new BCryptPasswordEncoder(10); + //userVO.setPassword(bcryptPasswordEncoder.encode(userVO.getPassword())); + + userMapper.insertUser(userVO); + return 0; + + }catch (Exception e) { + return -1; + } + + } + + public UserVO selectUserInfo(String userid) { + // TODO Auto-generated method stub + return userMapper.selectUserInfo(userid); + } + + public List selectUserList(UserSearchVO userSearchVO) { + // TODO Auto-generated method stub + return userMapper.selectUserList(userSearchVO); + } + + public int selectUserCount(UserSearchVO userSearchVO) { + // TODO Auto-generated method stub + return userMapper.selectUserCount(userSearchVO); + } + + public int selectUserStandByCount() { + // TODO Auto-generated method stub + return userMapper.selectUserStandByCount(); + } + + public void updateUserSign(String userid) { + // TODO Auto-generated method stub + userMapper.updateUserSign(userid); + } + + public void updateUserDelete(String userid) { + // TODO Auto-generated method stub + userMapper.updateUserDelete(userid); + } + + public void updateUser(UserVO userVO) { + // TODO Auto-generated method stub + if(userVO.getPassword() != null && !userVO.getPassword().equals("")) { + /* bcrypt 사용 고려 */ + //BCryptPasswordEncoder bcryptPasswordEncoder = new BCryptPasswordEncoder(10); + //userVO.setPassword(bcryptPasswordEncoder.encode(userVO.getPassword())); + } + + userMapper.updateUser(userVO); + } +} diff --git a/src/main/java/com/mca/user/vo/UserSearchVO.java b/src/main/java/com/mca/user/vo/UserSearchVO.java new file mode 100644 index 0000000..fe7ae34 --- /dev/null +++ b/src/main/java/com/mca/user/vo/UserSearchVO.java @@ -0,0 +1,44 @@ +package com.mca.user.vo; + +import com.mca.cmmn.vo.BaseSearchVO; + +public class UserSearchVO extends BaseSearchVO{ + + private String userid; + private String name; + private String company; + private String phonenum; + private String auth; + + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getCompany() { + return company; + } + public void setCompany(String company) { + this.company = company; + } + public String getPhonenum() { + return phonenum; + } + public void setPhonenum(String phonenum) { + this.phonenum = phonenum; + } + public String getAuth() { + return auth; + } + public void setAuth(String auth) { + this.auth = auth; + } + +} diff --git a/src/main/java/com/mca/user/vo/UserVO.java b/src/main/java/com/mca/user/vo/UserVO.java new file mode 100644 index 0000000..4a5c2b2 --- /dev/null +++ b/src/main/java/com/mca/user/vo/UserVO.java @@ -0,0 +1,76 @@ +package com.mca.user.vo; + +public class UserVO { + private String userid; + private String password; + private String name; + private String company; + private String email; + private String phonenum; + private String regdate; + private int auth; + private String code; + private String description; + + + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } + public String getPassword() { + return password; + } + public void setPassword(String password) { + this.password = password; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getCompany() { + return company; + } + public void setCompany(String company) { + this.company = company; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + public String getPhonenum() { + return phonenum; + } + public void setPhonenum(String phonenum) { + this.phonenum = phonenum; + } + public String getRegdate() { + return regdate; + } + public void setRegdate(String regdate) { + this.regdate = regdate; + } + public int getAuth() { + return auth; + } + public void setAuth(int auth) { + this.auth = auth; + } + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } +} diff --git a/src/main/java/com/mca/util/ImgPaginationRenderer.java b/src/main/java/com/mca/util/ImgPaginationRenderer.java new file mode 100644 index 0000000..342df62 --- /dev/null +++ b/src/main/java/com/mca/util/ImgPaginationRenderer.java @@ -0,0 +1,68 @@ +/* + * Copyright 2008-2009 the original author or authors. + * + * 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. + */ +package com.mca.util; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer; + +import javax.servlet.ServletContext; + +import org.springframework.web.context.ServletContextAware; + +/** + * @Class Name : ImagePaginationRenderer.java + * @Description : ImagePaginationRenderer Class + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ --------- --------- ------------------------------- + * @ 2009.03.16 최초생성 + * + * @author 개발프레임웍크 실행환경 개발팀 + * @since 2009. 03.16 + * @version 1.0 + * @see + * + * Copyright (C) by MOPAS All right reserved. + */ +public class ImgPaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware{ + + private ServletContext servletContext; + + public ImgPaginationRenderer() { + // no-op + } + + /** + * PaginationRenderer + * + * @see 개발프레임웍크 실행환경 개발팀 + */ + public void initVariables() { + + firstPageLabel = "" + " "; + previousPageLabel = "" + " "; + currentPageLabel = "{0} "; + otherPageLabel = "{2} "; + nextPageLabel = "" + " "; + lastPageLabel = "" + " "; + } + + @Override + public void setServletContext(ServletContext servletContext) { + this.servletContext = servletContext; + initVariables(); + } +} diff --git a/src/main/resources/egovframework/message/message-common.properties b/src/main/resources/egovframework/message/message-common.properties new file mode 100644 index 0000000..518ba4b --- /dev/null +++ b/src/main/resources/egovframework/message/message-common.properties @@ -0,0 +1,45 @@ +#UI resource# +list.sample=List Sample +button.search=\uac80\uc0c9 +button.list=\ubaa9\ub85d +button.modify=\uc218\uc815 +button.create=\ub4f1\ub85d +button.reset=\uc7ac\uc124\uc815 +button.delete=\uc0ad\uc81c +search.choose=\uac80\uc0c9\uc5b4 \uc120\ud0dd +search.keyword=\uac80\uc0c9\uc5b4 \uc785\ub825 +search.name=\uc774\ub984 +search.id=ID +title.sample.id=\uce74\ud14c\uace0\ub9acID +title.sample.name=\uce74\ud14c\uace0\ub9ac\uba85 +title.sample.useYn=\uc0ac\uc6a9\uc5ec\ubd80 +title.sample.description=\uc124\uba85 +title.sample.regUser=\ub4f1\ub85d\uc790 +title.sample=\uae30\ubcf8 \uac8c\uc2dc\ud310 \ubaa9\ub85d + +# image name # +image.search=btn_form_search.gif +image.errorBg=error + +# -- validator errors -- # +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.prefix=
+errors.suffix=

+errors.required={0} \uc740 \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0} \uc740 {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0} \uc740 {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0} \uc740 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.byte={0} \uc740 byte \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0} \uc740 short \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0} \uc740 integer \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0} \uc740 long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0} \uc740 float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0} \uc740 double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.date={0} \uc740 \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0} \uc740 {1} \uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0} \uc740 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0} \uc740 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740 \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. \ No newline at end of file diff --git a/src/main/resources/egovframework/message/message-common_en.properties b/src/main/resources/egovframework/message/message-common_en.properties new file mode 100644 index 0000000..1d45910 --- /dev/null +++ b/src/main/resources/egovframework/message/message-common_en.properties @@ -0,0 +1,46 @@ +#UI resource# +list.sample=List Sample +button.search=Search +button.list=List +button.modify=Modify +button.create=Create +button.reset=Reset +button.delete=Delete +button.create=create +search.choose=Select Choose +search.keyword=Search +search.name=name +search.id=ID +title.sample.id=Category ID +title.sample.name=Category Name +title.sample.useYn=useYn +title.sample.description=Description +title.sample.regUser=User Name +title.sample=Default BBS List + +# image name # +image.search=btn_form_search_en.gif +image.errorBg=error_en + +# -- validator errors -- # +fail.common.msg=error ocurred! +fail.common.sql=sql error ocurred! error code: {0}, error msg: {1} +info.nodata.msg=no data found. +errors.prefix=
+errors.suffix=

+errors.required={0} is required. +errors.minlength={0} can not be less than {1} characters. +errors.maxlength={0} can not be greater than {1} characters. +errors.invalid={0} is invalid. +errors.byte={0} must be a byte. +errors.short={0} must be a short. +errors.integer={0} must be an integer. +errors.long={0} must be a long. +errors.float={0} must be a float. +errors.double={0} must be a double. +errors.date={0} is not a date. +errors.range={0} is not in the range {1} through {2}. +errors.creditcard={0} is an invalid credit card number. +errors.email={0} is an invalid e-mail address. +errors.ihidnum=An invalid Social Security Number. +errors.korean={0} must be a Korean. \ No newline at end of file diff --git a/src/main/resources/egovframework/message/message-common_ko.properties b/src/main/resources/egovframework/message/message-common_ko.properties new file mode 100644 index 0000000..518ba4b --- /dev/null +++ b/src/main/resources/egovframework/message/message-common_ko.properties @@ -0,0 +1,45 @@ +#UI resource# +list.sample=List Sample +button.search=\uac80\uc0c9 +button.list=\ubaa9\ub85d +button.modify=\uc218\uc815 +button.create=\ub4f1\ub85d +button.reset=\uc7ac\uc124\uc815 +button.delete=\uc0ad\uc81c +search.choose=\uac80\uc0c9\uc5b4 \uc120\ud0dd +search.keyword=\uac80\uc0c9\uc5b4 \uc785\ub825 +search.name=\uc774\ub984 +search.id=ID +title.sample.id=\uce74\ud14c\uace0\ub9acID +title.sample.name=\uce74\ud14c\uace0\ub9ac\uba85 +title.sample.useYn=\uc0ac\uc6a9\uc5ec\ubd80 +title.sample.description=\uc124\uba85 +title.sample.regUser=\ub4f1\ub85d\uc790 +title.sample=\uae30\ubcf8 \uac8c\uc2dc\ud310 \ubaa9\ub85d + +# image name # +image.search=btn_form_search.gif +image.errorBg=error + +# -- validator errors -- # +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.prefix=
+errors.suffix=

+errors.required={0} \uc740 \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0} \uc740 {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0} \uc740 {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0} \uc740 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.byte={0} \uc740 byte \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0} \uc740 short \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0} \uc740 integer \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0} \uc740 long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0} \uc740 float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0} \uc740 double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.date={0} \uc740 \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0} \uc740 {1} \uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0} \uc740 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0} \uc740 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740 \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. \ No newline at end of file diff --git a/src/main/resources/egovframework/property/globals.properties b/src/main/resources/egovframework/property/globals.properties new file mode 100644 index 0000000..f4bb33f --- /dev/null +++ b/src/main/resources/egovframework/property/globals.properties @@ -0,0 +1,26 @@ +#----------------------------------------------------------------------- +# +# globals.properties : \uc2dc\uc2a4\ud15c +# +#----------------------------------------------------------------------- +# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. +# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 +# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 +# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) +# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) +# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' +# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 +# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 +#----------------------------------------------------------------------- + +#File path +Global.fileStorePath = C:/MCA/upload/ + +#TEST DB +Global.datasource.driverClassName=com.mysql.cj.jdbc.Driver +Global.datasource.url=jdbc:mysql://106.247.244.146:57306/gg_mobile_220214?useSSL=false&serverTimezone=UTC +Global.datasource.username=root +Global.datasource.password=dbnt0928 + +#FieldVerify URL +Field.verifyPath = localhost:8080/UFQM/iface \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/context-common.xml b/src/main/resources/egovframework/spring/context-common.xml new file mode 100644 index 0000000..2cfce4c --- /dev/null +++ b/src/main/resources/egovframework/spring/context-common.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + classpath:/egovframework/message/message-common + classpath:/egovframework/rte/fdl/idgnr/messages/idgnr + classpath:/egovframework/rte/fdl/property/messages/properties + classpath:property/globals + + + + 60 + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + text/plain;charset=UTF-8 + text/html;charset=UTF-8 + application/json;charset=UTF-8 + + + + + + + + text/plain;charset=UTF-8 + text/html;charset=UTF-8 + application/json;charset=UTF-8 + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-datasource.xml b/src/main/resources/egovframework/spring/context-datasource.xml new file mode 100644 index 0000000..21c3324 --- /dev/null +++ b/src/main/resources/egovframework/spring/context-datasource.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-idgen.xml b/src/main/resources/egovframework/spring/context-idgen.xml new file mode 100644 index 0000000..153cde4 --- /dev/null +++ b/src/main/resources/egovframework/spring/context-idgen.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-mapper.xml b/src/main/resources/egovframework/spring/context-mapper.xml new file mode 100644 index 0000000..615c871 --- /dev/null +++ b/src/main/resources/egovframework/spring/context-mapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + classpath:/egovframework/property/globals.properties + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/context-properties.xml b/src/main/resources/egovframework/spring/context-properties.xml new file mode 100644 index 0000000..6e7b109 --- /dev/null +++ b/src/main/resources/egovframework/spring/context-properties.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-security.xml b/src/main/resources/egovframework/spring/context-security.xml new file mode 100644 index 0000000..5c4c6d7 --- /dev/null +++ b/src/main/resources/egovframework/spring/context-security.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-sqlMap.xml b/src/main/resources/egovframework/spring/context-sqlMap.xml new file mode 100644 index 0000000..a72bf17 --- /dev/null +++ b/src/main/resources/egovframework/spring/context-sqlMap.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-transaction.xml b/src/main/resources/egovframework/spring/context-transaction.xml new file mode 100644 index 0000000..6681fdc --- /dev/null +++ b/src/main/resources/egovframework/spring/context-transaction.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-validator.xml b/src/main/resources/egovframework/spring/context-validator.xml new file mode 100644 index 0000000..03ebe32 --- /dev/null +++ b/src/main/resources/egovframework/spring/context-validator.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + /WEB-INF/config/egovframework/validator/validator-rules.xml + /WEB-INF/config/egovframework/validator/validator.xml + + + + + diff --git a/src/main/resources/egovframework/sqlmap/mappers/cmmn/areaCode.xml b/src/main/resources/egovframework/sqlmap/mappers/cmmn/areaCode.xml new file mode 100644 index 0000000..b7a9970 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mappers/cmmn/areaCode.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/mappers/cmmn/layers.xml b/src/main/resources/egovframework/sqlmap/mappers/cmmn/layers.xml new file mode 100644 index 0000000..4e45c7e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mappers/cmmn/layers.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/mappers/map/fieldData.xml b/src/main/resources/egovframework/sqlmap/mappers/map/fieldData.xml new file mode 100644 index 0000000..9d138ec --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mappers/map/fieldData.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/mappers/map/useHistory.xml b/src/main/resources/egovframework/sqlmap/mappers/map/useHistory.xml new file mode 100644 index 0000000..95b1693 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mappers/map/useHistory.xml @@ -0,0 +1,54 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/mappers/map/useRequest.xml b/src/main/resources/egovframework/sqlmap/mappers/map/useRequest.xml new file mode 100644 index 0000000..c2fb9b2 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mappers/map/useRequest.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + INSERT INTO map_use_request + ( + title, + s_date, + e_date, + r_date, + places, + layers, + userid, + user_msg + ) + value + ( + #{title}, + #{s_date}, + #{e_date}, + NOW(), + #{places}, + #{layers}, + #{userid}, + #{user_msg} + ); + + + + UPDATE map_use_request SET + title = #{title}, + s_date = #{s_date}, + e_date = #{e_date}, + r_date = now(), + places = #{places}, + layers = #{layers}, + user_msg = #{user_msg} + WHERE + idx = #{idx} + + + + UPDATE map_use_request SET + status = #{status}, + admin_id = #{admin_id}, + admin_msg = #{admin_msg} + WHERE + idx = #{idx} + + + + DELETE FROM map_use_request WHERE idx = #{idx} + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/mappers/sec/security.xml b/src/main/resources/egovframework/sqlmap/mappers/sec/security.xml new file mode 100644 index 0000000..18514b1 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mappers/sec/security.xml @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/mappers/user/user.xml b/src/main/resources/egovframework/sqlmap/mappers/user/user.xml new file mode 100644 index 0000000..d103f13 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/mappers/user/user.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + INSERT INTO T_USER( + userid, + password, + name, + company, + email, + phonenum, + regdate, + auth + ) + VALUES( + #{userid}, + #{password}, + #{name}, + #{company}, + #{email}, + #{phonenum}, + NOW(), + 99 + ) + + + + + + UPDATE t_user SET + auth = 2 + WHERE userid = #{userid} + + + + DELETE FROM + t_user + WHERE + userid = #{userid} + + + + UPDATE t_user SET + + password = #{password}, + + + auth = #{auth}, + + name = #{name}, + company = #{company}, + email = #{email}, + phonenum = #{phonenum} + WHERE userid = #{userid} + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/sql-mapper-config.xml b/src/main/resources/egovframework/sqlmap/sql-mapper-config.xml new file mode 100644 index 0000000..9c5dd52 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/sql-mapper-config.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..286f146 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/property/globals.properties b/src/main/resources/property/globals.properties new file mode 100644 index 0000000..a431944 --- /dev/null +++ b/src/main/resources/property/globals.properties @@ -0,0 +1,18 @@ + +#----------------------------------------------------------------------- +# +# globals.properties : \uc2dc\uc2a4\ud15c +# +#----------------------------------------------------------------------- +# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. +# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 +# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 +# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) +# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) +# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' +# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 +# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 +#----------------------------------------------------------------------- + +#FieldVerify URL +Field.verifyPath = localhost:8080/UFQM/iface \ No newline at end of file diff --git a/src/main/webapp/META-INF/MANIFEST.MF b/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/src/main/webapp/META-INF/config/egovframework/validator/validator-rules.xml b/src/main/webapp/META-INF/config/egovframework/validator/validator-rules.xml new file mode 100644 index 0000000..6b696a6 --- /dev/null +++ b/src/main/webapp/META-INF/config/egovframework/validator/validator-rules.xml @@ -0,0 +1,1222 @@ + + + + + + + + + + = 0) { + value = field.options[si].value; + } + } else if (field.type == 'radio' || field.type == 'checkbox') { + if (field.checked) { + value = field.value; + } + } else { + value = field.value; + } + if (trim(value).length == 0) { + if ((i == 0) && (field.type != 'hidden')) { + focusField = field; + } + fields[i++] = oRequired[x][1]; + isValid = false; + } + } else if (field.type == "select-multiple") { + var numOptions = field.options.length; + lastSelected=-1; + for(loop=numOptions-1;loop>=0;loop--) { + if(field.options[loop].selected) { + lastSelected = loop; + value = field.options[loop].value; + break; + } + } + if(lastSelected < 0 || trim(value).length == 0) { + if(i == 0) { + focusField = field; + } + fields[i++] = oRequired[x][1]; + isValid=false; + } + } else if ((field.length > 0) && (field[0].type == 'radio' || field[0].type == 'checkbox')) { + isChecked=-1; + for (loop=0;loop < field.length;loop++) { + if (field[loop].checked) { + isChecked=loop; + break; // only one needs to be checked + } + } + if (isChecked < 0) { + if (i == 0) { + focusField = field[0]; + } + fields[i++] = oRequired[x][1]; + isValid=false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + // Trim whitespace from left and right sides of s. + function trim(s) { + return s.replace( /^\s*/, "" ).replace( /\s*$/, "" ); + } + + ]]> + + + + + + + + + + + + 0) && (field.value.length < iMin)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMinLength[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + + iMax) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMaxLength[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + + 0)) { + + if (!matchPattern(field.value, oMasked[x][2]("mask"))) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMasked[x][1]; + isValid = false; + } + } + } + + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + function matchPattern(value, mask) { + return mask.exec(value); + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oByte[x][1]; + + } else { + + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oByte[x][1]; + bValid = false; + } + } + } + + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oShort[x][1]; + + } else { + + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oShort[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + + } else { + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isAllDigits(argvalue) { + argvalue = argvalue.toString(); + var validChars = "0123456789"; + var startFrom = 0; + if (argvalue.substring(0, 2) == "0x") { + validChars = "0123456789abcdefABCDEF"; + startFrom = 2; + } else if (argvalue.charAt(0) == "0") { + validChars = "01234567"; + startFrom = 1; + } else if (argvalue.charAt(0) == "-") { + startFrom = 1; + } + + for (var n = startFrom; n < argvalue.length; n++) { + if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; + } + return true; + }]]> + + + + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + // remove '.' before checking digits + var tempArray = value.split('.'); + var joinedString= tempArray.join(''); + + if (!isAllDigits(joinedString)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oFloat[x][1]; + + } else { + var iValue = parseFloat(value); + if (isNaN(iValue)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oFloat[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + + + + 0) && + (datePattern.length > 0)) { + var MONTH = "MM"; + var DAY = "dd"; + var YEAR = "yyyy"; + var orderMonth = datePattern.indexOf(MONTH); + var orderDay = datePattern.indexOf(DAY); + var orderYear = datePattern.indexOf(YEAR); + if ((orderDay < orderYear && orderDay > orderMonth)) { + var iDelim1 = orderMonth + MONTH.length; + var iDelim2 = orderDay + DAY.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderDay && iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); + } else if (iDelim1 == orderDay) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); + } else if (iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); + } else { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[2], matched[1], matched[3])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else if ((orderMonth < orderYear && orderMonth > orderDay)) { + var iDelim1 = orderDay + DAY.length; + var iDelim2 = orderMonth + MONTH.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderMonth && iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); + } else if (iDelim1 == orderMonth) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); + } else if (iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); + } else { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[1], matched[2], matched[3])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else if ((orderMonth > orderYear && orderMonth < orderDay)) { + var iDelim1 = orderYear + YEAR.length; + var iDelim2 = orderMonth + MONTH.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderMonth && iDelim2 == orderDay) { + dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); + } else if (iDelim1 == orderMonth) { + dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); + } else if (iDelim2 == orderDay) { + dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); + } else { + dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[3], matched[2], matched[1])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isValidDate(day, month, year) { + if (month < 1 || month > 12) { + return false; + } + if (day < 1 || day > 31) { + return false; + } + if ((month == 4 || month == 6 || month == 9 || month == 11) && + (day == 31)) { + return false; + } + if (month == 2) { + var leap = (year % 4 == 0 && + (year % 100 != 0 || year % 400 == 0)); + if (day>29 || (day == 29 && !leap)) { + return false; + } + } + return true; + }]]> + + + + + + + + + + + + + + + 0)) { + + var iMin = parseInt(oRange[x][2]("min")); + var iMax = parseInt(oRange[x][2]("max")); + var iValue = parseInt(field.value); + if (!(iValue >= iMin && iValue <= iMax)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oRange[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + 0)) { + + var fMin = parseFloat(oRange[x][2]("min")); + var fMax = parseFloat(oRange[x][2]("max")); + var fValue = parseFloat(field.value); + if (!(fValue >= fMin && fValue <= fMax)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oRange[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + 0)) { + if (!luhnCheck(form[oCreditCard[x][0]].value)) { + if (i == 0) { + focusField = form[oCreditCard[x][0]]; + } + fields[i++] = oCreditCard[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl + */ + function luhnCheck(cardNumber) { + if (isLuhnNum(cardNumber)) { + var no_digit = cardNumber.length; + var oddoeven = no_digit & 1; + var sum = 0; + for (var count = 0; count < no_digit; count++) { + var digit = parseInt(cardNumber.charAt(count)); + if (!((count & 1) ^ oddoeven)) { + digit *= 2; + if (digit > 9) digit -= 9; + }; + sum += digit; + }; + if (sum == 0) return false; + if (sum % 10 == 0) return true; + }; + return false; + } + + function isLuhnNum(argvalue) { + argvalue = argvalue.toString(); + if (argvalue.length == 0) { + return false; + } + for (var n = 0; n < argvalue.length; n++) { + if ((argvalue.substring(n, n+1) < "0") || + (argvalue.substring(n,n+1) > "9")) { + return false; + } + } + return true; + }]]> + + + + + + + + 0)) { + if (!checkEmail(form[oEmail[x][0]].value)) { + if (i == 0) { + focusField = form[oEmail[x][0]]; + } + fields[i++] = oEmail[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com), + * http://javascript.internet.com + */ + function checkEmail(emailStr) { + if (emailStr.length == 0) { + return true; + } + var emailPat=/^(.+)@(.+)$/; + var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; + var validChars="\[^\\s" + specialChars + "\]"; + var quotedUser="(\"[^\"]*\")"; + var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; + var atom=validChars + '+'; + var word="(" + atom + "|" + quotedUser + ")"; + var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); + var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); + var matchArray=emailStr.match(emailPat); + if (matchArray == null) { + return false; + } + var user=matchArray[1]; + var domain=matchArray[2]; + if (user.match(userPat) == null) { + return false; + } + var IPArray = domain.match(ipDomainPat); + if (IPArray != null) { + for (var i = 1; i <= 4; i++) { + if (IPArray[i] > 255) { + return false; + } + } + return true; + } + var domainArray=domain.match(domainPat); + if (domainArray == null) { + return false; + } + var atomPat=new RegExp(atom,"g"); + var domArr=domain.match(atomPat); + var len=domArr.length; + if ((domArr[domArr.length-1].length < 2) || + (domArr[domArr.length-1].length > 3)) { + return false; + } + if (len < 2) { + return false; + } + return true; + }]]> + + + + + + + 0) { + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: JS Guide + * http://jsguide.net/ver2/articles/frame.php?artnum=002 + */ + function checkIhIdNum(ihidnum){ + + fmt = /^\d{6}[1234]\d{6}$/; + if(!fmt.test(ihidnum)){ + return false; + } + + birthYear = (ihidnum.charAt(7) <= "2") ? "19" : "20"; + birthYear += ihidnum.substr(0, 2); + birthMonth = ihidnum.substr(2, 2) - 1; + birthDate = ihidnum.substr(4, 2); + birth = new Date(birthYear, birthMonth, birthDate); + + if( birth.getYear() % 100 != ihidnum.substr(0, 2) || + birth.getMonth() != birthMonth || + birth.getDate() != birthDate) { + return false; + } + + var arrDivide = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]; + var checkdigit = 0; + for(var i=0;i + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkKorean(koreanStr){ + for(var i=0;i + + + + + + diff --git a/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml b/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml new file mode 100644 index 0000000..b73b15b --- /dev/null +++ b/src/main/webapp/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + */*;charset=UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/plain;charset=UTF-8 + text/html;charset=UTF-8 + application/json;charset=UTF-8 + + + + + + + + + + + + + json=application/json + xml=application/xml + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/config/egovframework/validator/validator-rules.xml b/src/main/webapp/WEB-INF/config/egovframework/validator/validator-rules.xml new file mode 100644 index 0000000..6b696a6 --- /dev/null +++ b/src/main/webapp/WEB-INF/config/egovframework/validator/validator-rules.xml @@ -0,0 +1,1222 @@ + + + + + + + + + + = 0) { + value = field.options[si].value; + } + } else if (field.type == 'radio' || field.type == 'checkbox') { + if (field.checked) { + value = field.value; + } + } else { + value = field.value; + } + if (trim(value).length == 0) { + if ((i == 0) && (field.type != 'hidden')) { + focusField = field; + } + fields[i++] = oRequired[x][1]; + isValid = false; + } + } else if (field.type == "select-multiple") { + var numOptions = field.options.length; + lastSelected=-1; + for(loop=numOptions-1;loop>=0;loop--) { + if(field.options[loop].selected) { + lastSelected = loop; + value = field.options[loop].value; + break; + } + } + if(lastSelected < 0 || trim(value).length == 0) { + if(i == 0) { + focusField = field; + } + fields[i++] = oRequired[x][1]; + isValid=false; + } + } else if ((field.length > 0) && (field[0].type == 'radio' || field[0].type == 'checkbox')) { + isChecked=-1; + for (loop=0;loop < field.length;loop++) { + if (field[loop].checked) { + isChecked=loop; + break; // only one needs to be checked + } + } + if (isChecked < 0) { + if (i == 0) { + focusField = field[0]; + } + fields[i++] = oRequired[x][1]; + isValid=false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + // Trim whitespace from left and right sides of s. + function trim(s) { + return s.replace( /^\s*/, "" ).replace( /\s*$/, "" ); + } + + ]]> + + + + + + + + + + + + 0) && (field.value.length < iMin)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMinLength[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + + iMax) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMaxLength[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + + 0)) { + + if (!matchPattern(field.value, oMasked[x][2]("mask"))) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMasked[x][1]; + isValid = false; + } + } + } + + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + function matchPattern(value, mask) { + return mask.exec(value); + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oByte[x][1]; + + } else { + + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oByte[x][1]; + bValid = false; + } + } + } + + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oShort[x][1]; + + } else { + + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oShort[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + + } else { + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isAllDigits(argvalue) { + argvalue = argvalue.toString(); + var validChars = "0123456789"; + var startFrom = 0; + if (argvalue.substring(0, 2) == "0x") { + validChars = "0123456789abcdefABCDEF"; + startFrom = 2; + } else if (argvalue.charAt(0) == "0") { + validChars = "01234567"; + startFrom = 1; + } else if (argvalue.charAt(0) == "-") { + startFrom = 1; + } + + for (var n = startFrom; n < argvalue.length; n++) { + if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; + } + return true; + }]]> + + + + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + // remove '.' before checking digits + var tempArray = value.split('.'); + var joinedString= tempArray.join(''); + + if (!isAllDigits(joinedString)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oFloat[x][1]; + + } else { + var iValue = parseFloat(value); + if (isNaN(iValue)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oFloat[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + + + + 0) && + (datePattern.length > 0)) { + var MONTH = "MM"; + var DAY = "dd"; + var YEAR = "yyyy"; + var orderMonth = datePattern.indexOf(MONTH); + var orderDay = datePattern.indexOf(DAY); + var orderYear = datePattern.indexOf(YEAR); + if ((orderDay < orderYear && orderDay > orderMonth)) { + var iDelim1 = orderMonth + MONTH.length; + var iDelim2 = orderDay + DAY.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderDay && iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); + } else if (iDelim1 == orderDay) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); + } else if (iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); + } else { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[2], matched[1], matched[3])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else if ((orderMonth < orderYear && orderMonth > orderDay)) { + var iDelim1 = orderDay + DAY.length; + var iDelim2 = orderMonth + MONTH.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderMonth && iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); + } else if (iDelim1 == orderMonth) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); + } else if (iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); + } else { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[1], matched[2], matched[3])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else if ((orderMonth > orderYear && orderMonth < orderDay)) { + var iDelim1 = orderYear + YEAR.length; + var iDelim2 = orderMonth + MONTH.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderMonth && iDelim2 == orderDay) { + dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); + } else if (iDelim1 == orderMonth) { + dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); + } else if (iDelim2 == orderDay) { + dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); + } else { + dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[3], matched[2], matched[1])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isValidDate(day, month, year) { + if (month < 1 || month > 12) { + return false; + } + if (day < 1 || day > 31) { + return false; + } + if ((month == 4 || month == 6 || month == 9 || month == 11) && + (day == 31)) { + return false; + } + if (month == 2) { + var leap = (year % 4 == 0 && + (year % 100 != 0 || year % 400 == 0)); + if (day>29 || (day == 29 && !leap)) { + return false; + } + } + return true; + }]]> + + + + + + + + + + + + + + + 0)) { + + var iMin = parseInt(oRange[x][2]("min")); + var iMax = parseInt(oRange[x][2]("max")); + var iValue = parseInt(field.value); + if (!(iValue >= iMin && iValue <= iMax)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oRange[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + 0)) { + + var fMin = parseFloat(oRange[x][2]("min")); + var fMax = parseFloat(oRange[x][2]("max")); + var fValue = parseFloat(field.value); + if (!(fValue >= fMin && fValue <= fMax)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oRange[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + 0)) { + if (!luhnCheck(form[oCreditCard[x][0]].value)) { + if (i == 0) { + focusField = form[oCreditCard[x][0]]; + } + fields[i++] = oCreditCard[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl + */ + function luhnCheck(cardNumber) { + if (isLuhnNum(cardNumber)) { + var no_digit = cardNumber.length; + var oddoeven = no_digit & 1; + var sum = 0; + for (var count = 0; count < no_digit; count++) { + var digit = parseInt(cardNumber.charAt(count)); + if (!((count & 1) ^ oddoeven)) { + digit *= 2; + if (digit > 9) digit -= 9; + }; + sum += digit; + }; + if (sum == 0) return false; + if (sum % 10 == 0) return true; + }; + return false; + } + + function isLuhnNum(argvalue) { + argvalue = argvalue.toString(); + if (argvalue.length == 0) { + return false; + } + for (var n = 0; n < argvalue.length; n++) { + if ((argvalue.substring(n, n+1) < "0") || + (argvalue.substring(n,n+1) > "9")) { + return false; + } + } + return true; + }]]> + + + + + + + + 0)) { + if (!checkEmail(form[oEmail[x][0]].value)) { + if (i == 0) { + focusField = form[oEmail[x][0]]; + } + fields[i++] = oEmail[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com), + * http://javascript.internet.com + */ + function checkEmail(emailStr) { + if (emailStr.length == 0) { + return true; + } + var emailPat=/^(.+)@(.+)$/; + var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; + var validChars="\[^\\s" + specialChars + "\]"; + var quotedUser="(\"[^\"]*\")"; + var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; + var atom=validChars + '+'; + var word="(" + atom + "|" + quotedUser + ")"; + var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); + var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); + var matchArray=emailStr.match(emailPat); + if (matchArray == null) { + return false; + } + var user=matchArray[1]; + var domain=matchArray[2]; + if (user.match(userPat) == null) { + return false; + } + var IPArray = domain.match(ipDomainPat); + if (IPArray != null) { + for (var i = 1; i <= 4; i++) { + if (IPArray[i] > 255) { + return false; + } + } + return true; + } + var domainArray=domain.match(domainPat); + if (domainArray == null) { + return false; + } + var atomPat=new RegExp(atom,"g"); + var domArr=domain.match(atomPat); + var len=domArr.length; + if ((domArr[domArr.length-1].length < 2) || + (domArr[domArr.length-1].length > 3)) { + return false; + } + if (len < 2) { + return false; + } + return true; + }]]> + + + + + + + 0) { + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: JS Guide + * http://jsguide.net/ver2/articles/frame.php?artnum=002 + */ + function checkIhIdNum(ihidnum){ + + fmt = /^\d{6}[1234]\d{6}$/; + if(!fmt.test(ihidnum)){ + return false; + } + + birthYear = (ihidnum.charAt(7) <= "2") ? "19" : "20"; + birthYear += ihidnum.substr(0, 2); + birthMonth = ihidnum.substr(2, 2) - 1; + birthDate = ihidnum.substr(4, 2); + birth = new Date(birthYear, birthMonth, birthDate); + + if( birth.getYear() % 100 != ihidnum.substr(0, 2) || + birth.getMonth() != birthMonth || + birth.getDate() != birthDate) { + return false; + } + + var arrDivide = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]; + var checkdigit = 0; + for(var i=0;i + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkKorean(koreanStr){ + for(var i=0;i + + + + + + diff --git a/src/main/webapp/WEB-INF/config/egovframework/validator/validator.xml b/src/main/webapp/WEB-INF/config/egovframework/validator/validator.xml new file mode 100644 index 0000000..453fa36 --- /dev/null +++ b/src/main/webapp/WEB-INF/config/egovframework/validator/validator.xml @@ -0,0 +1,22 @@ + + + + + + +
+ + + + + + + + + +
+
+ +
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/admin/fieldData.jsp b/src/main/webapp/WEB-INF/jsp/admin/fieldData.jsp new file mode 100644 index 0000000..472dbc2 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/fieldData.jsp @@ -0,0 +1,102 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + +모바일센터 관리시스템 + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + + + <%@ include file="../include/header.jsp"%> +
+
+ +
+
+ +
+
 
+
+ + " /> + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
현장수집 데이터
Data ID지역소속담당자수집날짜상태
+ + 수집 + 검증실패 + 검증 + 반영실패 + 반영 + +
요청한 목록이 없습니다.
+ +
+ + +
+
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/admin/fieldView.jsp b/src/main/webapp/WEB-INF/jsp/admin/fieldView.jsp new file mode 100644 index 0000000..b860849 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/fieldView.jsp @@ -0,0 +1,341 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + +모바일센터 관리시스템 + + + + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + + <%@ include file="../include/header.jsp"%> +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + +
담당자
소속담당자연락처
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
지도정보
레이어 ID수집일
지역상태 + + + 수집 + + + 검증실패 + + + 검증성공 + + + 반영실패 + + + 반영 + + +
설명오류내용
+ +
+ +
+
측량데이터
+
+
+ + +
+ + + + + + + + + +
속성정보
+
+ +
    + +
    + + +
    +

    + +

    +

    + + +

    +
    +
    +
    + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/admin/history.jsp b/src/main/webapp/WEB-INF/jsp/admin/history.jsp new file mode 100644 index 0000000..6957725 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/history.jsp @@ -0,0 +1,85 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" + pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + +모바일센터 관리시스템 + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + + + <%@ include file="../include/header.jsp"%> +
    +
    + +
    +
    + +
    +
     
    +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    지도사용 이력
    위치작업내용소속담당자날짜
    <%----%>
    요청한 목록이 없습니다.
    + +
    + + +
    +
    +
    +
    + + diff --git a/src/main/webapp/WEB-INF/jsp/admin/request.jsp b/src/main/webapp/WEB-INF/jsp/admin/request.jsp new file mode 100644 index 0000000..ead85ab --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/request.jsp @@ -0,0 +1,106 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + +모바일센터 관리시스템 + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + + <%@ include file="../include/header.jsp"%> +
    +
    + +
    +
    + + " /> +
    +
    + +
    + +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    지도사용 요청
    번호작업명소속담당자날짜상태
    + + + + + +
    요청한 목록이 없습니다.
    + +
    + + +
    +
    +
    +
    + + diff --git a/src/main/webapp/WEB-INF/jsp/admin/requestView.jsp b/src/main/webapp/WEB-INF/jsp/admin/requestView.jsp new file mode 100644 index 0000000..5533da0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/requestView.jsp @@ -0,0 +1,215 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + + + + +모바일센터 관리시스템 + + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + +<%@ include file="../include/header.jsp"%> +
    + + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + +
    담당자
    소속담당자연락처상태 + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    지도 사용 요청
    작업명
    기간 ~
    장소 + +
    + ${item} +
    +
    +
    레이어 +
    + + + + + /> + + + +
    +
    +
    + + + + /> + + + +
    +
    +
    + + + + /> + + + +
    +
    요청 내용
    + + + + + + + + + + +
    전달 메세지 + +
    + +
    +

    + +

    +

    + + +

    +
    +
    + + + + + + + + +
    전달 메세지
    +
    +

    + +

    +
    +
    +
    +
    +
    +
    + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/admin/userInfo.jsp b/src/main/webapp/WEB-INF/jsp/admin/userInfo.jsp new file mode 100644 index 0000000..31cc6ea --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/userInfo.jsp @@ -0,0 +1,146 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" + pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + +모바일센터 관리시스템 + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + + + <%@ include file="../include/header.jsp"%> +
    +
    + +
    +
    + +
    +
    + + +
    + + +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    회원 관리
    아이디이름소속전화번호이메일가입일상태권한
    + + 관리자 + 사용자 + + + + + +
    요청한 목록이 없습니다.
    + +
    + + +
    +
    + + + + + +
    +
    + + + diff --git a/src/main/webapp/WEB-INF/jsp/admin/userInfoView.jsp b/src/main/webapp/WEB-INF/jsp/admin/userInfoView.jsp new file mode 100644 index 0000000..13b9985 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/admin/userInfoView.jsp @@ -0,0 +1,165 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + +모바일센터 관리시스템 + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + <%@ include file="../include/header.jsp"%> +
    +
    + + + +
    +

    회원 정보 수정

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    아이디${userVO.userid}
    비밀번호 +

    + +
    비밀번호 확인 +
    이름
    소속기관
    연락처
    이메일 +
    + +
    +
    권한 + + +
    +
    +

    + +

    +

    + + + + + + + + + +

    +
    +
    +
    +
    + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/cmmn/dataAccessFailure.jsp b/src/main/webapp/WEB-INF/jsp/cmmn/dataAccessFailure.jsp new file mode 100644 index 0000000..bf361e5 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cmmn/dataAccessFailure.jsp @@ -0,0 +1,13 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + +Error + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cmmn/egovBizException.jsp b/src/main/webapp/WEB-INF/jsp/cmmn/egovBizException.jsp new file mode 100644 index 0000000..50e5187 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cmmn/egovBizException.jsp @@ -0,0 +1,13 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + +Error + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cmmn/egovError.jsp b/src/main/webapp/WEB-INF/jsp/cmmn/egovError.jsp new file mode 100644 index 0000000..50e5187 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cmmn/egovError.jsp @@ -0,0 +1,13 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + +Error + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cmmn/transactionFailure.jsp b/src/main/webapp/WEB-INF/jsp/cmmn/transactionFailure.jsp new file mode 100644 index 0000000..50e5187 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cmmn/transactionFailure.jsp @@ -0,0 +1,13 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + +Error + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cmmn/validator.jsp b/src/main/webapp/WEB-INF/jsp/cmmn/validator.jsp new file mode 100644 index 0000000..2925385 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cmmn/validator.jsp @@ -0,0 +1,3 @@ +<%@ page language="java" contentType="javascript/x-javascript" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/error/EgovAccessDenied.jsp b/src/main/webapp/WEB-INF/jsp/error/EgovAccessDenied.jsp new file mode 100644 index 0000000..5ec03ef --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/error/EgovAccessDenied.jsp @@ -0,0 +1,67 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %> + + + + + + +Error + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + + + +
    + + + + + + + + +
    Access Denied
    +

    + + + + + + +

    +
    + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/error/EgovNotFound.jsp b/src/main/webapp/WEB-INF/jsp/error/EgovNotFound.jsp new file mode 100644 index 0000000..4a064ac --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/error/EgovNotFound.jsp @@ -0,0 +1,62 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %> + + + + + + +Error + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + + + +
    + + + + + + + + +
    404 not found
    +

    + +

    +
    + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/error/EgovServerError.jsp b/src/main/webapp/WEB-INF/jsp/error/EgovServerError.jsp new file mode 100644 index 0000000..b26ecb1 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/error/EgovServerError.jsp @@ -0,0 +1,62 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %> + + + + + + +Error + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + + + +
    + + + + + + + + +
    500 Internal Server error
    +

    + +

    +
    + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/include/header.jsp b/src/main/webapp/WEB-INF/jsp/include/header.jsp new file mode 100644 index 0000000..4b91691 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/include/header.jsp @@ -0,0 +1,62 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> + + + +
    + +
    + + +
    + + +
    + + +
    + + +
    + + +
    + +
    + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/join.jsp b/src/main/webapp/WEB-INF/jsp/join.jsp new file mode 100644 index 0000000..61e517f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/join.jsp @@ -0,0 +1,168 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" + pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + +모바일센터 관리시스템 + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + +
    + +
    +
    + +
    +
    +

    + 회원 정보 입력 +

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    아이디 + + +
    비밀번호
    비밀번호 확인
    이름
    소속기관
    연락처
    이메일 +
    + +
    +
    +
    +

    ※ 회원 가입을 요청한 후에 승인을 기다려주세요.

    +

    +
    +
    + + +
    + + diff --git a/src/main/webapp/WEB-INF/jsp/login.jsp b/src/main/webapp/WEB-INF/jsp/login.jsp new file mode 100644 index 0000000..660b708 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/login.jsp @@ -0,0 +1,64 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + 모바일센터 관리시스템 + + + " rel="stylesheet"> + " rel="stylesheet"> + " rel="stylesheet"> + + +
    + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/map/request.jsp b/src/main/webapp/WEB-INF/jsp/map/request.jsp new file mode 100644 index 0000000..5fd2d9d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/map/request.jsp @@ -0,0 +1,132 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + +모바일센터 관리시스템 + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + <%@ include file="../include/header.jsp"%> +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    지도 사용 요청 목록
    번호작업명날짜상태
    ${idx.count}${item.title}${item.r_date} + + + + + +
    요청한 목록이 없습니다.
    +
    +

    + +

    +
    +
    + + +
    +
    +
    +
    + +
    +
    + + + diff --git a/src/main/webapp/WEB-INF/jsp/map/requestView.jsp b/src/main/webapp/WEB-INF/jsp/map/requestView.jsp new file mode 100644 index 0000000..54146e6 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/map/requestView.jsp @@ -0,0 +1,577 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> + + + + + + + +모바일센터 관리시스템 + + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + +<%@ include file="../include/header.jsp"%> +
    + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    지도 사용 요청
    작업명
    기간 + ~ + +
    장소 +
    + + + + +
    +
    + + + + + + + +
    +
    레이어 + + + + + />${item.name} + + + +
    + + + + />${item.name} + + +
    + + + + />${item.name} + + +
    요청 내용
    +
    +

    + +

    +

    + + +

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    지도 사용 요청
    작업명${useRequestVO.title}상태 + + + + + + + + +
    기간${useRequestVO.s_date} ~ ${useRequestVO.e_date}
    장소 + + +
    + ${item.name} +
    +
    +
    레이어 + +
    + + + + + />${item.name} + + + +
    +
    + +
    + + + + />${item.name} + + +
    +
    + +
    + + + + />${item.name} + + +
    +
    요청 내용${useRequestVO.user_msg}
    전달 메세지${useRequestVO.admin_msg}
    + +
    +

    + +

    +
    +
    +
    +
    +
    +
    + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/map/requestWrite.jsp b/src/main/webapp/WEB-INF/jsp/map/requestWrite.jsp new file mode 100644 index 0000000..687ffdb --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/map/requestWrite.jsp @@ -0,0 +1,397 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + +모바일센터 관리시스템 + + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + +<%@ include file="../include/header.jsp"%> +
    + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    지도 사용 요청
    작업명
    기간 + ~ + +
    장소 +
    + + + + +
    +
    +
    +
    레이어 + + + + + +
    + + + + + +
    + + + + + +
    요청 내용
    +
    +

    + +

    +

    + +

    +
    +
    +
    +
    + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/map/userInfo.jsp b/src/main/webapp/WEB-INF/jsp/map/userInfo.jsp new file mode 100644 index 0000000..c4b3c7e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/map/userInfo.jsp @@ -0,0 +1,135 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + +모바일센터 관리시스템 + + +" rel="stylesheet"> +" rel="stylesheet"> +" rel="stylesheet"> + + + <%@ include file="../include/header.jsp"%> +
    + + + +
    +
    +

    회원 정보 수정

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    아이디${userVO.userid}
    비밀번호 +

    + +
    비밀번호 확인 +
    이름
    소속기관
    연락처
    이메일 +
    + +
    +
    +
    +

    + +

    +
    +
    +
    +
    + + + diff --git a/src/main/webapp/WEB-INF/jsp/redirect.jsp b/src/main/webapp/WEB-INF/jsp/redirect.jsp new file mode 100644 index 0000000..6a30965 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/redirect.jsp @@ -0,0 +1,16 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + 모바일센터 관리시스템 + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..46fffd6 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,99 @@ + + + + egov.sample + + + contextConfigLocation + classpath*:egovframework/spring/context-*.xml + + + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + + + action + org.springframework.web.servlet.DispatcherServlet + + contextConfigLocation + /WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml + + 1 + + + + action + / + + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + + HTMLTagFilter + egovframework.rte.ptl.mvc.filter.HTMLTagFilter + + + HTMLTagFilter + /* + + + + 60 + + + + + + org.springframework.web.context.ContextLoaderListener + + + + index.jsp + + + + BASIC + + + + java.lang.Throwable + /WEB-INF/jsp/error/EgovServerError.jsp + + + 404 + /WEB-INF/jsp/error/EgovNotFound.jsp + + + 500 + /WEB-INF/jsp/error/EgovServerError.jsp + + + diff --git a/src/main/webapp/common/error.jsp b/src/main/webapp/common/error.jsp new file mode 100644 index 0000000..d3ca563 --- /dev/null +++ b/src/main/webapp/common/error.jsp @@ -0,0 +1,24 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + +모바일센터 관리시스템 + + + + + + +
    + + + +
    + +
    +
    + + \ No newline at end of file diff --git a/src/main/webapp/css/KoPubDotum.css b/src/main/webapp/css/KoPubDotum.css new file mode 100644 index 0000000..5b5c281 --- /dev/null +++ b/src/main/webapp/css/KoPubDotum.css @@ -0,0 +1,35 @@ +@font-face { + font-family: 'KoPub Dotum'; + font-weight: 300; + font-style: normal; + src: url('../fonts/KoPubDotumLight.eot'); + src: url('../fonts/KoPubDotumLight.woff2') format('woff2'), + url('../fonts/KoPubDotumLight.woff') format('woff'), + url('../fonts/KoPubDotumLight.ttf') format('truetype'), + url('../fonts/KoPubDotumLight.svg#KoPubDotumLight') format('svg'), + url('../fonts/KoPubDotumLight.eot?#iefix') format('embedded-opentype'); +} + +@font-face { + font-family: 'KoPub Dotum'; + font-weight: 400; + font-style: normal; + src: url('../fonts/KoPubDotumMedium.eot'); + src: url('../fonts/KoPubDotumMedium.woff2') format('woff2'), + url('../fonts/KoPubDotumMedium.woff') format('woff'), + url('../fonts/KoPubDotumMedium.ttf') format('truetype'), + url('../fonts/KoPubDotumMedium.svg#KoPubDotumMedium') format('svg'), + url('../fonts/KoPubDotumMedium.eot?#iefix') format('embedded-opentype'); +} + +@font-face { + font-family: 'KoPub Dotum'; + font-weight: 600; + font-style: normal; + src: url('../fonts/KoPubDotumBold.eot'); + src: url('../fonts/KoPubDotumBold.woff2') format('woff2'), + url('../fonts/KoPubDotumBold.woff') format('woff'), + url('../fonts/KoPubDotumBold.ttf') format('truetype'), + url('../fonts/KoPubDotumBold.svg#KoPubDotumBold') format('svg'), + url('../fonts/KoPubDotumBold.eot?#iefix') format('embedded-opentype'); +} diff --git a/src/main/webapp/css/bootstrap.min.css b/src/main/webapp/css/bootstrap.min.css new file mode 100644 index 0000000..56e044a --- /dev/null +++ b/src/main/webapp/css/bootstrap.min.css @@ -0,0 +1,7204 @@ +/*! + * Bootstrap v3.3.2 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100% +} + +body { + margin: 0 +} + +article, aside, details, figcaption, figure, footer, header, hgroup, + main, menu, nav, section, summary { + display: block +} + +audio, canvas, progress, video { + display: inline-block; + vertical-align: baseline +} + +audio:not ([controls] ){ + display: none; + height: 0 +} + +[hidden], template { + display: none +} + +a { + background-color: transparent +} + +a:active, a:hover { + outline: 0 +} + +abbr[title] { + border-bottom: 1px dotted +} + +b, strong { + font-weight: 700 +} + +dfn { + font-style: italic +} + +h1 { + margin: .67em 0; + font-size: 2em +} + +mark { + color: #000; + background: #ff0 +} + +small { + font-size: 80% +} + +sub, sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline +} + +sup { + top: -.5em +} + +sub { + bottom: -.25em +} + +img { + border: 0 +} + +svg:not (:root ){ + overflow: hidden +} + +figure { + margin: 1em 40px +} + +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box +} + +pre { + overflow: auto +} + +code, kbd, pre, samp { + font-family: monospace, monospace; + font-size: 1em +} + +button, input, optgroup, select, textarea { + margin: 0; + font: inherit; + color: inherit +} + +button { + overflow: visible +} + +button, select { + text-transform: none +} + +button, html input[type=button], input[type=reset], input[type=submit] { + -webkit-appearance: button; + cursor: pointer +} + +button[disabled], html input[disabled] { + cursor: default +} + +button::-moz-focus-inner, input::-moz-focus-inner { + padding: 0; + border: 0 +} + +input { + line-height: normal +} + +input[type=checkbox], input[type=radio] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0 +} + +input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button + { + height: auto +} + +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-cancel-button, input[type=search]::-webkit-search-decoration + { + -webkit-appearance: none +} + +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid silver +} + +legend { + padding: 0; + border: 0 +} + +textarea { + overflow: auto +} + +optgroup { + font-weight: 700 +} + +table { + border-spacing: 0; + border-collapse: collapse +} + +td, th { + padding: 0 +} + /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, :after, :before { + color: #000 !important; + text-shadow: none !important; + background: 0 0 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important + } + a, a:visited { + text-decoration: underline + } + a[href]:after { + content: " (" attr(href) ")" + } + abbr[title]:after { + content: " (" attr(title) ")" + } + a[href^="javascript:"]:after, a[href^="#"]:after { + content: "" + } + blockquote, pre { + border: 1px solid #999; + page-break-inside: avoid + } + thead { + display: table-header-group + } + img, tr { + page-break-inside: avoid + } + img { + max-width: 100% !important + } + h2, h3, p { + orphans: 3; + widows: 3 + } + h2, h3 { + page-break-after: avoid + } + select { + background: #fff !important + } + .navbar { + display: none + } + .btn>.caret, .dropup>.btn>.caret { + border-top-color: #000 !important + } + .label { + border: 1px solid #000 + } + .table { + border-collapse: collapse !important + } + .table td, .table th { + background-color: #fff !important + } + .table-bordered td, .table-bordered th { + border: 1px solid #ddd !important + } +} + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url(../fonts/glyphicons-halflings-regular.eot); + src: url(../fonts/glyphicons-halflings-regular.eot?#iefix) + format('embedded-opentype'), + url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'), + url(../fonts/glyphicons-halflings-regular.woff) format('woff'), + url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'), + url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) + format('svg') +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: 400; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +.glyphicon-asterisk:before { + content: "\2a" +} + +.glyphicon-plus:before { + content: "\2b" +} + +.glyphicon-eur:before, .glyphicon-euro:before { + content: "\20ac" +} + +.glyphicon-minus:before { + content: "\2212" +} + +.glyphicon-cloud:before { + content: "\2601" +} + +.glyphicon-envelope:before { + content: "\2709" +} + +.glyphicon-pencil:before { + content: "\270f" +} + +.glyphicon-glass:before { + content: "\e001" +} + +.glyphicon-music:before { + content: "\e002" +} + +.glyphicon-search:before { + content: "\e003" +} + +.glyphicon-heart:before { + content: "\e005" +} + +.glyphicon-star:before { + content: "\e006" +} + +.glyphicon-star-empty:before { + content: "\e007" +} + +.glyphicon-user:before { + content: "\e008" +} + +.glyphicon-film:before { + content: "\e009" +} + +.glyphicon-th-large:before { + content: "\e010" +} + +.glyphicon-th:before { + content: "\e011" +} + +.glyphicon-th-list:before { + content: "\e012" +} + +.glyphicon-ok:before { + content: "\e013" +} + +.glyphicon-remove:before { + content: "\e014" +} + +.glyphicon-zoom-in:before { + content: "\e015" +} + +.glyphicon-zoom-out:before { + content: "\e016" +} + +.glyphicon-off:before { + content: "\e017" +} + +.glyphicon-signal:before { + content: "\e018" +} + +.glyphicon-cog:before { + content: "\e019" +} + +.glyphicon-trash:before { + content: "\e020" +} + +.glyphicon-home:before { + content: "\e021" +} + +.glyphicon-file:before { + content: "\e022" +} + +.glyphicon-time:before { + content: "\e023" +} + +.glyphicon-road:before { + content: "\e024" +} + +.glyphicon-download-alt:before { + content: "\e025" +} + +.glyphicon-download:before { + content: "\e026" +} + +.glyphicon-upload:before { + content: "\e027" +} + +.glyphicon-inbox:before { + content: "\e028" +} + +.glyphicon-play-circle:before { + content: "\e029" +} + +.glyphicon-repeat:before { + content: "\e030" +} + +.glyphicon-refresh:before { + content: "\e031" +} + +.glyphicon-list-alt:before { + content: "\e032" +} + +.glyphicon-lock:before { + content: "\e033" +} + +.glyphicon-flag:before { + content: "\e034" +} + +.glyphicon-headphones:before { + content: "\e035" +} + +.glyphicon-volume-off:before { + content: "\e036" +} + +.glyphicon-volume-down:before { + content: "\e037" +} + +.glyphicon-volume-up:before { + content: "\e038" +} + +.glyphicon-qrcode:before { + content: "\e039" +} + +.glyphicon-barcode:before { + content: "\e040" +} + +.glyphicon-tag:before { + content: "\e041" +} + +.glyphicon-tags:before { + content: "\e042" +} + +.glyphicon-book:before { + content: "\e043" +} + +.glyphicon-bookmark:before { + content: "\e044" +} + +.glyphicon-print:before { + content: "\e045" +} + +.glyphicon-camera:before { + content: "\e046" +} + +.glyphicon-font:before { + content: "\e047" +} + +.glyphicon-bold:before { + content: "\e048" +} + +.glyphicon-italic:before { + content: "\e049" +} + +.glyphicon-text-height:before { + content: "\e050" +} + +.glyphicon-text-width:before { + content: "\e051" +} + +.glyphicon-align-left:before { + content: "\e052" +} + +.glyphicon-align-center:before { + content: "\e053" +} + +.glyphicon-align-right:before { + content: "\e054" +} + +.glyphicon-align-justify:before { + content: "\e055" +} + +.glyphicon-list:before { + content: "\e056" +} + +.glyphicon-indent-left:before { + content: "\e057" +} + +.glyphicon-indent-right:before { + content: "\e058" +} + +.glyphicon-facetime-video:before { + content: "\e059" +} + +.glyphicon-picture:before { + content: "\e060" +} + +.glyphicon-map-marker:before { + content: "\e062" +} + +.glyphicon-adjust:before { + content: "\e063" +} + +.glyphicon-tint:before { + content: "\e064" +} + +.glyphicon-edit:before { + content: "\e065" +} + +.glyphicon-share:before { + content: "\e066" +} + +.glyphicon-check:before { + content: "\e067" +} + +.glyphicon-move:before { + content: "\e068" +} + +.glyphicon-step-backward:before { + content: "\e069" +} + +.glyphicon-fast-backward:before { + content: "\e070" +} + +.glyphicon-backward:before { + content: "\e071" +} + +.glyphicon-play:before { + content: "\e072" +} + +.glyphicon-pause:before { + content: "\e073" +} + +.glyphicon-stop:before { + content: "\e074" +} + +.glyphicon-forward:before { + content: "\e075" +} + +.glyphicon-fast-forward:before { + content: "\e076" +} + +.glyphicon-step-forward:before { + content: "\e077" +} + +.glyphicon-eject:before { + content: "\e078" +} + +.glyphicon-chevron-left:before { + content: "\e079" +} + +.glyphicon-chevron-right:before { + content: "\e080" +} + +.glyphicon-plus-sign:before { + content: "\e081" +} + +.glyphicon-minus-sign:before { + content: "\e082" +} + +.glyphicon-remove-sign:before { + content: "\e083" +} + +.glyphicon-ok-sign:before { + content: "\e084" +} + +.glyphicon-question-sign:before { + content: "\e085" +} + +.glyphicon-info-sign:before { + content: "\e086" +} + +.glyphicon-screenshot:before { + content: "\e087" +} + +.glyphicon-remove-circle:before { + content: "\e088" +} + +.glyphicon-ok-circle:before { + content: "\e089" +} + +.glyphicon-ban-circle:before { + content: "\e090" +} + +.glyphicon-arrow-left:before { + content: "\e091" +} + +.glyphicon-arrow-right:before { + content: "\e092" +} + +.glyphicon-arrow-up:before { + content: "\e093" +} + +.glyphicon-arrow-down:before { + content: "\e094" +} + +.glyphicon-share-alt:before { + content: "\e095" +} + +.glyphicon-resize-full:before { + content: "\e096" +} + +.glyphicon-resize-small:before { + content: "\e097" +} + +.glyphicon-exclamation-sign:before { + content: "\e101" +} + +.glyphicon-gift:before { + content: "\e102" +} + +.glyphicon-leaf:before { + content: "\e103" +} + +.glyphicon-fire:before { + content: "\e104" +} + +.glyphicon-eye-open:before { + content: "\e105" +} + +.glyphicon-eye-close:before { + content: "\e106" +} + +.glyphicon-warning-sign:before { + content: "\e107" +} + +.glyphicon-plane:before { + content: "\e108" +} + +.glyphicon-calendar:before { + content: "\e109" +} + +.glyphicon-random:before { + content: "\e110" +} + +.glyphicon-comment:before { + content: "\e111" +} + +.glyphicon-magnet:before { + content: "\e112" +} + +.glyphicon-chevron-up:before { + content: "\e113" +} + +.glyphicon-chevron-down:before { + content: "\e114" +} + +.glyphicon-retweet:before { + content: "\e115" +} + +.glyphicon-shopping-cart:before { + content: "\e116" +} + +.glyphicon-folder-close:before { + content: "\e117" +} + +.glyphicon-folder-open:before { + content: "\e118" +} + +.glyphicon-resize-vertical:before { + content: "\e119" +} + +.glyphicon-resize-horizontal:before { + content: "\e120" +} + +.glyphicon-hdd:before { + content: "\e121" +} + +.glyphicon-bullhorn:before { + content: "\e122" +} + +.glyphicon-bell:before { + content: "\e123" +} + +.glyphicon-certificate:before { + content: "\e124" +} + +.glyphicon-thumbs-up:before { + content: "\e125" +} + +.glyphicon-thumbs-down:before { + content: "\e126" +} + +.glyphicon-hand-right:before { + content: "\e127" +} + +.glyphicon-hand-left:before { + content: "\e128" +} + +.glyphicon-hand-up:before { + content: "\e129" +} + +.glyphicon-hand-down:before { + content: "\e130" +} + +.glyphicon-circle-arrow-right:before { + content: "\e131" +} + +.glyphicon-circle-arrow-left:before { + content: "\e132" +} + +.glyphicon-circle-arrow-up:before { + content: "\e133" +} + +.glyphicon-circle-arrow-down:before { + content: "\e134" +} + +.glyphicon-globe:before { + content: "\e135" +} + +.glyphicon-wrench:before { + content: "\e136" +} + +.glyphicon-tasks:before { + content: "\e137" +} + +.glyphicon-filter:before { + content: "\e138" +} + +.glyphicon-briefcase:before { + content: "\e139" +} + +.glyphicon-fullscreen:before { + content: "\e140" +} + +.glyphicon-dashboard:before { + content: "\e141" +} + +.glyphicon-paperclip:before { + content: "\e142" +} + +.glyphicon-heart-empty:before { + content: "\e143" +} + +.glyphicon-link:before { + content: "\e144" +} + +.glyphicon-phone:before { + content: "\e145" +} + +.glyphicon-pushpin:before { + content: "\e146" +} + +.glyphicon-usd:before { + content: "\e148" +} + +.glyphicon-gbp:before { + content: "\e149" +} + +.glyphicon-sort:before { + content: "\e150" +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151" +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152" +} + +.glyphicon-sort-by-order:before { + content: "\e153" +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154" +} + +.glyphicon-sort-by-attributes:before { + content: "\e155" +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156" +} + +.glyphicon-unchecked:before { + content: "\e157" +} + +.glyphicon-expand:before { + content: "\e158" +} + +.glyphicon-collapse-down:before { + content: "\e159" +} + +.glyphicon-collapse-up:before { + content: "\e160" +} + +.glyphicon-log-in:before { + content: "\e161" +} + +.glyphicon-flash:before { + content: "\e162" +} + +.glyphicon-log-out:before { + content: "\e163" +} + +.glyphicon-new-window:before { + content: "\e164" +} + +.glyphicon-record:before { + content: "\e165" +} + +.glyphicon-save:before { + content: "\e166" +} + +.glyphicon-open:before { + content: "\e167" +} + +.glyphicon-saved:before { + content: "\e168" +} + +.glyphicon-import:before { + content: "\e169" +} + +.glyphicon-export:before { + content: "\e170" +} + +.glyphicon-send:before { + content: "\e171" +} + +.glyphicon-floppy-disk:before { + content: "\e172" +} + +.glyphicon-floppy-saved:before { + content: "\e173" +} + +.glyphicon-floppy-remove:before { + content: "\e174" +} + +.glyphicon-floppy-save:before { + content: "\e175" +} + +.glyphicon-floppy-open:before { + content: "\e176" +} + +.glyphicon-credit-card:before { + content: "\e177" +} + +.glyphicon-transfer:before { + content: "\e178" +} + +.glyphicon-cutlery:before { + content: "\e179" +} + +.glyphicon-header:before { + content: "\e180" +} + +.glyphicon-compressed:before { + content: "\e181" +} + +.glyphicon-earphone:before { + content: "\e182" +} + +.glyphicon-phone-alt:before { + content: "\e183" +} + +.glyphicon-tower:before { + content: "\e184" +} + +.glyphicon-stats:before { + content: "\e185" +} + +.glyphicon-sd-video:before { + content: "\e186" +} + +.glyphicon-hd-video:before { + content: "\e187" +} + +.glyphicon-subtitles:before { + content: "\e188" +} + +.glyphicon-sound-stereo:before { + content: "\e189" +} + +.glyphicon-sound-dolby:before { + content: "\e190" +} + +.glyphicon-sound-5-1:before { + content: "\e191" +} + +.glyphicon-sound-6-1:before { + content: "\e192" +} + +.glyphicon-sound-7-1:before { + content: "\e193" +} + +.glyphicon-copyright-mark:before { + content: "\e194" +} + +.glyphicon-registration-mark:before { + content: "\e195" +} + +.glyphicon-cloud-download:before { + content: "\e197" +} + +.glyphicon-cloud-upload:before { + content: "\e198" +} + +.glyphicon-tree-conifer:before { + content: "\e199" +} + +.glyphicon-tree-deciduous:before { + content: "\e200" +} + +.glyphicon-cd:before { + content: "\e201" +} + +.glyphicon-save-file:before { + content: "\e202" +} + +.glyphicon-open-file:before { + content: "\e203" +} + +.glyphicon-level-up:before { + content: "\e204" +} + +.glyphicon-copy:before { + content: "\e205" +} + +.glyphicon-paste:before { + content: "\e206" +} + +.glyphicon-alert:before { + content: "\e209" +} + +.glyphicon-equalizer:before { + content: "\e210" +} + +.glyphicon-king:before { + content: "\e211" +} + +.glyphicon-queen:before { + content: "\e212" +} + +.glyphicon-pawn:before { + content: "\e213" +} + +.glyphicon-bishop:before { + content: "\e214" +} + +.glyphicon-knight:before { + content: "\e215" +} + +.glyphicon-baby-formula:before { + content: "\e216" +} + +.glyphicon-tent:before { + content: "\26fa" +} + +.glyphicon-blackboard:before { + content: "\e218" +} + +.glyphicon-bed:before { + content: "\e219" +} + +.glyphicon-apple:before { + content: "\f8ff" +} + +.glyphicon-erase:before { + content: "\e221" +} + +.glyphicon-hourglass:before { + content: "\231b" +} + +.glyphicon-lamp:before { + content: "\e223" +} + +.glyphicon-duplicate:before { + content: "\e224" +} + +.glyphicon-piggy-bank:before { + content: "\e225" +} + +.glyphicon-scissors:before { + content: "\e226" +} + +.glyphicon-bitcoin:before { + content: "\e227" +} + +.glyphicon-yen:before { + content: "\00a5" +} + +.glyphicon-ruble:before { + content: "\20bd" +} + +.glyphicon-scale:before { + content: "\e230" +} + +.glyphicon-ice-lolly:before { + content: "\e231" +} + +.glyphicon-ice-lolly-tasted:before { + content: "\e232" +} + +.glyphicon-education:before { + content: "\e233" +} + +.glyphicon-option-horizontal:before { + content: "\e234" +} + +.glyphicon-option-vertical:before { + content: "\e235" +} + +.glyphicon-menu-hamburger:before { + content: "\e236" +} + +.glyphicon-modal-window:before { + content: "\e237" +} + +.glyphicon-oil:before { + content: "\e238" +} + +.glyphicon-grain:before { + content: "\e239" +} + +.glyphicon-sunglasses:before { + content: "\e240" +} + +.glyphicon-text-size:before { + content: "\e241" +} + +.glyphicon-text-color:before { + content: "\e242" +} + +.glyphicon-text-background:before { + content: "\e243" +} + +.glyphicon-object-align-top:before { + content: "\e244" +} + +.glyphicon-object-align-bottom:before { + content: "\e245" +} + +.glyphicon-object-align-horizontal:before { + content: "\e246" +} + +.glyphicon-object-align-left:before { + content: "\e247" +} + +.glyphicon-object-align-vertical:before { + content: "\e248" +} + +.glyphicon-object-align-right:before { + content: "\e249" +} + +.glyphicon-triangle-right:before { + content: "\e250" +} + +.glyphicon-triangle-left:before { + content: "\e251" +} + +.glyphicon-triangle-bottom:before { + content: "\e252" +} + +.glyphicon-triangle-top:before { + content: "\e253" +} + +.glyphicon-console:before { + content: "\e254" +} + +.glyphicon-superscript:before { + content: "\e255" +} + +.glyphicon-subscript:before { + content: "\e256" +} + +.glyphicon-menu-left:before { + content: "\e257" +} + +.glyphicon-menu-right:before { + content: "\e258" +} + +.glyphicon-menu-down:before { + content: "\e259" +} + +.glyphicon-menu-up:before { + content: "\e260" +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +:after, :before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0) +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff +} + +button, input, select, textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit +} + +a { + color: #337ab7; + text-decoration: none +} + +a:focus, a:hover { + color: #23527c; + text-decoration: underline +} + +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +figure { + margin: 0 +} + +img { + vertical-align: middle +} + +.carousel-inner>.item>a>img, .carousel-inner>.item>img, .img-responsive, + .thumbnail a>img, .thumbnail>img { + display: block; + max-width: 100%; + height: auto +} + +.img-rounded { + border-radius: 6px +} + +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out +} + +.img-circle { + border-radius: 50% +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0 +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto +} + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit +} + +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, .h4 .small, + .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h1 .small, h1 small, + h2 .small, h2 small, h3 .small, h3 small, h4 .small, h4 small, h5 .small, + h5 small, h6 .small, h6 small { + font-weight: 400; + line-height: 1; + color: #777 +} + +.h1, .h2, .h3, h1, h2, h3 { + margin-top: 20px; + margin-bottom: 10px +} + +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, h1 .small, + h1 small, h2 .small, h2 small, h3 .small, h3 small { + font-size: 65% +} + +.h4, .h5, .h6, h4, h5, h6 { + margin-top: 10px; + margin-bottom: 10px +} + +.h4 .small, .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h4 .small, + h4 small, h5 .small, h5 small, h6 .small, h6 small { + font-size: 75% +} + +.h1, h1 { + font-size: 36px +} + +.h2, h2 { + font-size: 30px +} + +.h3, h3 { + font-size: 24px +} + +.h4, h4 { + font-size: 18px +} + +.h5, h5 { + font-size: 14px +} + +.h6, h6 { + font-size: 12px +} + +p { + margin: 0 0 10px +} + +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4 +} + +@media ( min-width :768px) { + .lead { + font-size: 21px + } +} + +.small, small { + font-size: 85% +} + +.mark, mark { + padding: .2em; + background-color: #fcf8e3 +} + +.text-left { + text-align: left +} + +.text-right { + text-align: right +} + +.text-center { + text-align: center +} + +.text-justify { + text-align: justify +} + +.text-nowrap { + white-space: nowrap +} + +.text-lowercase { + text-transform: lowercase +} + +.text-uppercase { + text-transform: uppercase +} + +.text-capitalize { + text-transform: capitalize +} + +.text-muted { + color: #777 +} + +.text-primary { + color: #337ab7 +} + +a.text-primary:hover { + color: #286090 +} + +.text-success { + color: #3c763d +} + +a.text-success:hover { + color: #2b542c +} + +.text-info { + color: #31708f +} + +a.text-info:hover { + color: #245269 +} + +.text-warning { + color: #8a6d3b +} + +a.text-warning:hover { + color: #66512c +} + +.text-danger { + color: #a94442 +} + +a.text-danger:hover { + color: #843534 +} + +.bg-primary { + color: #fff; + background-color: #337ab7 +} + +a.bg-primary:hover { + background-color: #286090 +} + +.bg-success { + background-color: #dff0d8 +} + +a.bg-success:hover { + background-color: #c1e2b3 +} + +.bg-info { + background-color: #d9edf7 +} + +a.bg-info:hover { + background-color: #afd9ee +} + +.bg-warning { + background-color: #fcf8e3 +} + +a.bg-warning:hover { + background-color: #f7ecb5 +} + +.bg-danger { + background-color: #f2dede +} + +a.bg-danger:hover { + background-color: #e4b9b9 +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee +} + +ol, ul { + margin-top: 0; + margin-bottom: 10px +} + +ol ol, ol ul, ul ol, ul ul { + margin-bottom: 0 +} + +.list-unstyled { + padding-left: 0; + list-style: none +} + +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none +} + +.list-inline>li { + display: inline-block; + padding-right: 5px; + padding-left: 5px +} + +dl { + margin-top: 0; + margin-bottom: 20px +} + +dd, dt { + line-height: 1.42857143 +} + +dt { + font-weight: 700 +} + +dd { + margin-left: 0 +} + +@media ( min-width :768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap + } + .dl-horizontal dd { + margin-left: 180px + } +} + +abbr[data-original-title], abbr[title] { + cursor: help; + border-bottom: 1px dotted #777 +} + +.initialism { + font-size: 90%; + text-transform: uppercase +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee +} + +blockquote ol:last-child, blockquote p:last-child, blockquote ul:last-child + { + margin-bottom: 0 +} + +blockquote .small, blockquote footer, blockquote small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777 +} + +blockquote .small:before, blockquote footer:before, blockquote small:before + { + content: '\2014 \00A0' +} + +.blockquote-reverse, blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0 +} + +.blockquote-reverse .small:before, .blockquote-reverse footer:before, + .blockquote-reverse small:before, blockquote.pull-right .small:before, + blockquote.pull-right footer:before, blockquote.pull-right small:before + { + content: '' +} + +.blockquote-reverse .small:after, .blockquote-reverse footer:after, + .blockquote-reverse small:after, blockquote.pull-right .small:after, + blockquote.pull-right footer:after, blockquote.pull-right small:after { + content: '\00A0 \2014' +} + +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143 +} + +code, kbd, pre, samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px +} + +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25) +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + -webkit-box-shadow: none; + box-shadow: none +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0 +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto +} + +@media ( min-width :768px) { + .container { + width: 750px + } +} + +@media ( min-width :992px) { + .container { + width: 970px + } +} + +@media ( min-width :1200px) { + .container { + width: 1170px + } +} + +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto +} + +.row { + margin-right: -15px; + margin-left: -15px +} + +.col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, + .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, + .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, + .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, + .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, + .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, + .col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, + .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px +} + +.col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, + .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 { + float: left +} + +.col-xs-12 { + width: 100% +} + +.col-xs-11 { + width: 91.66666667% +} + +.col-xs-10 { + width: 83.33333333% +} + +.col-xs-9 { + width: 75% +} + +.col-xs-8 { + width: 66.66666667% +} + +.col-xs-7 { + width: 58.33333333% +} + +.col-xs-6 { + width: 50% +} + +.col-xs-5 { + width: 41.66666667% +} + +.col-xs-4 { + width: 33.33333333% +} + +.col-xs-3 { + width: 25% +} + +.col-xs-2 { + width: 16.66666667% +} + +.col-xs-1 { + width: 8.33333333% +} + +.col-xs-pull-12 { + right: 100% +} + +.col-xs-pull-11 { + right: 91.66666667% +} + +.col-xs-pull-10 { + right: 83.33333333% +} + +.col-xs-pull-9 { + right: 75% +} + +.col-xs-pull-8 { + right: 66.66666667% +} + +.col-xs-pull-7 { + right: 58.33333333% +} + +.col-xs-pull-6 { + right: 50% +} + +.col-xs-pull-5 { + right: 41.66666667% +} + +.col-xs-pull-4 { + right: 33.33333333% +} + +.col-xs-pull-3 { + right: 25% +} + +.col-xs-pull-2 { + right: 16.66666667% +} + +.col-xs-pull-1 { + right: 8.33333333% +} + +.col-xs-pull-0 { + right: auto +} + +.col-xs-push-12 { + left: 100% +} + +.col-xs-push-11 { + left: 91.66666667% +} + +.col-xs-push-10 { + left: 83.33333333% +} + +.col-xs-push-9 { + left: 75% +} + +.col-xs-push-8 { + left: 66.66666667% +} + +.col-xs-push-7 { + left: 58.33333333% +} + +.col-xs-push-6 { + left: 50% +} + +.col-xs-push-5 { + left: 41.66666667% +} + +.col-xs-push-4 { + left: 33.33333333% +} + +.col-xs-push-3 { + left: 25% +} + +.col-xs-push-2 { + left: 16.66666667% +} + +.col-xs-push-1 { + left: 8.33333333% +} + +.col-xs-push-0 { + left: auto +} + +.col-xs-offset-12 { + margin-left: 100% +} + +.col-xs-offset-11 { + margin-left: 91.66666667% +} + +.col-xs-offset-10 { + margin-left: 83.33333333% +} + +.col-xs-offset-9 { + margin-left: 75% +} + +.col-xs-offset-8 { + margin-left: 66.66666667% +} + +.col-xs-offset-7 { + margin-left: 58.33333333% +} + +.col-xs-offset-6 { + margin-left: 50% +} + +.col-xs-offset-5 { + margin-left: 41.66666667% +} + +.col-xs-offset-4 { + margin-left: 33.33333333% +} + +.col-xs-offset-3 { + margin-left: 25% +} + +.col-xs-offset-2 { + margin-left: 16.66666667% +} + +.col-xs-offset-1 { + margin-left: 8.33333333% +} + +.col-xs-offset-0 { + margin-left: 0 +} + +@media ( min-width :768px) { + .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, + .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9 { + float: left + } + .col-sm-12 { + width: 100% + } + .col-sm-11 { + width: 91.66666667% + } + .col-sm-10 { + width: 83.33333333% + } + .col-sm-9 { + width: 75% + } + .col-sm-8 { + width: 66.66666667% + } + .col-sm-7 { + width: 58.33333333% + } + .col-sm-6 { + width: 50% + } + .col-sm-5 { + width: 41.66666667% + } + .col-sm-4 { + width: 33.33333333% + } + .col-sm-3 { + width: 25% + } + .col-sm-2 { + width: 16.66666667% + } + .col-sm-1 { + width: 8.33333333% + } + .col-sm-pull-12 { + right: 100% + } + .col-sm-pull-11 { + right: 91.66666667% + } + .col-sm-pull-10 { + right: 83.33333333% + } + .col-sm-pull-9 { + right: 75% + } + .col-sm-pull-8 { + right: 66.66666667% + } + .col-sm-pull-7 { + right: 58.33333333% + } + .col-sm-pull-6 { + right: 50% + } + .col-sm-pull-5 { + right: 41.66666667% + } + .col-sm-pull-4 { + right: 33.33333333% + } + .col-sm-pull-3 { + right: 25% + } + .col-sm-pull-2 { + right: 16.66666667% + } + .col-sm-pull-1 { + right: 8.33333333% + } + .col-sm-pull-0 { + right: auto + } + .col-sm-push-12 { + left: 100% + } + .col-sm-push-11 { + left: 91.66666667% + } + .col-sm-push-10 { + left: 83.33333333% + } + .col-sm-push-9 { + left: 75% + } + .col-sm-push-8 { + left: 66.66666667% + } + .col-sm-push-7 { + left: 58.33333333% + } + .col-sm-push-6 { + left: 50% + } + .col-sm-push-5 { + left: 41.66666667% + } + .col-sm-push-4 { + left: 33.33333333% + } + .col-sm-push-3 { + left: 25% + } + .col-sm-push-2 { + left: 16.66666667% + } + .col-sm-push-1 { + left: 8.33333333% + } + .col-sm-push-0 { + left: auto + } + .col-sm-offset-12 { + margin-left: 100% + } + .col-sm-offset-11 { + margin-left: 91.66666667% + } + .col-sm-offset-10 { + margin-left: 83.33333333% + } + .col-sm-offset-9 { + margin-left: 75% + } + .col-sm-offset-8 { + margin-left: 66.66666667% + } + .col-sm-offset-7 { + margin-left: 58.33333333% + } + .col-sm-offset-6 { + margin-left: 50% + } + .col-sm-offset-5 { + margin-left: 41.66666667% + } + .col-sm-offset-4 { + margin-left: 33.33333333% + } + .col-sm-offset-3 { + margin-left: 25% + } + .col-sm-offset-2 { + margin-left: 16.66666667% + } + .col-sm-offset-1 { + margin-left: 8.33333333% + } + .col-sm-offset-0 { + margin-left: 0 + } +} + +@media ( min-width :992px) { + .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, + .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9 { + float: left + } + .col-md-12 { + width: 100% + } + .col-md-11 { + width: 91.66666667% + } + .col-md-10 { + width: 83.33333333% + } + .col-md-9 { + width: 75% + } + .col-md-8 { + width: 66.66666667% + } + .col-md-7 { + width: 58.33333333% + } + .col-md-6 { + width: 50% + } + .col-md-5 { + width: 41.66666667% + } + .col-md-4 { + width: 33.33333333% + } + .col-md-3 { + width: 25% + } + .col-md-2 { + width: 16.66666667% + } + .col-md-1 { + width: 8.33333333% + } + .col-md-pull-12 { + right: 100% + } + .col-md-pull-11 { + right: 91.66666667% + } + .col-md-pull-10 { + right: 83.33333333% + } + .col-md-pull-9 { + right: 75% + } + .col-md-pull-8 { + right: 66.66666667% + } + .col-md-pull-7 { + right: 58.33333333% + } + .col-md-pull-6 { + right: 50% + } + .col-md-pull-5 { + right: 41.66666667% + } + .col-md-pull-4 { + right: 33.33333333% + } + .col-md-pull-3 { + right: 25% + } + .col-md-pull-2 { + right: 16.66666667% + } + .col-md-pull-1 { + right: 8.33333333% + } + .col-md-pull-0 { + right: auto + } + .col-md-push-12 { + left: 100% + } + .col-md-push-11 { + left: 91.66666667% + } + .col-md-push-10 { + left: 83.33333333% + } + .col-md-push-9 { + left: 75% + } + .col-md-push-8 { + left: 66.66666667% + } + .col-md-push-7 { + left: 58.33333333% + } + .col-md-push-6 { + left: 50% + } + .col-md-push-5 { + left: 41.66666667% + } + .col-md-push-4 { + left: 33.33333333% + } + .col-md-push-3 { + left: 25% + } + .col-md-push-2 { + left: 16.66666667% + } + .col-md-push-1 { + left: 8.33333333% + } + .col-md-push-0 { + left: auto + } + .col-md-offset-12 { + margin-left: 100% + } + .col-md-offset-11 { + margin-left: 91.66666667% + } + .col-md-offset-10 { + margin-left: 83.33333333% + } + .col-md-offset-9 { + margin-left: 75% + } + .col-md-offset-8 { + margin-left: 66.66666667% + } + .col-md-offset-7 { + margin-left: 58.33333333% + } + .col-md-offset-6 { + margin-left: 50% + } + .col-md-offset-5 { + margin-left: 41.66666667% + } + .col-md-offset-4 { + margin-left: 33.33333333% + } + .col-md-offset-3 { + margin-left: 25% + } + .col-md-offset-2 { + margin-left: 16.66666667% + } + .col-md-offset-1 { + margin-left: 8.33333333% + } + .col-md-offset-0 { + margin-left: 0 + } +} + +@media ( min-width :1200px) { + .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, + .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9 { + float: left + } + .col-lg-12 { + width: 100% + } + .col-lg-11 { + width: 91.66666667% + } + .col-lg-10 { + width: 83.33333333% + } + .col-lg-9 { + width: 75% + } + .col-lg-8 { + width: 66.66666667% + } + .col-lg-7 { + width: 58.33333333% + } + .col-lg-6 { + width: 50% + } + .col-lg-5 { + width: 41.66666667% + } + .col-lg-4 { + width: 33.33333333% + } + .col-lg-3 { + width: 25% + } + .col-lg-2 { + width: 16.66666667% + } + .col-lg-1 { + width: 8.33333333% + } + .col-lg-pull-12 { + right: 100% + } + .col-lg-pull-11 { + right: 91.66666667% + } + .col-lg-pull-10 { + right: 83.33333333% + } + .col-lg-pull-9 { + right: 75% + } + .col-lg-pull-8 { + right: 66.66666667% + } + .col-lg-pull-7 { + right: 58.33333333% + } + .col-lg-pull-6 { + right: 50% + } + .col-lg-pull-5 { + right: 41.66666667% + } + .col-lg-pull-4 { + right: 33.33333333% + } + .col-lg-pull-3 { + right: 25% + } + .col-lg-pull-2 { + right: 16.66666667% + } + .col-lg-pull-1 { + right: 8.33333333% + } + .col-lg-pull-0 { + right: auto + } + .col-lg-push-12 { + left: 100% + } + .col-lg-push-11 { + left: 91.66666667% + } + .col-lg-push-10 { + left: 83.33333333% + } + .col-lg-push-9 { + left: 75% + } + .col-lg-push-8 { + left: 66.66666667% + } + .col-lg-push-7 { + left: 58.33333333% + } + .col-lg-push-6 { + left: 50% + } + .col-lg-push-5 { + left: 41.66666667% + } + .col-lg-push-4 { + left: 33.33333333% + } + .col-lg-push-3 { + left: 25% + } + .col-lg-push-2 { + left: 16.66666667% + } + .col-lg-push-1 { + left: 8.33333333% + } + .col-lg-push-0 { + left: auto + } + .col-lg-offset-12 { + margin-left: 100% + } + .col-lg-offset-11 { + margin-left: 91.66666667% + } + .col-lg-offset-10 { + margin-left: 83.33333333% + } + .col-lg-offset-9 { + margin-left: 75% + } + .col-lg-offset-8 { + margin-left: 66.66666667% + } + .col-lg-offset-7 { + margin-left: 58.33333333% + } + .col-lg-offset-6 { + margin-left: 50% + } + .col-lg-offset-5 { + margin-left: 41.66666667% + } + .col-lg-offset-4 { + margin-left: 33.33333333% + } + .col-lg-offset-3 { + margin-left: 25% + } + .col-lg-offset-2 { + margin-left: 16.66666667% + } + .col-lg-offset-1 { + margin-left: 8.33333333% + } + .col-lg-offset-0 { + margin-left: 0 + } +} + +table { + background-color: transparent +} + +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left +} + +th { + text-align: left +} + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px +} + +.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, + .table>thead>tr>td, .table>thead>tr>th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd +} + +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 2px solid #ddd +} + +.table>caption+thead>tr:first-child>td, .table>caption+thead>tr:first-child>th, + .table>colgroup+thead>tr:first-child>td, .table>colgroup+thead>tr:first-child>th, + .table>thead:first-child>tr:first-child>td, .table>thead:first-child>tr:first-child>th + { + border-top: 0 +} + +.table>tbody+tbody { + border-top: 2px solid #ddd +} + +.table .table { + background-color: #fff +} + +.table-condensed>tbody>tr>td, .table-condensed>tbody>tr>th, + .table-condensed>tfoot>tr>td, .table-condensed>tfoot>tr>th, + .table-condensed>thead>tr>td, .table-condensed>thead>tr>th { + padding: 5px +} + +.table-bordered { + border: 1px solid #ddd +} + +.table-bordered>tbody>tr>td, .table-bordered>tbody>tr>th, + .table-bordered>tfoot>tr>td, .table-bordered>tfoot>tr>th, + .table-bordered>thead>tr>td, .table-bordered>thead>tr>th { + border: 1px solid #ddd +} + +.table-bordered>thead>tr>td, .table-bordered>thead>tr>th { + border-bottom-width: 2px +} + +.table-striped>tbody>tr:nth-of-type(odd) { + background-color: #f9f9f9 +} + +.table-hover>tbody>tr:hover { + background-color: #f5f5f5 +} + +table col[class*=col-] { + position: static; + display: table-column; + float: none +} + +table td[class*=col-], table th[class*=col-] { + position: static; + display: table-cell; + float: none +} + +.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, + .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, + .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, + .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active + { + background-color: #f5f5f5 +} + +.table-hover>tbody>tr.active:hover>td, .table-hover>tbody>tr.active:hover>th, + .table-hover>tbody>tr:hover>.active, .table-hover>tbody>tr>td.active:hover, + .table-hover>tbody>tr>th.active:hover { + background-color: #e8e8e8 +} + +.table>tbody>tr.success>td, .table>tbody>tr.success>th, .table>tbody>tr>td.success, + .table>tbody>tr>th.success, .table>tfoot>tr.success>td, .table>tfoot>tr.success>th, + .table>tfoot>tr>td.success, .table>tfoot>tr>th.success, .table>thead>tr.success>td, + .table>thead>tr.success>th, .table>thead>tr>td.success, .table>thead>tr>th.success + { + background-color: #dff0d8 +} + +.table-hover>tbody>tr.success:hover>td, .table-hover>tbody>tr.success:hover>th, + .table-hover>tbody>tr:hover>.success, .table-hover>tbody>tr>td.success:hover, + .table-hover>tbody>tr>th.success:hover { + background-color: #d0e9c6 +} + +.table>tbody>tr.info>td, .table>tbody>tr.info>th, .table>tbody>tr>td.info, + .table>tbody>tr>th.info, .table>tfoot>tr.info>td, .table>tfoot>tr.info>th, + .table>tfoot>tr>td.info, .table>tfoot>tr>th.info, .table>thead>tr.info>td, + .table>thead>tr.info>th, .table>thead>tr>td.info, .table>thead>tr>th.info + { + background-color: #d9edf7 +} + +.table-hover>tbody>tr.info:hover>td, .table-hover>tbody>tr.info:hover>th, + .table-hover>tbody>tr:hover>.info, .table-hover>tbody>tr>td.info:hover, + .table-hover>tbody>tr>th.info:hover { + background-color: #c4e3f3 +} + +.table>tbody>tr.warning>td, .table>tbody>tr.warning>th, .table>tbody>tr>td.warning, + .table>tbody>tr>th.warning, .table>tfoot>tr.warning>td, .table>tfoot>tr.warning>th, + .table>tfoot>tr>td.warning, .table>tfoot>tr>th.warning, .table>thead>tr.warning>td, + .table>thead>tr.warning>th, .table>thead>tr>td.warning, .table>thead>tr>th.warning + { + background-color: #fcf8e3 +} + +.table-hover>tbody>tr.warning:hover>td, .table-hover>tbody>tr.warning:hover>th, + .table-hover>tbody>tr:hover>.warning, .table-hover>tbody>tr>td.warning:hover, + .table-hover>tbody>tr>th.warning:hover { + background-color: #faf2cc +} + +.table>tbody>tr.danger>td, .table>tbody>tr.danger>th, .table>tbody>tr>td.danger, + .table>tbody>tr>th.danger, .table>tfoot>tr.danger>td, .table>tfoot>tr.danger>th, + .table>tfoot>tr>td.danger, .table>tfoot>tr>th.danger, .table>thead>tr.danger>td, + .table>thead>tr.danger>th, .table>thead>tr>td.danger, .table>thead>tr>th.danger + { + background-color: #f2dede +} + +.table-hover>tbody>tr.danger:hover>td, .table-hover>tbody>tr.danger:hover>th, + .table-hover>tbody>tr:hover>.danger, .table-hover>tbody>tr>td.danger:hover, + .table-hover>tbody>tr>th.danger:hover { + background-color: #ebcccc +} + +.table-responsive { + min-height: .01%; + overflow-x: auto +} + +@media screen and (max-width:767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd + } + .table-responsive>.table { + margin-bottom: 0 + } + .table-responsive>.table>tbody>tr>td, .table-responsive>.table>tbody>tr>th, + .table-responsive>.table>tfoot>tr>td, .table-responsive>.table>tfoot>tr>th, + .table-responsive>.table>thead>tr>td, .table-responsive>.table>thead>tr>th + { + white-space: nowrap + } + .table-responsive>.table-bordered { + border: 0 + } + .table-responsive>.table-bordered>tbody>tr>td:first-child, + .table-responsive>.table-bordered>tbody>tr>th:first-child, + .table-responsive>.table-bordered>tfoot>tr>td:first-child, + .table-responsive>.table-bordered>tfoot>tr>th:first-child, + .table-responsive>.table-bordered>thead>tr>td:first-child, + .table-responsive>.table-bordered>thead>tr>th:first-child { + border-left: 0 + } + .table-responsive>.table-bordered>tbody>tr>td:last-child, + .table-responsive>.table-bordered>tbody>tr>th:last-child, + .table-responsive>.table-bordered>tfoot>tr>td:last-child, + .table-responsive>.table-bordered>tfoot>tr>th:last-child, + .table-responsive>.table-bordered>thead>tr>td:last-child, + .table-responsive>.table-bordered>thead>tr>th:last-child { + border-right: 0 + } + .table-responsive>.table-bordered>tbody>tr:last-child>td, + .table-responsive>.table-bordered>tbody>tr:last-child>th, + .table-responsive>.table-bordered>tfoot>tr:last-child>td, + .table-responsive>.table-bordered>tfoot>tr:last-child>th { + border-bottom: 0 + } +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0 +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5 +} + +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: 700 +} + +input[type=search] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +input[type=checkbox], input[type=radio] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal +} + +input[type=file] { + display: block +} + +input[type=range] { + display: block; + width: 100% +} + +select[multiple], select[size] { + height: auto +} + +input[type=file]:focus, input[type=checkbox]:focus, input[type=radio]:focus + { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555 +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow + ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out + .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px + rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px + rgba(102, 175, 233, .6) +} + +.form-control::-moz-placeholder { + color: #999; + opacity: 1 +} + +.form-control:-ms-input-placeholder { + color: #999 +} + +.form-control::-webkit-input-placeholder { + color: #999 +} + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control + { + cursor: not-allowed; + background-color: #eee; + opacity: 1 +} + +textarea.form-control { + height: auto +} + +input[type=search] { + -webkit-appearance: none +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + input[type=date], input[type=time], input[type=datetime-local], input[type=month] + { + line-height: 34px + } + .input-group-sm input[type=date], .input-group-sm input[type=time], + .input-group-sm input[type=datetime-local], .input-group-sm input[type=month], + input[type=date].input-sm, input[type=time].input-sm, input[type=datetime-local].input-sm, + input[type=month].input-sm { + line-height: 30px + } + .input-group-lg input[type=date], .input-group-lg input[type=time], + .input-group-lg input[type=datetime-local], .input-group-lg input[type=month], + input[type=date].input-lg, input[type=time].input-lg, input[type=datetime-local].input-lg, + input[type=month].input-lg { + line-height: 46px + } +} + +.form-group { + margin-bottom: 15px +} + +.checkbox, .radio { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px +} + +.checkbox label, .radio label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + cursor: pointer +} + +.checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], + .radio input[type=radio], .radio-inline input[type=radio] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px +} + +.checkbox+.checkbox, .radio+.radio { + margin-top: -5px +} + +.checkbox-inline, .radio-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + vertical-align: middle; + cursor: pointer +} + +.checkbox-inline+.checkbox-inline, .radio-inline+.radio-inline { + margin-top: 0; + margin-left: 10px +} + +fieldset[disabled] input[type=checkbox], fieldset[disabled] input[type=radio], + input[type=checkbox].disabled, input[type=checkbox][disabled], input[type=radio].disabled, + input[type=radio][disabled] { + cursor: not-allowed +} + +.checkbox-inline.disabled, .radio-inline.disabled, fieldset[disabled] .checkbox-inline, + fieldset[disabled] .radio-inline { + cursor: not-allowed +} + +.checkbox.disabled label, .radio.disabled label, fieldset[disabled] .checkbox label, + fieldset[disabled] .radio label { + cursor: not-allowed +} + +.form-control-static { + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0 +} + +.form-control-static.input-lg, .form-control-static.input-sm { + padding-right: 0; + padding-left: 0 +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +select.input-sm { + height: 30px; + line-height: 30px +} + +select[multiple].input-sm, textarea.input-sm { + height: auto +} + +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +select.form-group-sm .form-control { + height: 30px; + line-height: 30px +} + +select[multiple].form-group-sm .form-control, textarea.form-group-sm .form-control + { + height: auto +} + +.form-group-sm .form-control-static { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5 +} + +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px +} + +select.input-lg { + height: 46px; + line-height: 46px +} + +select[multiple].input-lg, textarea.input-lg { + height: auto +} + +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px +} + +select.form-group-lg .form-control { + height: 46px; + line-height: 46px +} + +select[multiple].form-group-lg .form-control, textarea.form-group-lg .form-control + { + height: auto +} + +.form-group-lg .form-control-static { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333 +} + +.has-feedback { + position: relative +} + +.has-feedback .form-control { + padding-right: 42.5px +} + +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none +} + +.input-lg+.form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px +} + +.input-sm+.form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px +} + +.has-success .checkbox, .has-success .checkbox-inline, .has-success .control-label, + .has-success .help-block, .has-success .radio, .has-success .radio-inline, + .has-success.checkbox label, .has-success.checkbox-inline label, + .has-success.radio label, .has-success.radio-inline label { + color: #3c763d +} + +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) +} + +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168 +} + +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d +} + +.has-success .form-control-feedback { + color: #3c763d +} + +.has-warning .checkbox, .has-warning .checkbox-inline, .has-warning .control-label, + .has-warning .help-block, .has-warning .radio, .has-warning .radio-inline, + .has-warning.checkbox label, .has-warning.checkbox-inline label, + .has-warning.radio label, .has-warning.radio-inline label { + color: #8a6d3b +} + +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) +} + +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b +} + +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b +} + +.has-warning .form-control-feedback { + color: #8a6d3b +} + +.has-error .checkbox, .has-error .checkbox-inline, .has-error .control-label, + .has-error .help-block, .has-error .radio, .has-error .radio-inline, + .has-error.checkbox label, .has-error.checkbox-inline label, .has-error.radio label, + .has-error.radio-inline label { + color: #a94442 +} + +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) +} + +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483 +} + +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442 +} + +.has-error .form-control-feedback { + color: #a94442 +} + +.has-feedback label ~.form-control-feedback { + top: 25px +} + +.has-feedback label.sr-only ~.form-control-feedback { + top: 0 +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373 +} + +@media ( min-width :768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle + } + .form-inline .form-control-static { + display: inline-block + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle + } + .form-inline .input-group .form-control, .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn { + width: auto + } + .form-inline .input-group>.form-control { + width: 100% + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle + } + .form-inline .checkbox, .form-inline .radio { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle + } + .form-inline .checkbox label, .form-inline .radio label { + padding-left: 0 + } + .form-inline .checkbox input[type=checkbox], .form-inline .radio input[type=radio] + { + position: relative; + margin-left: 0 + } + .form-inline .has-feedback .form-control-feedback { + top: 0 + } +} + +.form-horizontal .checkbox, .form-horizontal .checkbox-inline, + .form-horizontal .radio, .form-horizontal .radio-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0 +} + +.form-horizontal .checkbox, .form-horizontal .radio { + min-height: 27px +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px +} + +@media ( min-width :768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right + } +} + +.form-horizontal .has-feedback .form-control-feedback { + right: 15px +} + +@media ( min-width :768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.33px + } +} + +@media ( min-width :768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px +} + +.btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, + .btn:active:focus, .btn:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +.btn.focus, .btn:focus, .btn:hover { + color: #333; + text-decoration: none +} + +.btn.active, .btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125) +} + +.btn.disabled, .btn[disabled], fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity = 65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65 +} + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc +} + +.btn-default.active, .btn-default.focus, .btn-default:active, + .btn-default:focus, .btn-default:hover, .open>.dropdown-toggle.btn-default + { + color: #333; + background-color: #e6e6e6; + border-color: #adadad +} + +.btn-default.active, .btn-default:active, .open>.dropdown-toggle.btn-default + { + background-image: none +} + +.btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled.focus, + .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, + .btn-default[disabled], .btn-default[disabled].active, .btn-default[disabled].focus, + .btn-default[disabled]:active, .btn-default[disabled]:focus, + .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, + fieldset[disabled] .btn-default.focus, fieldset[disabled] .btn-default:active, + fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover + { + background-color: #fff; + border-color: #ccc +} + +.btn-default .badge { + color: #fff; + background-color: #333 +} + +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4 +} + +.btn-primary.active, .btn-primary.focus, .btn-primary:active, + .btn-primary:focus, .btn-primary:hover, .open>.dropdown-toggle.btn-primary + { + color: #fff; + background-color: #286090; + border-color: #204d74 +} + +.btn-primary.active, .btn-primary:active, .open>.dropdown-toggle.btn-primary + { + background-image: none +} + +.btn-primary.disabled, .btn-primary.disabled.active, .btn-primary.disabled.focus, + .btn-primary.disabled:active, .btn-primary.disabled:focus, .btn-primary.disabled:hover, + .btn-primary[disabled], .btn-primary[disabled].active, .btn-primary[disabled].focus, + .btn-primary[disabled]:active, .btn-primary[disabled]:focus, + .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary.active, + fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, + fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover + { + background-color: #337ab7; + border-color: #2e6da4 +} + +.btn-primary .badge { + color: #337ab7; + background-color: #fff +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-success.active, .btn-success.focus, .btn-success:active, + .btn-success:focus, .btn-success:hover, .open>.dropdown-toggle.btn-success + { + color: #fff; + background-color: #449d44; + border-color: #398439 +} + +.btn-success.active, .btn-success:active, .open>.dropdown-toggle.btn-success + { + background-image: none +} + +.btn-success.disabled, .btn-success.disabled.active, .btn-success.disabled.focus, + .btn-success.disabled:active, .btn-success.disabled:focus, .btn-success.disabled:hover, + .btn-success[disabled], .btn-success[disabled].active, .btn-success[disabled].focus, + .btn-success[disabled]:active, .btn-success[disabled]:focus, + .btn-success[disabled]:hover, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success.active, + fieldset[disabled] .btn-success.focus, fieldset[disabled] .btn-success:active, + fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:hover + { + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-success .badge { + color: #5cb85c; + background-color: #fff +} + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-info.active, .btn-info.focus, .btn-info:active, .btn-info:focus, + .btn-info:hover, .open>.dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc +} + +.btn-info.active, .btn-info:active, .open>.dropdown-toggle.btn-info { + background-image: none +} + +.btn-info.disabled, .btn-info.disabled.active, .btn-info.disabled.focus, + .btn-info.disabled:active, .btn-info.disabled:focus, .btn-info.disabled:hover, + .btn-info[disabled], .btn-info[disabled].active, .btn-info[disabled].focus, + .btn-info[disabled]:active, .btn-info[disabled]:focus, .btn-info[disabled]:hover, + fieldset[disabled] .btn-info, fieldset[disabled] .btn-info.active, + fieldset[disabled] .btn-info.focus, fieldset[disabled] .btn-info:active, + fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:hover + { + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-info .badge { + color: #5bc0de; + background-color: #fff +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-warning.active, .btn-warning.focus, .btn-warning:active, + .btn-warning:focus, .btn-warning:hover, .open>.dropdown-toggle.btn-warning + { + color: #fff; + background-color: #ec971f; + border-color: #d58512 +} + +.btn-warning.active, .btn-warning:active, .open>.dropdown-toggle.btn-warning + { + background-image: none +} + +.btn-warning.disabled, .btn-warning.disabled.active, .btn-warning.disabled.focus, + .btn-warning.disabled:active, .btn-warning.disabled:focus, .btn-warning.disabled:hover, + .btn-warning[disabled], .btn-warning[disabled].active, .btn-warning[disabled].focus, + .btn-warning[disabled]:active, .btn-warning[disabled]:focus, + .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning.active, + fieldset[disabled] .btn-warning.focus, fieldset[disabled] .btn-warning:active, + fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:hover + { + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-danger.active, .btn-danger.focus, .btn-danger:active, .btn-danger:focus, + .btn-danger:hover, .open>.dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925 +} + +.btn-danger.active, .btn-danger:active, .open>.dropdown-toggle.btn-danger + { + background-image: none +} + +.btn-danger.disabled, .btn-danger.disabled.active, .btn-danger.disabled.focus, + .btn-danger.disabled:active, .btn-danger.disabled:focus, .btn-danger.disabled:hover, + .btn-danger[disabled], .btn-danger[disabled].active, .btn-danger[disabled].focus, + .btn-danger[disabled]:active, .btn-danger[disabled]:focus, .btn-danger[disabled]:hover, + fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger.active, + fieldset[disabled] .btn-danger.focus, fieldset[disabled] .btn-danger:active, + fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:hover + { + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-danger .badge { + color: #d9534f; + background-color: #fff +} + +.btn-link { + font-weight: 400; + color: #337ab7; + border-radius: 0 +} + +.btn-link, .btn-link.active, .btn-link:active, .btn-link[disabled], + fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-link, .btn-link:active, .btn-link:focus, .btn-link:hover { + border-color: transparent +} + +.btn-link:focus, .btn-link:hover { + color: #23527c; + text-decoration: underline; + background-color: transparent +} + +.btn-link[disabled]:focus, .btn-link[disabled]:hover, fieldset[disabled] .btn-link:focus, + fieldset[disabled] .btn-link:hover { + color: #777; + text-decoration: none +} + +.btn-group-lg>.btn, .btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px +} + +.btn-group-sm>.btn, .btn-sm { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-group-xs>.btn, .btn-xs { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-block { + display: block; + width: 100% +} + +.btn-block+.btn-block { + margin-top: 5px +} + +input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].btn-block + { + width: 100% +} + +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear +} + +.fade.in { + opacity: 1 +} + +.collapse { + display: none; + visibility: hidden +} + +.collapse.in { + display: block; + visibility: visible +} + +tr.collapse.in { + display: table-row +} + +tbody.collapse.in { + display: table-row-group +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent +} + +.dropdown, .dropup { + position: relative +} + +.dropdown-toggle:focus { + outline: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175) +} + +.dropdown-menu.pull-right { + right: 0; + left: auto +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5 +} + +.dropdown-menu>li>a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #333; + white-space: nowrap +} + +.dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover { + color: #262626; + text-decoration: none; + background-color: #f5f5f5 +} + +.dropdown-menu>.active>a, .dropdown-menu>.active>a:focus, .dropdown-menu>.active>a:hover + { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0 +} + +.dropdown-menu>.disabled>a, .dropdown-menu>.disabled>a:focus, + .dropdown-menu>.disabled>a:hover { + color: #777 +} + +.dropdown-menu>.disabled>a:focus, .dropdown-menu>.disabled>a:hover { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false) +} + +.open>.dropdown-menu { + display: block +} + +.open>a { + outline: 0 +} + +.dropdown-menu-right { + right: 0; + left: auto +} + +.dropdown-menu-left { + right: auto; + left: 0 +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990 +} + +.pull-right>.dropdown-menu { + right: 0; + left: auto +} + +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px solid +} + +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px +} + +@media ( min-width :768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0 + } +} + +.btn-group, .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle +} + +.btn-group-vertical>.btn, .btn-group>.btn { + position: relative; + float: left +} + +.btn-group-vertical>.btn.active, .btn-group-vertical>.btn:active, + .btn-group-vertical>.btn:focus, .btn-group-vertical>.btn:hover, + .btn-group>.btn.active, .btn-group>.btn:active, .btn-group>.btn:focus, + .btn-group>.btn:hover { + z-index: 2 +} + +.btn-group .btn+.btn, .btn-group .btn+.btn-group, .btn-group .btn-group+.btn, + .btn-group .btn-group+.btn-group { + margin-left: -1px +} + +.btn-toolbar { + margin-left: -5px +} + +.btn-toolbar .btn-group, .btn-toolbar .input-group { + float: left +} + +.btn-toolbar>.btn, .btn-toolbar>.btn-group, .btn-toolbar>.input-group { + margin-left: 5px +} + +.btn-group>.btn:not (:first-child ):not (:last-child ):not (.dropdown-toggle + ){ + border-radius: 0 +} + +.btn-group>.btn:first-child { + margin-left: 0 +} + +.btn-group>.btn:first-child:not (:last-child ):not (.dropdown-toggle ){ + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group>.btn:last-child:not (:first-child ), .btn-group>.dropdown-toggle:not + (:first-child ){ + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group>.btn-group { + float: left +} + +.btn-group>.btn-group:not (:first-child ):not (:last-child )>.btn { + border-radius: 0 +} + +.btn-group>.btn-group:first-child:not (:last-child )>.btn:last-child, + .btn-group>.btn-group:first-child:not (:last-child )>.dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group>.btn-group:last-child:not (:first-child )>.btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0 +} + +.btn-group>.btn+.dropdown-toggle { + padding-right: 8px; + padding-left: 8px +} + +.btn-group>.btn-lg+.dropdown-toggle { + padding-right: 12px; + padding-left: 12px +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125) +} + +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none +} + +.btn .caret { + margin-left: 0 +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0 +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px +} + +.btn-group-vertical>.btn, .btn-group-vertical>.btn-group, + .btn-group-vertical>.btn-group>.btn { + display: block; + float: none; + width: 100%; + max-width: 100% +} + +.btn-group-vertical>.btn-group>.btn { + float: none +} + +.btn-group-vertical>.btn+.btn, .btn-group-vertical>.btn+.btn-group, + .btn-group-vertical>.btn-group+.btn, .btn-group-vertical>.btn-group+.btn-group + { + margin-top: -1px; + margin-left: 0 +} + +.btn-group-vertical>.btn:not (:first-child ):not (:last-child ){ + border-radius: 0 +} + +.btn-group-vertical>.btn:first-child:not (:last-child ){ + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical>.btn:last-child:not (:first-child ){ + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 4px +} + +.btn-group-vertical>.btn-group:not (:first-child ):not (:last-child )>.btn + { + border-radius: 0 +} + +.btn-group-vertical>.btn-group:first-child:not (:last-child )>.btn:last-child, + .btn-group-vertical>.btn-group:first-child:not (:last-child )>.dropdown-toggle + { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical>.btn-group:last-child:not (:first-child )>.btn:first-child + { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate +} + +.btn-group-justified>.btn, .btn-group-justified>.btn-group { + display: table-cell; + float: none; + width: 1% +} + +.btn-group-justified>.btn-group .btn { + width: 100% +} + +.btn-group-justified>.btn-group .dropdown-menu { + left: auto +} + +[data-toggle=buttons]>.btn input[type=checkbox], [data-toggle=buttons]>.btn input[type=radio], + [data-toggle=buttons]>.btn-group>.btn input[type=checkbox], [data-toggle=buttons]>.btn-group>.btn input[type=radio] + { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none +} + +.input-group { + position: relative; + display: table; + border-collapse: separate +} + +.input-group[class*=col-] { + float: none; + padding-right: 0; + padding-left: 0 +} + +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0 +} + +.input-group-lg>.form-control, .input-group-lg>.input-group-addon, + .input-group-lg>.input-group-btn>.btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px +} + +select.input-group-lg>.form-control, select.input-group-lg>.input-group-addon, + select.input-group-lg>.input-group-btn>.btn { + height: 46px; + line-height: 46px +} + +select[multiple].input-group-lg>.form-control, select[multiple].input-group-lg>.input-group-addon, + select[multiple].input-group-lg>.input-group-btn>.btn, textarea.input-group-lg>.form-control, + textarea.input-group-lg>.input-group-addon, textarea.input-group-lg>.input-group-btn>.btn + { + height: auto +} + +.input-group-sm>.form-control, .input-group-sm>.input-group-addon, + .input-group-sm>.input-group-btn>.btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +select.input-group-sm>.form-control, select.input-group-sm>.input-group-addon, + select.input-group-sm>.input-group-btn>.btn { + height: 30px; + line-height: 30px +} + +select[multiple].input-group-sm>.form-control, select[multiple].input-group-sm>.input-group-addon, + select[multiple].input-group-sm>.input-group-btn>.btn, textarea.input-group-sm>.form-control, + textarea.input-group-sm>.input-group-addon, textarea.input-group-sm>.input-group-btn>.btn + { + height: auto +} + +.input-group .form-control, .input-group-addon, .input-group-btn { + display: table-cell +} + +.input-group .form-control:not (:first-child ):not (:last-child ), + .input-group-addon:not (:first-child ):not (:last-child ), + .input-group-btn:not (:first-child ):not (:last-child ){ + border-radius: 0 +} + +.input-group-addon, .input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px +} + +.input-group-addon input[type=checkbox], .input-group-addon input[type=radio] + { + margin-top: 0 +} + +.input-group .form-control:first-child, .input-group-addon:first-child, + .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, + .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not + (:last-child )>.btn, .input-group-btn:last-child>.btn:not (:last-child + ):not (.dropdown-toggle ){ + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group-addon:first-child { + border-right: 0 +} + +.input-group .form-control:last-child, .input-group-addon:last-child, + .input-group-btn:first-child>.btn-group:not (:first-child )>.btn, + .input-group-btn:first-child>.btn:not (:first-child ), .input-group-btn:last-child>.btn, + .input-group-btn:last-child>.btn-group>.btn, .input-group-btn:last-child>.dropdown-toggle + { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group-addon:last-child { + border-left: 0 +} + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap +} + +.input-group-btn>.btn { + position: relative +} + +.input-group-btn>.btn+.btn { + margin-left: -1px +} + +.input-group-btn>.btn:active, .input-group-btn>.btn:focus, + .input-group-btn>.btn:hover { + z-index: 2 +} + +.input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group + { + margin-right: -1px +} + +.input-group-btn:last-child>.btn, .input-group-btn:last-child>.btn-group + { + margin-left: -1px +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.nav>li { + position: relative; + display: block +} + +.nav>li>a { + position: relative; + display: block; + padding: 10px 15px +} + +.nav>li>a:focus, .nav>li>a:hover { + text-decoration: none; + background-color: #eee +} + +.nav>li.disabled>a { + color: #777 +} + +.nav>li.disabled>a:focus, .nav>li.disabled>a:hover { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent +} + +.nav .open>a, .nav .open>a:focus, .nav .open>a:hover { + background-color: #eee; + border-color: #337ab7 +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5 +} + +.nav>li>a>img { + max-width: none +} + +.nav-tabs { + border-bottom: 1px solid #ddd +} + +.nav-tabs>li { + float: left; + margin-bottom: -1px +} + +.nav-tabs>li>a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0 +} + +.nav-tabs>li>a:hover { + border-color: #eee #eee #ddd +} + +.nav-tabs>li.active>a, .nav-tabs>li.active>a:focus, .nav-tabs>li.active>a:hover + { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0 +} + +.nav-tabs.nav-justified>li { + float: none +} + +.nav-tabs.nav-justified>li>a { + margin-bottom: 5px; + text-align: center +} + +.nav-tabs.nav-justified>.dropdown .dropdown-menu { + top: auto; + left: auto +} + +@media ( min-width :768px) { + .nav-tabs.nav-justified>li { + display: table-cell; + width: 1% + } + .nav-tabs.nav-justified>li>a { + margin-bottom: 0 + } +} + +.nav-tabs.nav-justified>li>a { + margin-right: 0; + border-radius: 4px +} + +.nav-tabs.nav-justified>.active>a, .nav-tabs.nav-justified>.active>a:focus, + .nav-tabs.nav-justified>.active>a:hover { + border: 1px solid #ddd +} + +@media ( min-width :768px) { + .nav-tabs.nav-justified>li>a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0 + } + .nav-tabs.nav-justified>.active>a, .nav-tabs.nav-justified>.active>a:focus, + .nav-tabs.nav-justified>.active>a:hover { + border-bottom-color: #fff + } +} + +.nav-pills>li { + float: left +} + +.nav-pills>li>a { + border-radius: 4px +} + +.nav-pills>li+li { + margin-left: 2px +} + +.nav-pills>li.active>a, .nav-pills>li.active>a:focus, .nav-pills>li.active>a:hover + { + color: #fff; + background-color: #337ab7 +} + +.nav-stacked>li { + float: none +} + +.nav-stacked>li+li { + margin-top: 2px; + margin-left: 0 +} + +.nav-justified { + width: 100% +} + +.nav-justified>li { + float: none +} + +.nav-justified>li>a { + margin-bottom: 5px; + text-align: center +} + +.nav-justified>.dropdown .dropdown-menu { + top: auto; + left: auto +} + +@media ( min-width :768px) { + .nav-justified>li { + display: table-cell; + width: 1% + } + .nav-justified>li>a { + margin-bottom: 0 + } +} + +.nav-tabs-justified { + border-bottom: 0 +} + +.nav-tabs-justified>li>a { + margin-right: 0; + border-radius: 4px +} + +.nav-tabs-justified>.active>a, .nav-tabs-justified>.active>a:focus, + .nav-tabs-justified>.active>a:hover { + border: 1px solid #ddd +} + +@media ( min-width :768px) { + .nav-tabs-justified>li>a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0 + } + .nav-tabs-justified>.active>a, .nav-tabs-justified>.active>a:focus, + .nav-tabs-justified>.active>a:hover { + border-bottom-color: #fff + } +} + +.tab-content>.tab-pane { + display: none; + visibility: hidden +} + +.tab-content>.active { + display: block; + visibility: visible +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent +} + +@media ( min-width :768px) { + .navbar { + border-radius: 4px + } +} + +@media ( min-width :768px) { + .navbar-header { + float: left + } +} + +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1) +} + +.navbar-collapse.in { + overflow-y: auto +} + +@media ( min-width :768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + visibility: visible !important + } + .navbar-collapse.in { + overflow-y: visible + } + .navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse { + padding-right: 0; + padding-left: 0 + } +} + +.navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse + { + max-height: 340px +} + +@media ( max-device-width :480px) and (orientation:landscape) { + .navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse + { + max-height: 200px + } +} + +.container-fluid>.navbar-collapse, .container-fluid>.navbar-header, + .container>.navbar-collapse, .container>.navbar-header { + margin-right: -15px; + margin-left: -15px +} + +@media ( min-width :768px) { + .container-fluid>.navbar-collapse, .container-fluid>.navbar-header, + .container>.navbar-collapse, .container>.navbar-header { + margin-right: 0; + margin-left: 0 + } +} + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px +} + +@media ( min-width :768px) { + .navbar-static-top { + border-radius: 0 + } +} + +.navbar-fixed-bottom, .navbar-fixed-top { + position: fixed; + right: 0; + left: 0; + z-index: 1030 +} + +@media ( min-width :768px) { + .navbar-fixed-bottom, .navbar-fixed-top { + border-radius: 0 + } +} + +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0 +} + +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px +} + +.navbar-brand:focus, .navbar-brand:hover { + text-decoration: none +} + +.navbar-brand>img { + display: block +} + +@media ( min-width :768px) { + .navbar>.container .navbar-brand, .navbar>.container-fluid .navbar-brand + { + margin-left: -15px + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px +} + +.navbar-toggle:focus { + outline: 0 +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px +} + +.navbar-toggle .icon-bar+.icon-bar { + margin-top: 4px +} + +@media ( min-width :768px) { + .navbar-toggle { + display: none + } +} + +.navbar-nav { + margin: 7.5px -15px +} + +.navbar-nav>li>a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px +} + +@media ( max-width :767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none + } + .navbar-nav .open .dropdown-menu .dropdown-header, .navbar-nav .open .dropdown-menu>li>a + { + padding: 5px 15px 5px 25px + } + .navbar-nav .open .dropdown-menu>li>a { + line-height: 20px + } + .navbar-nav .open .dropdown-menu>li>a:focus, .navbar-nav .open .dropdown-menu>li>a:hover + { + background-image: none + } +} + +@media ( min-width :768px) { + .navbar-nav { + float: left; + margin: 0 + } + .navbar-nav>li { + float: left + } + .navbar-nav>li>a { + padding-top: 15px; + padding-bottom: 15px + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 + rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 + rgba(255, 255, 255, .1) +} + +@media ( min-width :768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle + } + .navbar-form .form-control-static { + display: inline-block + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle + } + .navbar-form .input-group .form-control, .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn { + width: auto + } + .navbar-form .input-group>.form-control { + width: 100% + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle + } + .navbar-form .checkbox, .navbar-form .radio { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle + } + .navbar-form .checkbox label, .navbar-form .radio label { + padding-left: 0 + } + .navbar-form .checkbox input[type=checkbox], .navbar-form .radio input[type=radio] + { + position: relative; + margin-left: 0 + } + .navbar-form .has-feedback .form-control-feedback { + top: 0 + } +} + +@media ( max-width :767px) { + .navbar-form .form-group { + margin-bottom: 5px + } + .navbar-form .form-group:last-child { + margin-bottom: 0 + } +} + +@media ( min-width :768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none + } +} + +.navbar-nav>li>.dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px +} + +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px +} + +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px +} + +.navbar-text { + margin-top: 15px; + margin-bottom: 15px +} + +@media ( min-width :768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px + } +} + +@media ( min-width :768px) { + .navbar-left { + float: left !important + } + .navbar-right { + float: right !important; + margin-right: -15px + } + .navbar-right ~.navbar-right { + margin-right: 0 + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7 +} + +.navbar-default .navbar-brand { + color: #777 +} + +.navbar-default .navbar-brand:focus, .navbar-default .navbar-brand:hover + { + color: #5e5e5e; + background-color: transparent +} + +.navbar-default .navbar-text { + color: #777 +} + +.navbar-default .navbar-nav>li>a { + color: #777 +} + +.navbar-default .navbar-nav>li>a:focus, .navbar-default .navbar-nav>li>a:hover + { + color: #333; + background-color: transparent +} + +.navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:focus, + .navbar-default .navbar-nav>.active>a:hover { + color: #555; + background-color: #e7e7e7 +} + +.navbar-default .navbar-nav>.disabled>a, .navbar-default .navbar-nav>.disabled>a:focus, + .navbar-default .navbar-nav>.disabled>a:hover { + color: #ccc; + background-color: transparent +} + +.navbar-default .navbar-toggle { + border-color: #ddd +} + +.navbar-default .navbar-toggle:focus, .navbar-default .navbar-toggle:hover + { + background-color: #ddd +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888 +} + +.navbar-default .navbar-collapse, .navbar-default .navbar-form { + border-color: #e7e7e7 +} + +.navbar-default .navbar-nav>.open>a, .navbar-default .navbar-nav>.open>a:focus, + .navbar-default .navbar-nav>.open>a:hover { + color: #555; + background-color: #e7e7e7 +} + +@media ( max-width :767px) { + .navbar-default .navbar-nav .open .dropdown-menu>li>a { + color: #777 + } + .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus, + .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover { + color: #333; + background-color: transparent + } + .navbar-default .navbar-nav .open .dropdown-menu>.active>a, + .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus, + .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover { + color: #555; + background-color: #e7e7e7 + } + .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a, + .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus, + .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover { + color: #ccc; + background-color: transparent + } +} + +.navbar-default .navbar-link { + color: #777 +} + +.navbar-default .navbar-link:hover { + color: #333 +} + +.navbar-default .btn-link { + color: #777 +} + +.navbar-default .btn-link:focus, .navbar-default .btn-link:hover { + color: #333 +} + +.navbar-default .btn-link[disabled]:focus, .navbar-default .btn-link[disabled]:hover, + fieldset[disabled] .navbar-default .btn-link:focus, fieldset[disabled] .navbar-default .btn-link:hover + { + color: #ccc +} + +.navbar-inverse { + background-color: #222; + border-color: #080808 +} + +.navbar-inverse .navbar-brand { + color: #9d9d9d +} + +.navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-brand:hover + { + color: #fff; + background-color: transparent +} + +.navbar-inverse .navbar-text { + color: #9d9d9d +} + +.navbar-inverse .navbar-nav>li>a { + color: #9d9d9d +} + +.navbar-inverse .navbar-nav>li>a:focus, .navbar-inverse .navbar-nav>li>a:hover + { + color: #fff; + background-color: transparent +} + +.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:focus, + .navbar-inverse .navbar-nav>.active>a:hover { + color: #fff; + background-color: #080808 +} + +.navbar-inverse .navbar-nav>.disabled>a, .navbar-inverse .navbar-nav>.disabled>a:focus, + .navbar-inverse .navbar-nav>.disabled>a:hover { + color: #444; + background-color: transparent +} + +.navbar-inverse .navbar-toggle { + border-color: #333 +} + +.navbar-inverse .navbar-toggle:focus, .navbar-inverse .navbar-toggle:hover + { + background-color: #333 +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff +} + +.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { + border-color: #101010 +} + +.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:focus, + .navbar-inverse .navbar-nav>.open>a:hover { + color: #fff; + background-color: #080808 +} + +@media ( max-width :767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header { + border-color: #080808 + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808 + } + .navbar-inverse .navbar-nav .open .dropdown-menu>li>a { + color: #9d9d9d + } + .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus, + .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover { + color: #fff; + background-color: transparent + } + .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a, + .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus, + .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover { + color: #fff; + background-color: #080808 + } + .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a, + .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus, + .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover { + color: #444; + background-color: transparent + } +} + +.navbar-inverse .navbar-link { + color: #9d9d9d +} + +.navbar-inverse .navbar-link:hover { + color: #fff +} + +.navbar-inverse .btn-link { + color: #9d9d9d +} + +.navbar-inverse .btn-link:focus, .navbar-inverse .btn-link:hover { + color: #fff +} + +.navbar-inverse .btn-link[disabled]:focus, .navbar-inverse .btn-link[disabled]:hover, + fieldset[disabled] .navbar-inverse .btn-link:focus, fieldset[disabled] .navbar-inverse .btn-link:hover + { + color: #444 +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px +} + +.breadcrumb>li { + display: inline-block +} + +.breadcrumb>li+li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0" +} + +.breadcrumb>.active { + color: #777 +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px +} + +.pagination>li { + display: inline +} + +.pagination>li>a, .pagination>li>span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd +} + +.pagination>li:first-child>a, .pagination>li:first-child>span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px +} + +.pagination>li:last-child>a, .pagination>li:last-child>span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px +} + +.pagination>li>a:focus, .pagination>li>a:hover, .pagination>li>span:focus, + .pagination>li>span:hover { + color: #23527c; + background-color: #eee; + border-color: #ddd +} + +.pagination>.active>a, .pagination>.active>a:focus, .pagination>.active>a:hover, + .pagination>.active>span, .pagination>.active>span:focus, .pagination>.active>span:hover + { + z-index: 2; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7 +} + +.pagination>.disabled>a, .pagination>.disabled>a:focus, .pagination>.disabled>a:hover, + .pagination>.disabled>span, .pagination>.disabled>span:focus, + .pagination>.disabled>span:hover { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd +} + +.pagination-lg>li>a, .pagination-lg>li>span { + padding: 10px 16px; + font-size: 18px +} + +.pagination-lg>li:first-child>a, .pagination-lg>li:first-child>span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px +} + +.pagination-lg>li:last-child>a, .pagination-lg>li:last-child>span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px +} + +.pagination-sm>li>a, .pagination-sm>li>span { + padding: 5px 10px; + font-size: 12px +} + +.pagination-sm>li:first-child>a, .pagination-sm>li:first-child>span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px +} + +.pagination-sm>li:last-child>a, .pagination-sm>li:last-child>span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none +} + +.pager li { + display: inline +} + +.pager li>a, .pager li>span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px +} + +.pager li>a:focus, .pager li>a:hover { + text-decoration: none; + background-color: #eee +} + +.pager .next>a, .pager .next>span { + float: right +} + +.pager .previous>a, .pager .previous>span { + float: left +} + +.pager .disabled>a, .pager .disabled>a:focus, .pager .disabled>a:hover, + .pager .disabled>span { + color: #777; + cursor: not-allowed; + background-color: #fff +} + +.label { + display: inline-block; + width:75px; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em +} + +a.label:focus, a.label:hover { + color: #fff; + text-decoration: none; + cursor: pointer +} + +.label:empty { + display: none +} + +.btn .label { + position: relative; + top: -1px +} + +.label-default { + background-color: #777 +} + +.label-default[href]:focus, .label-default[href]:hover { + background-color: #5e5e5e +} + +.label-primary { + background-color: #337ab7 +} + +.label-primary[href]:focus, .label-primary[href]:hover { + background-color: #286090 +} + +.label-success { + background-color: #5cb85c +} + +.label-success[href]:focus, .label-success[href]:hover { + background-color: #449d44 +} + +.label-info { + background-color: #5bc0de +} + +.label-info[href]:focus, .label-info[href]:hover { + background-color: #31b0d5 +} + +.label-warning { + background-color: #f0ad4e +} + +.label-warning[href]:focus, .label-warning[href]:hover { + background-color: #ec971f +} + +.label-danger { + background-color: #d9534f +} + +.label-danger[href]:focus, .label-danger[href]:hover { + background-color: #c9302c +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #777; + border-radius: 10px +} + +.badge:empty { + display: none +} + +.btn .badge { + position: relative; + top: -1px +} + +.btn-xs .badge { + top: 0; + padding: 1px 5px +} + +a.badge:focus, a.badge:hover { + color: #fff; + text-decoration: none; + cursor: pointer +} + +.list-group-item.active>.badge, .nav-pills>.active>a>.badge { + color: #337ab7; + background-color: #fff +} + +.list-group-item>.badge { + float: right +} + +.list-group-item>.badge+.badge { + margin-right: 5px +} + +.nav-pills>li>a>.badge { + margin-left: 3px +} + +.jumbotron { + padding: 30px 15px; + margin-bottom: 30px; + color: inherit; + background-color: #eee +} + +.jumbotron .h1, .jumbotron h1 { + color: inherit +} + +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200 +} + +.jumbotron>hr { + border-top-color: #d5d5d5 +} + +.container .jumbotron, .container-fluid .jumbotron { + border-radius: 6px +} + +.jumbotron .container { + max-width: 100% +} + +@media screen and (min-width:768px) { + .jumbotron { + padding: 48px 0 + } + .container .jumbotron, .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px + } + .jumbotron .h1, .jumbotron h1 { + font-size: 63px + } +} + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out +} + +.thumbnail a>img, .thumbnail>img { + margin-right: auto; + margin-left: auto +} + +a.thumbnail.active, a.thumbnail:focus, a.thumbnail:hover { + border-color: #337ab7 +} + +.thumbnail .caption { + padding: 9px; + color: #333 +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px +} + +.alert h4 { + margin-top: 0; + color: inherit +} + +.alert .alert-link { + font-weight: 700 +} + +.alert>p, .alert>ul { + margin-bottom: 0 +} + +.alert>p+p { + margin-top: 5px +} + +.alert-dismissable, .alert-dismissible { + padding-right: 35px +} + +.alert-dismissable .close, .alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit +} + +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6 +} + +.alert-success hr { + border-top-color: #c9e2b3 +} + +.alert-success .alert-link { + color: #2b542c +} + +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1 +} + +.alert-info hr { + border-top-color: #a6e1ec +} + +.alert-info .alert-link { + color: #245269 +} + +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc +} + +.alert-warning hr { + border-top-color: #f7e1b5 +} + +.alert-warning .alert-link { + color: #66512c +} + +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1 +} + +.alert-danger hr { + border-top-color: #e4b9c0 +} + +.alert-danger .alert-link { + color: #843534 +} + +@ +-webkit-keyframes progress-bar-stripes { + from {background-position: 40px 0 +} + +to { + background-position: 0 0 +} + +} +@ +-o-keyframes progress-bar-stripes { + from {background-position: 40px 0 +} + +to { + background-position: 0 0 +} + +} +@ +keyframes progress-bar-stripes { + from {background-position: 40px 0 +} + +to { + background-position: 0 0 +} + +} +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1) +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease +} + +.progress-bar-striped, .progress-striped .progress-bar { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px +} + +.progress-bar.active, .progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite +} + +.progress-bar-success { + background-color: #5cb85c +} + +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) +} + +.progress-bar-info { + background-color: #5bc0de +} + +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) +} + +.progress-bar-warning { + background-color: #f0ad4e +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) +} + +.progress-bar-danger { + background-color: #d9534f +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) + 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, + transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, + rgba(255, 255, 255, .15) 75%, transparent 75%, transparent) +} + +.media { + margin-top: 15px +} + +.media:first-child { + margin-top: 0 +} + +.media, .media-body { + overflow: hidden; + zoom: 1 +} + +.media-body { + width: 10000px +} + +.media-object { + display: block +} + +.media-right, .media>.pull-right { + padding-left: 10px +} + +.media-left, .media>.pull-left { + padding-right: 10px +} + +.media-body, .media-left, .media-right { + display: table-cell; + vertical-align: top +} + +.media-middle { + vertical-align: middle +} + +.media-bottom { + vertical-align: bottom +} + +.media-heading { + margin-top: 0; + margin-bottom: 5px +} + +.media-list { + padding-left: 0; + list-style: none +} + +.list-group { + padding-left: 0; + margin-bottom: 20px +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd +} + +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px +} + +a.list-group-item { + color: #555 +} + +a.list-group-item .list-group-item-heading { + color: #333 +} + +a.list-group-item:focus, a.list-group-item:hover { + color: #555; + text-decoration: none; + background-color: #f5f5f5 +} + +.list-group-item.disabled, .list-group-item.disabled:focus, + .list-group-item.disabled:hover { + color: #777; + cursor: not-allowed; + background-color: #eee +} + +.list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading, + .list-group-item.disabled:hover .list-group-item-heading { + color: inherit +} + +.list-group-item.disabled .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text, + .list-group-item.disabled:hover .list-group-item-text { + color: #777 +} + +.list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover + { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7 +} + +.list-group-item.active .list-group-item-heading, .list-group-item.active .list-group-item-heading>.small, + .list-group-item.active .list-group-item-heading>small, + .list-group-item.active:focus .list-group-item-heading, + .list-group-item.active:focus .list-group-item-heading>.small, + .list-group-item.active:focus .list-group-item-heading>small, + .list-group-item.active:hover .list-group-item-heading, + .list-group-item.active:hover .list-group-item-heading>.small, + .list-group-item.active:hover .list-group-item-heading>small { + color: inherit +} + +.list-group-item.active .list-group-item-text, .list-group-item.active:focus .list-group-item-text, + .list-group-item.active:hover .list-group-item-text { + color: #c7ddef +} + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8 +} + +a.list-group-item-success { + color: #3c763d +} + +a.list-group-item-success .list-group-item-heading { + color: inherit +} + +a.list-group-item-success:focus, a.list-group-item-success:hover { + color: #3c763d; + background-color: #d0e9c6 +} + +a.list-group-item-success.active, a.list-group-item-success.active:focus, + a.list-group-item-success.active:hover { + color: #fff; + background-color: #3c763d; + border-color: #3c763d +} + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7 +} + +a.list-group-item-info { + color: #31708f +} + +a.list-group-item-info .list-group-item-heading { + color: inherit +} + +a.list-group-item-info:focus, a.list-group-item-info:hover { + color: #31708f; + background-color: #c4e3f3 +} + +a.list-group-item-info.active, a.list-group-item-info.active:focus, a.list-group-item-info.active:hover + { + color: #fff; + background-color: #31708f; + border-color: #31708f +} + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3 +} + +a.list-group-item-warning { + color: #8a6d3b +} + +a.list-group-item-warning .list-group-item-heading { + color: inherit +} + +a.list-group-item-warning:focus, a.list-group-item-warning:hover { + color: #8a6d3b; + background-color: #faf2cc +} + +a.list-group-item-warning.active, a.list-group-item-warning.active:focus, + a.list-group-item-warning.active:hover { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b +} + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede +} + +a.list-group-item-danger { + color: #a94442 +} + +a.list-group-item-danger .list-group-item-heading { + color: inherit +} + +a.list-group-item-danger:focus, a.list-group-item-danger:hover { + color: #a94442; + background-color: #ebcccc +} + +a.list-group-item-danger.active, a.list-group-item-danger.active:focus, + a.list-group-item-danger.active:hover { + color: #fff; + background-color: #a94442; + border-color: #a94442 +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3 +} + +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05) +} + +.panel-body { + padding: 15px +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px +} + +.panel-heading>.dropdown .dropdown-toggle { + color: inherit +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit +} + +.panel-title>.small, .panel-title>.small>a, .panel-title>a, .panel-title>small, + .panel-title>small>a { + color: inherit +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px +} + +.panel>.list-group, .panel>.panel-collapse>.list-group { + margin-bottom: 0 +} + +.panel>.list-group .list-group-item, .panel>.panel-collapse>.list-group .list-group-item + { + border-width: 1px 0; + border-radius: 0 +} + +.panel>.list-group:first-child .list-group-item:first-child, .panel>.panel-collapse>.list-group:first-child .list-group-item:first-child + { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px +} + +.panel>.list-group:last-child .list-group-item:last-child, .panel>.panel-collapse>.list-group:last-child .list-group-item:last-child + { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px +} + +.panel-heading+.list-group .list-group-item:first-child { + border-top-width: 0 +} + +.list-group+.panel-footer { + border-top-width: 0 +} + +.panel>.panel-collapse>.table, .panel>.table, .panel>.table-responsive>.table + { + margin-bottom: 0 +} + +.panel>.panel-collapse>.table caption, .panel>.table caption, .panel>.table-responsive>.table caption + { + padding-right: 15px; + padding-left: 15px +} + +.panel>.table-responsive:first-child>.table:first-child, .panel>.table:first-child + { + border-top-left-radius: 3px; + border-top-right-radius: 3px +} + +.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child, + .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child, + .panel>.table:first-child>tbody:first-child>tr:first-child, .panel>.table:first-child>thead:first-child>tr:first-child + { + border-top-left-radius: 3px; + border-top-right-radius: 3px +} + +.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child, + .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child, + .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child, + .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child, + .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child, + .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child, + .panel>.table:first-child>thead:first-child>tr:first-child td:first-child, + .panel>.table:first-child>thead:first-child>tr:first-child th:first-child + { + border-top-left-radius: 3px +} + +.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child, + .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child, + .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child, + .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child, + .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child, + .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child, + .panel>.table:first-child>thead:first-child>tr:first-child td:last-child, + .panel>.table:first-child>thead:first-child>tr:first-child th:last-child + { + border-top-right-radius: 3px +} + +.panel>.table-responsive:last-child>.table:last-child, .panel>.table:last-child + { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px +} + +.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child, + .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child, + .panel>.table:last-child>tbody:last-child>tr:last-child, .panel>.table:last-child>tfoot:last-child>tr:last-child + { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px +} + +.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child, + .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child, + .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child, + .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child, + .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child, + .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child, + .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child, + .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child + { + border-bottom-left-radius: 3px +} + +.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child, + .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child, + .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child, + .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child, + .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child, + .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child, + .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child, + .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child { + border-bottom-right-radius: 3px +} + +.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, + .panel>.table-responsive+.panel-body { + border-top: 1px solid #ddd +} + +.panel>.table>tbody:first-child>tr:first-child td, .panel>.table>tbody:first-child>tr:first-child th + { + border-top: 0 +} + +.panel>.table-bordered, .panel>.table-responsive>.table-bordered { + border: 0 +} + +.panel>.table-bordered>tbody>tr>td:first-child, .panel>.table-bordered>tbody>tr>th:first-child, + .panel>.table-bordered>tfoot>tr>td:first-child, .panel>.table-bordered>tfoot>tr>th:first-child, + .panel>.table-bordered>thead>tr>td:first-child, .panel>.table-bordered>thead>tr>th:first-child, + .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child, + .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child, + .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child, + .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child, + .panel>.table-responsive>.table-bordered>thead>tr>td:first-child, + .panel>.table-responsive>.table-bordered>thead>tr>th:first-child { + border-left: 0 +} + +.panel>.table-bordered>tbody>tr>td:last-child, .panel>.table-bordered>tbody>tr>th:last-child, + .panel>.table-bordered>tfoot>tr>td:last-child, .panel>.table-bordered>tfoot>tr>th:last-child, + .panel>.table-bordered>thead>tr>td:last-child, .panel>.table-bordered>thead>tr>th:last-child, + .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child, .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child, + .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child, .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child, + .panel>.table-responsive>.table-bordered>thead>tr>td:last-child, .panel>.table-responsive>.table-bordered>thead>tr>th:last-child + { + border-right: 0 +} + +.panel>.table-bordered>tbody>tr:first-child>td, .panel>.table-bordered>tbody>tr:first-child>th, + .panel>.table-bordered>thead>tr:first-child>td, .panel>.table-bordered>thead>tr:first-child>th, + .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td, + .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th, + .panel>.table-responsive>.table-bordered>thead>tr:first-child>td, + .panel>.table-responsive>.table-bordered>thead>tr:first-child>th { + border-bottom: 0 +} + +.panel>.table-bordered>tbody>tr:last-child>td, .panel>.table-bordered>tbody>tr:last-child>th, + .panel>.table-bordered>tfoot>tr:last-child>td, .panel>.table-bordered>tfoot>tr:last-child>th, + .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td, .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th, + .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td, .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th + { + border-bottom: 0 +} + +.panel>.table-responsive { + margin-bottom: 0; + border: 0 +} + +.panel-group { + margin-bottom: 20px +} + +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px +} + +.panel-group .panel+.panel { + margin-top: 5px +} + +.panel-group .panel-heading { + border-bottom: 0 +} + +.panel-group .panel-heading+.panel-collapse>.list-group, .panel-group .panel-heading+.panel-collapse>.panel-body + { + border-top: 1px solid #ddd +} + +.panel-group .panel-footer { + border-top: 0 +} + +.panel-group .panel-footer+.panel-collapse .panel-body { + border-bottom: 1px solid #ddd +} + +.panel-default { + border-color: #ddd +} + +.panel-default>.panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd +} + +.panel-default>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #ddd +} + +.panel-default>.panel-heading .badge { + color: #f5f5f5; + background-color: #333 +} + +.panel-default>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #ddd +} + +.panel-primary { + border-color: #337ab7 +} + +.panel-primary>.panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7 +} + +.panel-primary>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #337ab7 +} + +.panel-primary>.panel-heading .badge { + color: #337ab7; + background-color: #fff +} + +.panel-primary>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #337ab7 +} + +.panel-success { + border-color: #d6e9c6 +} + +.panel-success>.panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6 +} + +.panel-success>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #d6e9c6 +} + +.panel-success>.panel-heading .badge { + color: #dff0d8; + background-color: #3c763d +} + +.panel-success>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #d6e9c6 +} + +.panel-info { + border-color: #bce8f1 +} + +.panel-info>.panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1 +} + +.panel-info>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #bce8f1 +} + +.panel-info>.panel-heading .badge { + color: #d9edf7; + background-color: #31708f +} + +.panel-info>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #bce8f1 +} + +.panel-warning { + border-color: #faebcc +} + +.panel-warning>.panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc +} + +.panel-warning>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #faebcc +} + +.panel-warning>.panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b +} + +.panel-warning>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #faebcc +} + +.panel-danger { + border-color: #ebccd1 +} + +.panel-danger>.panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1 +} + +.panel-danger>.panel-heading+.panel-collapse>.panel-body { + border-top-color: #ebccd1 +} + +.panel-danger>.panel-heading .badge { + color: #f2dede; + background-color: #a94442 +} + +.panel-danger>.panel-footer+.panel-collapse>.panel-body { + border-bottom-color: #ebccd1 +} + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden +} + +.embed-responsive .embed-responsive-item, .embed-responsive embed, + .embed-responsive iframe, .embed-responsive object, .embed-responsive video + { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0 +} + +.embed-responsive.embed-responsive-16by9 { + padding-bottom: 56.25% +} + +.embed-responsive.embed-responsive-4by3 { + padding-bottom: 75% +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05) +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15) +} + +.well-lg { + padding: 24px; + border-radius: 6px +} + +.well-sm { + padding: 9px; + border-radius: 3px +} + +.close { + float: right; + font-size: 21px; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity = 20); + opacity: .2 +} + +.close:focus, .close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity = 50); + opacity: .5 +} + +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: 0 0; + border: 0 +} + +.modal-open { + overflow: hidden +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0 +} + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%) +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0) +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto +} + +.modal-dialog { + position: relative; + width: auto; + margin: 10px +} + +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5) +} + +.modal-backdrop { + position: absolute; + top: 0; + right: 0; + left: 0; + background-color: #000 +} + +.modal-backdrop.fade { + filter: alpha(opacity = 0); + opacity: 0 +} + +.modal-backdrop.in { + filter: alpha(opacity = 50); + opacity: .5 +} + +.modal-header { + min-height: 16.43px; + padding: 15px; + border-bottom: 1px solid #e5e5e5 +} + +.modal-header .close { + margin-top: -2px +} + +.modal-title { + margin: 0; + line-height: 1.42857143 +} + +.modal-body { + position: relative; + padding: 15px +} + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5 +} + +.modal-footer .btn+.btn { + margin-bottom: 0; + margin-left: 5px +} + +.modal-footer .btn-group .btn+.btn { + margin-left: -1px +} + +.modal-footer .btn-block+.btn-block { + margin-left: 0 +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll +} + +@media ( min-width :768px) { + .modal-dialog { + width: 600px; + margin: 30px auto + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5) + } + .modal-sm { + width: 300px + } +} + +@media ( min-width :992px) { + .modal-lg { + width: 900px + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: 400; + line-height: 1.4; + visibility: visible; + filter: alpha(opacity = 0); + opacity: 0 +} + +.tooltip.in { + filter: alpha(opacity = 90); + opacity: .9 +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + border-radius: 4px +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000 +} + +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000 +} + +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000 +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000 +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000 +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000 +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000 +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000 +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: left; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2) +} + +.popover.top { + margin-top: -10px +} + +.popover.right { + margin-left: 10px +} + +.popover.bottom { + margin-top: 10px +} + +.popover.left { + margin-left: -10px +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0 +} + +.popover-content { + padding: 9px 14px +} + +.popover>.arrow, .popover>.arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.popover>.arrow { + border-width: 11px +} + +.popover>.arrow:after { + content: ""; + border-width: 10px +} + +.popover.top>.arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0 +} + +.popover.top>.arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0 +} + +.popover.right>.arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0 +} + +.popover.right>.arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0 +} + +.popover.bottom>.arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25) +} + +.popover.bottom>.arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff +} + +.popover.left>.arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25) +} + +.popover.left>.arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff +} + +.carousel { + position: relative +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden +} + +.carousel-inner>.item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left +} + +.carousel-inner>.item>a>img, .carousel-inner>.item>img { + line-height: 1 +} + +@media all and (transform-3d) , ( -webkit-transform-3d ) { + .carousel-inner>.item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000; + perspective: 1000 + } + .carousel-inner>.item.active.right, .carousel-inner>.item.next { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } + .carousel-inner>.item.active.left, .carousel-inner>.item.prev { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } + .carousel-inner>.item.active, .carousel-inner>.item.next.left, + .carousel-inner>.item.prev.right { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +.carousel-inner>.active, .carousel-inner>.next, .carousel-inner>.prev { + display: block +} + +.carousel-inner>.active { + left: 0 +} + +.carousel-inner>.next, .carousel-inner>.prev { + position: absolute; + top: 0; + width: 100% +} + +.carousel-inner>.next { + left: 100% +} + +.carousel-inner>.prev { + left: -100% +} + +.carousel-inner>.next.left, .carousel-inner>.prev.right { + left: 0 +} + +.carousel-inner>.active.left { + left: -100% +} + +.carousel-inner>.active.right { + left: 100% +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + filter: alpha(opacity = 50); + opacity: .5 +} + +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0, + rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0, + rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), + to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0, + rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', + endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0, + rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0, + rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), + to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0, + rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', + endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x +} + +.carousel-control:focus, .carousel-control:hover { + color: #fff; + text-decoration: none; + filter: alpha(opacity = 90); + outline: 0; + opacity: .9 +} + +.carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next, .carousel-control .icon-prev { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block +} + +.carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev + { + left: 50%; + margin-left: -10px +} + +.carousel-control .glyphicon-chevron-right, .carousel-control .icon-next + { + right: 50%; + margin-right: -10px +} + +.carousel-control .icon-next, .carousel-control .icon-prev { + width: 20px; + height: 20px; + margin-top: -10px; + font-family: serif; + line-height: 1 +} + +.carousel-control .icon-prev:before { + content: '\2039' +} + +.carousel-control .icon-next:before { + content: '\203a' +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6) +} + +.carousel-caption .btn { + text-shadow: none +} + +@media screen and (min-width:768px) { + .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next, .carousel-control .icon-prev { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px + } + .carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev + { + margin-left: -15px + } + .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next + { + margin-right: -15px + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px + } + .carousel-indicators { + bottom: 20px + } +} + +.btn-group-vertical>.btn-group:after, .btn-group-vertical>.btn-group:before, + .btn-toolbar:after, .btn-toolbar:before, .clearfix:after, .clearfix:before, + .container-fluid:after, .container-fluid:before, .container:after, + .container:before, .dl-horizontal dd:after, .dl-horizontal dd:before, + .form-horizontal .form-group:after, .form-horizontal .form-group:before, + .modal-footer:after, .modal-footer:before, .nav:after, .nav:before, + .navbar-collapse:after, .navbar-collapse:before, .navbar-header:after, + .navbar-header:before, .navbar:after, .navbar:before, .pager:after, + .pager:before, .panel-body:after, .panel-body:before, .row:after, .row:before + { + display: table; + content: " " +} + +.btn-group-vertical>.btn-group:after, .btn-toolbar:after, .clearfix:after, + .container-fluid:after, .container:after, .dl-horizontal dd:after, + .form-horizontal .form-group:after, .modal-footer:after, .nav:after, + .navbar-collapse:after, .navbar-header:after, .navbar:after, .pager:after, + .panel-body:after, .row:after { + clear: both +} + +.center-block { + display: block; + margin-right: auto; + margin-left: auto +} + +.pull-right { + float: right !important +} + +.pull-left { + float: left !important +} + +.hide { + display: none !important +} + +.show { + display: block !important +} + +.invisible { + visibility: hidden +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0 +} + +.hidden { + display: none !important; + visibility: hidden !important +} + +.affix { + position: fixed +} + +@ +-ms-viewport { + width: device-width +} + +.visible-lg, .visible-md, .visible-sm, .visible-xs { + display: none !important +} + +.visible-lg-block, .visible-lg-inline, .visible-lg-inline-block, + .visible-md-block, .visible-md-inline, .visible-md-inline-block, + .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, + .visible-xs-block, .visible-xs-inline, .visible-xs-inline-block { + display: none !important +} + +@media ( max-width :767px) { + .visible-xs { + display: block !important + } + table.visible-xs { + display: table + } + tr.visible-xs { + display: table-row !important + } + td.visible-xs, th.visible-xs { + display: table-cell !important + } +} + +@media ( max-width :767px) { + .visible-xs-block { + display: block !important + } +} + +@media ( max-width :767px) { + .visible-xs-inline { + display: inline !important + } +} + +@media ( max-width :767px) { + .visible-xs-inline-block { + display: inline-block !important + } +} + +@media ( min-width :768px) and (max-width:991px) { + .visible-sm { + display: block !important + } + table.visible-sm { + display: table + } + tr.visible-sm { + display: table-row !important + } + td.visible-sm, th.visible-sm { + display: table-cell !important + } +} + +@media ( min-width :768px) and (max-width:991px) { + .visible-sm-block { + display: block !important + } +} + +@media ( min-width :768px) and (max-width:991px) { + .visible-sm-inline { + display: inline !important + } +} + +@media ( min-width :768px) and (max-width:991px) { + .visible-sm-inline-block { + display: inline-block !important + } +} + +@media ( min-width :992px) and (max-width:1199px) { + .visible-md { + display: block !important + } + table.visible-md { + display: table + } + tr.visible-md { + display: table-row !important + } + td.visible-md, th.visible-md { + display: table-cell !important + } +} + +@media ( min-width :992px) and (max-width:1199px) { + .visible-md-block { + display: block !important + } +} + +@media ( min-width :992px) and (max-width:1199px) { + .visible-md-inline { + display: inline !important + } +} + +@media ( min-width :992px) and (max-width:1199px) { + .visible-md-inline-block { + display: inline-block !important + } +} + +@media ( min-width :1200px) { + .visible-lg { + display: block !important + } + table.visible-lg { + display: table + } + tr.visible-lg { + display: table-row !important + } + td.visible-lg, th.visible-lg { + display: table-cell !important + } +} + +@media ( min-width :1200px) { + .visible-lg-block { + display: block !important + } +} + +@media ( min-width :1200px) { + .visible-lg-inline { + display: inline !important + } +} + +@media ( min-width :1200px) { + .visible-lg-inline-block { + display: inline-block !important + } +} + +@media ( max-width :767px) { + .hidden-xs { + display: none !important + } +} + +@media ( min-width :768px) and (max-width:991px) { + .hidden-sm { + display: none !important + } +} + +@media ( min-width :992px) and (max-width:1199px) { + .hidden-md { + display: none !important + } +} + +@media ( min-width :1200px) { + .hidden-lg { + display: none !important + } +} + +.visible-print { + display: none !important +} + +@media print { + .visible-print { + display: block !important + } + table.visible-print { + display: table + } + tr.visible-print { + display: table-row !important + } + td.visible-print, th.visible-print { + display: table-cell !important + } +} + +.visible-print-block { + display: none !important +} + +@media print { + .visible-print-block { + display: block !important + } +} + +.visible-print-inline { + display: none !important +} + +@media print { + .visible-print-inline { + display: inline !important + } +} + +.visible-print-inline-block { + display: none !important +} + +@media print { + .visible-print-inline-block { + display: inline-block !important + } +} + +@media print { + .hidden-print { + display: none !important + } +} \ No newline at end of file diff --git a/src/main/webapp/css/egov.css b/src/main/webapp/css/egov.css new file mode 100644 index 0000000..283668a --- /dev/null +++ b/src/main/webapp/css/egov.css @@ -0,0 +1,257 @@ +/********************************************************************************/ +/* */ +/* Design RIAN */ +/* Date : 2007-03-21 */ +/* */ +/* */ +/********************************************************************************/ +* {margin:0;padding:0;} +* html {height:1px;} +body {margin:0; padding:0; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:12px; color:#666; scroll:auto;} +/*table, tr, td, th {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:11px; color:#333333;}*/ +caption{visibility:hidden} + +/* +.listtd {padding:10px 5px 8px 5px; border-bottom:1px solid #e5e5e5;} +.listtds {padding:10px 5px 8px 5px; border:1px solid #e5e5e5;} + +*/ + + +/*th {background-color:#F3F5E0; background:url(../../images/rte/th_bg.gif) 0 0 repeat; height:26px; text-align:center; vertical-align:middle; color:#003366;}*/ +img {border:0; vertical-align:middle;} +/*p { height:20px; margin:0; padding:5 0 0 0;}*/ +.check ul {margin:0; padding:0; float:left;} +.check li {list-style-type:none; float:left; margin:0 0 0 0; padding:0 0 0 3px;} +.top {vertical-align:top;} +/* +a:link { font-size:11px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; color:#3A5870; text-decoration:none; line-height:100%;} +a:visited { font-size:11px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; color:#3A5870; text-decoration:none} +a:active { font-size:11px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; color:#339999; text-decoration:none;} +a:hover { font-size:11px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; color:#339999; text-decoration:none;}*/ + +/*#command div { margin:0 auto;}*/ +.login {position:relative; margin:0; padding:0 0 0 0px; text-align:left; vertical-align:top; padding:52px 0px 0px 270px; /*overflow:hidden;*/ width:330px; height:260px;background:url(../../images/rte/login_bg.jpg) 0 0 no-repeat; } +.login_en {position:relative; margin:0; padding:0 0 0 0px; text-align:left; vertical-align:top; padding:52px 0px 0px 270px; /*overflow:hidden;*/ width:330px; height:260px;background:url(../../images/rte/login_bg_en.jpg) 0 0 no-repeat; } +.error {position:relative; margin:0; padding:0 0 0 0px; text-align:left; vertical-align:top; padding:120px 0px 0px 80px; /*overflow:hidden;*/ width:520px; height:260px;background:url(../../images/rte/error_bg.jpg) 0 0 no-repeat; } +.error_en {position:relative; margin:0; padding:0 0 0 0px; text-align:left; vertical-align:top; padding:120px 0px 0px 80px; /*overflow:hidden;*/ width:520px; height:260px;background:url(../../images/rte/error_bg_en.jpg) 0 0 no-repeat; } +#logo {margin:0; padding:0; text-align:left; /*overflow:hidden;*/ width:910px;} +/*#header {height:74px;}*/ +#top {width:910px;} +.menu { text-align:center; height:38px; margin:0; padding:13px 0 0 0;} +.menu ul {display:inline; width:910px;} +.menu li {display:inline; list-style-type:none; margin:0; padding:14px 28px 0 28px; background:url(../../images/rte/civilappeal_topmn_bar.jpg) 0 15px no-repeat;} +.menu li.last {width:1px; padding:15px 0 0 0; background:url(../../images/rte/civilappeal_topmn_bar.jpg) 0 0 no-repeat;} +.menu a.top:link {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#FFFFFF; text-decoration:none; font-size:12px;} +.menu a.top:visited {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#FFFFFF; text-decoration:none; font-size:12px;} +.menu a.top:hover {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color: #00CCFF; text-decoration:none; font-size:12px;} +.menu a.top:active {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#FFFFFF; text-decoration:none; font-size:12px;} + +.menu .on a.top:link {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#00CCFF; text-decoration:none; font-size:12px;} +.menu .on a.top:visited {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#00CCFF; text-decoration:none; font-size:12px;} +.menu .on a.top:hover {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color: #00CCFF; text-decoration:none; font-size:12px;} +.menu .on a.top:active {font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-weight:bold; color:#00CCFF; text-decoration:none; font-size:12px;} + +.right_area {float:right; height:38px; margin:0; padding:0 8px 0 0; background:url(../../images/rte/civilappeal_topmn_bg11.jpg) right no-repeat;} +#sub {float:left; padding:10px 10px 10px 10px; /*overflow:hidden;*/width:180px; margin-right:30px;} +#sub .login {width:180px; height:70px; text-align:left; vertical-align:top; padding:5px 0 0 0; background:url(../../images/rte/civilappeal_login_bg.jpg) right no-repeat; margin-bottom:10px;} +#sub .login_en {width:180px; height:70px; text-align:left; vertical-align:top; padding:5px 0 0 0; background:url(../../images/rte/civilappeal_login_bg_en.jpg) right no-repeat; margin-bottom:10px;} +#sub .sub_menu {width:150px; height:300px; text-align:left; vertical-align:top; background:url(../../images/rte/civilappeal_leftmenu_bg.jpg) 0 0 no-repeat; padding-top:40px; padding-left:15px; padding-right:15px; padding-bottom:0px;} +#sub .sub_menu dl {width:150px;} +#sub .sub_menu dd {font-weight:bold; padding-left:0px; padding-right:0px; padding-bottom:0px; padding-top:10px; margin:0;} +#sub .sub_menu dt {list-style:none; padding-left:0px; padding-right:0px; padding-bottom:0px; padding-top:8px; margin:0px;} +#sub .sub_menu_en {width:150px; height:300px; text-align:left; vertical-align:top; background:url(../../images/rte/civilappeal_leftmenu_bg_en.jpg) 0 0 no-repeat; padding-top:40px; padding-left:15px; padding-right:15px; padding-bottom:0px;} +#sub .sub_menu_en dl {width:150px;} +#sub .sub_menu_en dd {font-weight:bold; padding-left:0px; padding-right:0px; padding-bottom:0px; padding-top:10px; margin:0;} +#sub .sub_menu_en dt {list-style:none; padding-left:0px; padding-right:0px; padding-bottom:0px; padding-top:8px; margin:0px;} +#content {/*float:left; text-align:left;overflow:hidden;width:880px; background-color:#FFFFFF; padding:10px 0px 10px 0px;*/} +#content_pop {/*float:left; text-align:left; overflow:hidden;width:880px; background-color:#FFFFFF; padding:10px 10px 10px 10px;*/} +/*#title {text-align:left; margin:0 0 10 0; padding:0; height:30px; border-bottom:1px solid #e5e5e5; width:880px;}*/ +/*#title ul {float:left; margin:0; padding:0;} +#title li {list-style-type:none; width:880px; padding:3px 0px 2px 0px; float:left; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:16px; font-weight:bold; color:#000000;}*/ +#title .location {float:right; height:20px; margin:0; padding:5 0 0 0; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:11px;} +#foot {margin:0; padding:0 0 0 0; text-align:left; /*overflow:hidden;*/ height:40px; clear:both; background-color:#F7F7F7; border-top:1px solid #e5e5e5; font-family:Tahoma; font-size:11px; color:#999999;} +/*#search {float:right; margin:0; padding:10px 0 10px 0; width:880px;}* +#search ul {margin:0; float:right;} +#search li {list-style-type:none; float:left; margin:0 0 0 0; padding:0 0 0 3px;} +/*#table {margin:0 0 10px 0; padding:0 0 0 0; width:880px;}*/ +/*.table {margin:0 0 10px 0; padding:0 0 0 0; width:880px;}*/ +#paging {padding:0 0 0 0; text-align:center; width:880px;} +#paging ul {display:inline;} +#paging li {display:inline; list-style-type:none; padding:0 10px 0 10px; font-family: Tahoma; font-size:11px; color: #333333;} +#paging li.pre10 {padding:0 2px 0 2px;} +#paging li.next1 {padding:0 2px 0 2px;} +#paging li.line {background:url(../../images/rte/paging_line.gif) 0 2px no-repeat;} +#paging li.first {padding:0 5px 0 0;} +#paging li.last {background:url(../../images/rte/paging_line.gif) 0 2px no-repeat; padding:0 5px 0 0;} +#sysbtn {/*text-align:right; padding:0; margin:0;*/} +#sysbtn ul {/*margin:0; padding:0; float:left; display:inline;*/} +#sysbtn li {/*list-style-type:none; margin:0 auto; padding:0 0 0 3px; float:left; display:inline;*/} +.sysbtn {text-align:right; padding:0; margin:0;} +.sysbtn ul {margin:0; padding:0; float:left; display:inline;} +.sysbtn li {list-style-type:none; margin:0 auto; padding:0 0 0 3px; float:left; display:inline;} + +#sysbtn1 {text-align:left; padding-top:10px; padding-bottom:0px; margin-bottom:0px; width:880px;} +#sysbtn1 ul {margin:0; padding:0; float:left; display:inline;} +#sysbtn1 li {list-style-type:none; margin:0 0 0 0; padding:0 0 0 3px; float:left; display:inline;} +#idwrap {float:left; padding-top:0px; padding-bottom:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; margin-top:0px; padding-left:0px; padding-right:0px; } +#idwrap ul {float:left; padding:0; margin:0;} +#idwrap li {list-style-type:none; float:left; margin:0; padding-right:3px;} +button {cursor:hand; border:0px solid #FFFFFF; padding:0px 0px 0px 0px; background-color:#FFFFFF; white-space:nowrap;} +/*.btn_blue {float:none; background:url(../../images/rte/btn_bg_l.gif) 0 0 no-repeat; height:20px; padding:1px 0px 10px 10px; margin:0px 0px 0px 0px;}*/ +.btn_blue_l {float:left; background:url(../../images/rte/btn_bg_l.gif) 0 0 no-repeat; height:20px; padding:0px 0px 0px 10px; margin:0px 0px 0px 0px;} +.btn_blue_r {float:left; background:url(../../images/rte/btn_bg_r.gif) 0 0 no-repeat; background-position:right; height:20px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:11px; color:#000000; margin:0px 0px 0px 0px; padding-top:0px; _padding-top:0px; padding-left:10px; padding-right:10px; padding-bottom:0px; text-align:center;} +/*input { height:20px; font-family:"占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲"; font-size:12px; color:#000000; padding:2px 2px 0px 2px; margin-top:0px; _margin-top:-1px;}*/ +select {font-family:'占쎈쐻占쎈짗占쎌굲占쎈쐻占쎈짗占쎌굲'; font-size:12px; margin-top:0px; height:20px; padding-top:0px;} +.tb {width:100%; bordercolor:#D3E2EC; bordercolordark:#FFFFFF; BORDER-TOP:#C2D0DB 2px solid; BORDER-LEFT:#ffffff 1px solid; BORDER-RIGHT:#ffffff 1px solid; BORDER-BOTTOM:#C2D0DB 1px solid; border-collapse: collapse;} + +/*input.txt {height:18px; background-color:#FFF; border:1px solid #BCC8D8; padding-top:2px; color:#5e5e5e; cursor:text;}*/ +input.essentiality {height:18px; background-color:#ebebeb; border:1px solid #BCC8D8; padding-top:2px; color:#000; cursor:text;} + +/* Layout */ +#wrap{margin-left:0px;width:100%;background: url("../../images/body/background_sky.jpg") no-repeat 0 0;height:59px;} +/*#footer{clear:both;width:100%;font-size:100%;border-top:2px solid #dddddd;}*/ +#header{/*padding-top:5px;*/} +#leftmenu{display:none; z-index: 1000; margin-top: 100px; position:absolute; width:200px;min-height:440px; height:auto !important; height:100%; } +/*#container{float:left;width:1100px; margin-top:0px;min-height:440px; height:auto !important; height:440px;}*/ +#mopaslogo{float:left;padding-top:10px;padding-left:10px;} +#copyright{float:left;font-size:90%;padding-top:20px;padding-left:20px; letter-spacing: -1px;} +#logoarea{float:left;padding-left:10px;} +#languagearea{width:890px;padding-top:20px} +#langImg{float:right;padding-left:10px;} +#project_title{float:left;padding-top:7px;padding-left:14px;font-size:130%;letter-spacing:-1px;} +#project_title .maintitle{color:#e68c0d;font-weight:bold;} +#LoginStatus fieldset{border:3px solid #C9E8F3;padding:5px;width:160px;margin-left:10px;margin-top:20px;height:40px;;display:inline;} +#LoginStatus ul li{padding-bottom:5px; list-style-type:none;} +#nav{margin-left:10px;margin-top:10px;margin-bottom:10px;background: url("../../images/leftmenu/leftmenu_repeat.gif") repeat-y scroll 0 0 transparent; margin-bottom: 10px;} +.navtop{ + background: url("../../images/leftmenu/leftmenu_top.gif") no-repeat scroll left top transparent; + padding: 0px 3px 3px 15px;height:10px;} +#nav ul{list-style-type:none;} +#nav a{} +#nav ul li{ + background: url("../../images/leftmenu/bl_depth01.gif") no-repeat 140px 8px; + border-top: 1px solid #EAEAEA; + padding: 4px 6px 1px;} +#nav ul li ul{border-top: 1px solid #EAEAEA;} +#nav ul li ul li { +background: url("../../images/leftmenu/snbmenu_board.gif") no-repeat scroll 0 11px transparent; +border: medium none; +font-size: 0.92em; +line-height: 1.27em; +margin: 0; background-color:#f2f2f2; +} +.nav_style{width:150px;padding-left:14px;} +.leftmenu_dept01{font-weight:bold;margin-top:10px;} + + +.dept02 a{font-weight:normal;} +.dept02 a:link { + color: #666666; + font-size: 11px; + letter-spacing: -1px; + line-height: 180%; + text-decoration: none; +} +.dept02 a:visited { + color: #666666; + font-size: 11px; + letter-spacing: -1px; + line-height: 180%; + text-decoration: none; +} + +.dept02 a:active { + color: blue; + font-size: 11px; + letter-spacing: -1px; + line-height: 180%; + text-decoration: none; +} +.dept02 a:hover { + color: blue; + font-family: "�뜝�럥利삣뜝�룞�삕"; + font-size: 11px; + letter-spacing: -1px; + line-height: 180%; + text-decoration: none; +} +.bottom{ + background: url("../../images/leftmenu/leftmenu_bottom.gif") no-repeat scroll left bottom transparent; + padding: 0px 3px 3px 15px;height:10px;} + +.tableBackImg{ + background: url("../../images/error/blue_bg.jpg") + } + +/* + 2016.09.30 + �뜝�럩肉ュ뜝�럡�돮亦껋꼻�삕 + - 嶺뚮∥��占쎈� 占쎈퉲�겫�룞�삕�뜝�럥�뱺 �뜝�럥�렊占쎈ご�뜝占� �뤆�룄�뫊占쎌끋�뜝�럥由� style �뜝�럩�쓤�뜝�럩�뮔 +*/ + +.header_menu ul{list-style-type: none;margin: 0; padding: 0;overflow: hidden;display: inline-block;} +.header_menu li{float:left;list-style:none;padding-left: 5px;} +.header_user{text-align:right;} +#menu1{text-align:right;} +.current{font-weight: bold;} + +.sub_menu{width:100%;height:50px;text-align:right;margin-bottom:10px; overflow : hidden;} +.sub_menu ul{float: right; margin: 0; padding: 25px 0 0 0; display: inline-block;} +.sub_menu li{float:left;list-style:none;padding-left: 5px;} +.sub_menu li a {font-size:12px;} + + + +/* + 2016.10.27 + �뜝�럩肉ュ뜝�럡�돮亦껋꼻�삕 + - 嶺뚮∥��占쎈� 占쎈퉲�겫�룞�삕�뜝�럥�뱺 �뜝�럥�렊占쎈ご�뜝占� �뤆�룄�뫊占쎌끋�뜝�럥由� style �뜝�럩�쓤�뜝�럩�뮔 +*/ + +/* + .memberAdd td {border:1px #C8C8C8 solid; padding:1px;} +.memberAdd input, .memberAdd select {height:18px; background-color:#FFF; border:1px solid #BCC8D8; padding-top:2px; color:#5e5e5e; cursor:text;} +*/ +/* + 2016.11.17~22 + �뜝�럩肉ュ뜝�럡�돮亦껋꼻�삕 + - 嶺뚮∥��占쎈� 占쎈퉲�겫�룞�삕�뜝�럥�뱺 �뜝�럥�렊占쎈ご�뜝占� �뤆�룄�뫊占쎌끋�뜝�럥由� style �뜝�럩�쓤�뜝�럩�뮔 +*/ +/*#pwMenu table {width:400px;} +#pwMenu table td {border:1px #C8C8C8 solid; padding:1px;} +#pwMenu input {width:90%;height:18px; background-color:#FFF; border:1px solid #BCC8D8; padding-top:2px; color:#5e5e5e; cursor:text;} + +/*.placeList {margin-bottom: 15px;height:40px;} +.placeList ul {margin:0; padding:0; float:left;} +.placeList li {list-style-type:none; float:left; margin:0 0 0 0; padding:0 0 0 3px;border: 1px solid #000;padding: 1px;} +.memberList {text-align: center;} +.memberList td {padding:20px; width:200px;text-align: center;} +.memberList td .image img {border: 1px solid #000;} +.memberList ul {margin:0 auto; padding: 1px;width:200px;} +.memberList li {list-style-type:none; margin:0 0 0 0; padding:0 0 0 3px;} +.memberList .value {width:90px;display:inline-block;} +.memberList .key {width:50px;display:inline-block;text-align:right;font-weight: bold; padding-right: 3px;} +*/ + +/* + 2016.11.07 + 濚밸㉡�삕�뜝�럥嫄쀦쾬�꼻�삕 + - textarea �뼨轅명�∽옙沅� �뜝�럥裕욃뜝�룞�삕�뜝�럩逾� 嶺뚯쉻�삕�뜝�럩�젧 +*/ +textarea.ta {width:100%; min-height:100px;} + +/* + 2016.12.14 �뜝�럥由��뜝�럩寃ョ춯�쉻�삕 + td �뤆�룊�삕�뜝�럩�뮧�뜝�럥�몥 �뜝�럩�젧�뜝�럩議� +*/ +.tbtd_caption.txt_center {text-align: center;} +.tbtd_content.txt_center {text-align: center;} + +/* + 2016.12.14 �뜝�럥由��뜝�럩寃ョ춯�쉻�삕 + �뤆�룆踰∽옙占� �뜝�럡�돰�뜝�럡留� +*/ +.highlight { + background-color: #fe9; +} diff --git a/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_next1.gif b/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_next1.gif new file mode 100644 index 0000000..bb3c1eb Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_next1.gif differ diff --git a/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_next10.gif b/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_next10.gif new file mode 100644 index 0000000..d7ecd00 Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_next10.gif differ diff --git a/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_pre1.gif b/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_pre1.gif new file mode 100644 index 0000000..a16f585 Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_pre1.gif differ diff --git a/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_pre10.gif b/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_pre10.gif new file mode 100644 index 0000000..4dbb26e Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/cmmn/btn_page_pre10.gif differ diff --git a/src/main/webapp/css/images/images/egovframework/example/btn_bg_l.gif b/src/main/webapp/css/images/images/egovframework/example/btn_bg_l.gif new file mode 100644 index 0000000..11341a6 Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/example/btn_bg_l.gif differ diff --git a/src/main/webapp/css/images/images/egovframework/example/btn_bg_r.gif b/src/main/webapp/css/images/images/egovframework/example/btn_bg_r.gif new file mode 100644 index 0000000..be5b8c5 Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/example/btn_bg_r.gif differ diff --git a/src/main/webapp/css/images/images/egovframework/example/civilappeal_topmn_bg.jpg b/src/main/webapp/css/images/images/egovframework/example/civilappeal_topmn_bg.jpg new file mode 100644 index 0000000..50a3a4d Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/example/civilappeal_topmn_bg.jpg differ diff --git a/src/main/webapp/css/images/images/egovframework/example/paging_line.gif b/src/main/webapp/css/images/images/egovframework/example/paging_line.gif new file mode 100644 index 0000000..0fa7654 Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/example/paging_line.gif differ diff --git a/src/main/webapp/css/images/images/egovframework/example/th_bg.gif b/src/main/webapp/css/images/images/egovframework/example/th_bg.gif new file mode 100644 index 0000000..e3f80fc Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/example/th_bg.gif differ diff --git a/src/main/webapp/css/images/images/egovframework/example/title_dot.gif b/src/main/webapp/css/images/images/egovframework/example/title_dot.gif new file mode 100644 index 0000000..f2658f9 Binary files /dev/null and b/src/main/webapp/css/images/images/egovframework/example/title_dot.gif differ diff --git a/src/main/webapp/css/images/images/header_bg.png b/src/main/webapp/css/images/images/header_bg.png new file mode 100644 index 0000000..397975b Binary files /dev/null and b/src/main/webapp/css/images/images/header_bg.png differ diff --git a/src/main/webapp/css/images/images/join.png b/src/main/webapp/css/images/images/join.png new file mode 100644 index 0000000..54d0cfd Binary files /dev/null and b/src/main/webapp/css/images/images/join.png differ diff --git a/src/main/webapp/css/images/images/join_arrow.png b/src/main/webapp/css/images/images/join_arrow.png new file mode 100644 index 0000000..573135c Binary files /dev/null and b/src/main/webapp/css/images/images/join_arrow.png differ diff --git a/src/main/webapp/css/images/images/loading.gif b/src/main/webapp/css/images/images/loading.gif new file mode 100644 index 0000000..0c411ce Binary files /dev/null and b/src/main/webapp/css/images/images/loading.gif differ diff --git a/src/main/webapp/css/images/images/login_.png b/src/main/webapp/css/images/images/login_.png new file mode 100644 index 0000000..6430e39 Binary files /dev/null and b/src/main/webapp/css/images/images/login_.png differ diff --git a/src/main/webapp/css/images/images/rock.png b/src/main/webapp/css/images/images/rock.png new file mode 100644 index 0000000..43f9832 Binary files /dev/null and b/src/main/webapp/css/images/images/rock.png differ diff --git a/src/main/webapp/css/images/images/tab_blt_on.png b/src/main/webapp/css/images/images/tab_blt_on.png new file mode 100644 index 0000000..08478e0 Binary files /dev/null and b/src/main/webapp/css/images/images/tab_blt_on.png differ diff --git a/src/main/webapp/css/images/images/ui-icons_444444_256x240.png b/src/main/webapp/css/images/images/ui-icons_444444_256x240.png new file mode 100644 index 0000000..b15bb97 Binary files /dev/null and b/src/main/webapp/css/images/images/ui-icons_444444_256x240.png differ diff --git a/src/main/webapp/css/images/images/ui-icons_555555_256x240.png b/src/main/webapp/css/images/images/ui-icons_555555_256x240.png new file mode 100644 index 0000000..e16693c Binary files /dev/null and b/src/main/webapp/css/images/images/ui-icons_555555_256x240.png differ diff --git a/src/main/webapp/css/images/images/ui-icons_777620_256x240.png b/src/main/webapp/css/images/images/ui-icons_777620_256x240.png new file mode 100644 index 0000000..321b90b Binary files /dev/null and b/src/main/webapp/css/images/images/ui-icons_777620_256x240.png differ diff --git a/src/main/webapp/css/images/images/ui-icons_777777_256x240.png b/src/main/webapp/css/images/images/ui-icons_777777_256x240.png new file mode 100644 index 0000000..5c023cf Binary files /dev/null and b/src/main/webapp/css/images/images/ui-icons_777777_256x240.png differ diff --git a/src/main/webapp/css/images/images/ui-icons_cc0000_256x240.png b/src/main/webapp/css/images/images/ui-icons_cc0000_256x240.png new file mode 100644 index 0000000..181f029 Binary files /dev/null and b/src/main/webapp/css/images/images/ui-icons_cc0000_256x240.png differ diff --git a/src/main/webapp/css/images/images/ui-icons_ffffff_256x240.png b/src/main/webapp/css/images/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000..a9f9309 Binary files /dev/null and b/src/main/webapp/css/images/images/ui-icons_ffffff_256x240.png differ diff --git a/src/main/webapp/css/jquery-ui.min.css b/src/main/webapp/css/jquery-ui.min.css new file mode 100644 index 0000000..cf8e6d3 --- /dev/null +++ b/src/main/webapp/css/jquery-ui.min.css @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.12.1 - 2021-05-07 +* http://jqueryui.com +* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666} \ No newline at end of file diff --git a/src/main/webapp/css/normalize.css b/src/main/webapp/css/normalize.css new file mode 100644 index 0000000..b0c1902 --- /dev/null +++ b/src/main/webapp/css/normalize.css @@ -0,0 +1,349 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} \ No newline at end of file diff --git a/src/main/webapp/css/openlayers/ol.css b/src/main/webapp/css/openlayers/ol.css new file mode 100644 index 0000000..3c545d0 --- /dev/null +++ b/src/main/webapp/css/openlayers/ol.css @@ -0,0 +1,298 @@ +.ol-box { + box-sizing: border-box; + border-radius: 2px; + border: 2px solid #00f +} + +.ol-mouse-position { + top: 8px; + right: 8px; + position: absolute +} + +.ol-scale-line { + background: rgba(0, 60, 136, .3); + border-radius: 4px; + bottom: 8px; + left: 8px; + padding: 2px; + position: absolute +} + +.ol-scale-line-inner { + border: 1px solid #eee; + border-top: none; + color: #eee; + font-size: 10px; + text-align: center; + margin: 1px; + will-change: contents, width +} + +.ol-overlay-container { + will-change: left, right, top, bottom +} + +.ol-unsupported { + display: none +} + +.ol-unselectable, .ol-viewport { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: transparent +} + +.ol-selectable { + -webkit-touch-callout: default; + -webkit-user-select: auto; + -moz-user-select: auto; + -ms-user-select: auto; + user-select: auto +} + +.ol-grabbing { + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing +} + +.ol-grab { + cursor: move; + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab +} + +.ol-control { + position: absolute; + background-color: rgba(255, 255, 255, .4); + border-radius: 4px; + padding: 2px +} + +.ol-control:hover { + background-color: rgba(255, 255, 255, .6) +} + +.ol-zoom { + right: 2%; + bottom: 2%; +} + +.ol-rotate { + top: .5em; + right: .5em; + transition: opacity .25s linear, visibility 0s linear +} + +.ol-rotate.ol-hidden { + opacity: 0; + visibility: hidden; + transition: opacity .25s linear, visibility 0s linear .25s +} + +.ol-zoom-extent { + top: 4.643em; + left: .5em +} + +.ol-full-screen { + right: .5em; + top: .5em +} + +@media print { + .ol-control { + display: none + } +} + +.ol-control button { + display: block; + margin: 1px; + padding: 0; + color: #fff; + font-size: 1.14em; + font-weight: 700; + text-decoration: none; + text-align: center; + height: 1.375em; + width: 1.375em; + line-height: .4em; + background-color: rgba(0, 60, 136, .5); + border: none; + border-radius: 2px +} + +.ol-control button::-moz-focus-inner { + border: none; + padding: 0 +} + +.ol-zoom-extent button { + line-height: 1.4em +} + +.ol-compass { + display: block; + font-weight: 400; + font-size: 1.2em; + will-change: transform +} + +.ol-touch .ol-control button { + font-size: 1.5em +} + +.ol-touch .ol-zoom-extent { + top: 5.5em +} + +.ol-control button:focus, .ol-control button:hover { + text-decoration: none; + background-color: rgba(0, 60, 136, .7) +} + +.ol-zoom .ol-zoom-in { + border-radius: 2px 2px 0 0 +} + +.ol-zoom .ol-zoom-out { + border-radius: 0 0 2px 2px +} + +.ol-attribution { + text-align: right; + bottom: .5em; + right: .5em; + max-width: calc(100% - 1.3em) +} + +.ol-attribution ul { + margin: 0; + padding: 0 .5em; + font-size: .7rem; + line-height: 1.375em; + color: #000; + text-shadow: 0 0 2px #fff +} + +.ol-attribution li { + display: inline; + list-style: none; + line-height: inherit +} + +.ol-attribution li:not (:last-child ):after { + content: " " +} + +.ol-attribution img { + max-height: 2em; + max-width: inherit; + vertical-align: middle +} + +.ol-attribution button, .ol-attribution ul { + display: inline-block +} + +.ol-attribution.ol-collapsed ul { + display: none +} + +.ol-attribution.ol-logo-only ul { + display: block +} + +.ol-attribution:not (.ol-collapsed ){ + background: rgba(255, 255, 255, .8) +} + +.ol-attribution.ol-uncollapsible { + bottom: 0; + right: 0; + border-radius: 4px 0 0; + height: 1.1em; + line-height: 1em +} + +.ol-attribution.ol-logo-only { + background: 0 0; + bottom: .4em; + height: 1.1em; + line-height: 1em +} + +.ol-attribution.ol-uncollapsible img { + margin-top: -.2em; + max-height: 1.6em +} + +.ol-attribution.ol-logo-only button, .ol-attribution.ol-uncollapsible button + { + display: none +} + +.ol-zoomslider { + top: 4.5em; + left: .5em; + height: 200px +} + +.ol-zoomslider button { + position: relative; + height: 10px +} + +.ol-touch .ol-zoomslider { + top: 5.5em +} + +.ol-overviewmap { + bottom: 175px; + right: 0; +} +.ol-overviewmap.ol-uncollapsible { + bottom: 0; + left: 0; + border-radius: 0 4px 0 0 +} + +.ol-overviewmap .ol-overviewmap-map, .ol-overviewmap button { + display: inline-block +} + +.ol-overviewmap .ol-overviewmap-map { + border: 1px solid #7b98bc; + height: 150px; + margin: 2px; + width: 150px +} + +.ol-overviewmap:not (.ol-collapsed ) button { + bottom: 1px; + left: 2px; + position: absolute +} + +.ol-overviewmap.ol-collapsed .ol-overviewmap-map, .ol-overviewmap.ol-uncollapsible button + { + display: none +} + +.ol-overviewmap:not (.ol-collapsed ){ + background: rgba(255, 255, 255, .8) +} + +.ol-overviewmap-box { + border: 2px dotted rgba(0, 60, 136, .7) +} + +.ol-overviewmap .ol-overviewmap-box:hover { + cursor: move +} \ No newline at end of file diff --git a/src/main/webapp/css/style.css b/src/main/webapp/css/style.css new file mode 100644 index 0000000..4f31fac --- /dev/null +++ b/src/main/webapp/css/style.css @@ -0,0 +1,710 @@ +a { + text-decoration: none; + color: #000; +} + +.text-center { + text-align: center; +} +.point-cursor{ + cursor:pointer; +} + +.header { + background: url('../images/header_bg.png'); + background-size: cover; + background-repeat: no-repeat; + height: 90px; + position: fixed; + width: 100%; + z-index: 1; + top: 0; +} + +.common_nav { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #094e84; + height: auto; + width: 200px; + min-width: inherit; + padding-top: 90px; +} + +.header_title { + float: left; + width: 50%; + color: #fff; + font-size: 24px; + font-weight: bold; + line-height: 90px; + padding-left: 20px; + box-sizing: border-box; +} + +.header_title > a { + text-decoration: none; + color: #fff; +} + +.header_info { + width: 50%; + height: 100%; + float: left; + text-align: right; + padding: 20px; + box-sizing: border-box; +} + +.header_info>a { + color: #fff; + font-size: 14px; +} + +.section { + margin-top: 90px; + margin-left: 200px; + padding-bottom: 100px; + min-width: 1160px; + min-height: 100px; + overflow: hidden; + padding-top: 20px; +} + +.section_content { + width: 1020px; + margin: 0 auto; +} + +.loginWrap { + width: 400px; + margin: 0 auto; + padding: 2% 0 0 0; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + border: 1px solid #ccc; + box-shadow: 5px 5px 20px grey; +} + +.login_text { + margin: 2% 5%; + text-align: center; +} + +.loginBox { + background-color: rgba(255, 255, 255, 0.7); + overflow: hidden; + padding: 30px 0px 0px 0px; +} + +.login_text input { + width: 100%; + padding: 10px 5px; + border: 1px solid #ccc; +} + +.login_btn { + text-align: center; + margin-top: 15px; +} + +.login_btn input { + width: 80%; +} + +.login_join { + margin-top: 40px; + background-color: #e8e8e8; + height: 50px; + line-height: 50px; + text-align: center; +} + +.login_join p { + margin: 0; +} + +.header_menu > ul { + list-style: none; + padding:0; +} + +.header_menu > ul > li { + color: #fff; + cursor: pointer; + height: 60px; + line-height: 60px; + padding : 0px 5px; + box-sizing: border-box; + font-weight: bold; +} + +.menu_this { + color: #3bd2ff; +} + +.section_btn { + margin-top: 20px; +} + +.search_p1 { + width: 50%; + float: left; +} + +.search_p2 { + text-align: right; +} + +.section_btn2 { + margin-top: 20px; +} + +.section_btn2>p { + text-align: center; +} + + + +.fieldDataTable{ + width:100%; + box-sizing: border-box; +} + +.fieldDataTable>thead>tr:first-child>th { + border: 1px solid #ccc; + background-color: #337ab7; + padding: 10px 5px; + text-align: left; + color: #fff; +} + +.fieldDataTable > tbody> tr > th{ + padding: 7px 5px; + background-color: #f1f1f1; + border: 1px solid #ccc; + text-align: center; +} + +.fieldDataTable > tbody> tr > td{ + padding: 5px 5px; + border: 1px solid #ccc; + text-align: center; + width:170px; + word-break: break-all; +} + +.fieldDataTable > tbody> tr:last-child > th{ + border-bottom: 0px; +} + +.fieldDataTable > tbody> tr:last-child > td{ + border-bottom: 0px; +} + +.fieldDataPaging{ + padding:0; + padding-top: 20px; + text-align: center; +} +.fieldDataPaging > li{ + display: inline-block; + border: 1px solid #ccc; + padding: 2px 7px; + cursor: pointer; +} + +.fieldPagingOn{ + font-weight: bold; +} + + + +.setting_wrap { + margin-top: 50px; + padding-bottom: 20px; +} + +.setting_title { + margin-top: 20px; + font-size: 20px; + font-weight: bold; +} + +.setting_content { + width: 80%; + margin: 0 auto; + margin-top: 10px; +} + +.setting_content2 { + width: 80%; + margin: 0 auto; + margin-top: 10px; +} + +.setting_sub_title { + margin-top: 10px; + font-weight: bold; +} + +#paging { + text-align: center; + margin-top: 20px; +} + +#paging>a { + text-decoration: none; + color: #000; +} + +.thisOn { + background-color: #337ab7; + border-left: 3px solid #fff; +} + +#fieldPaging { + overflow: hidden; + margin: 0 auto; + margin-top: 40px; + text-align: center; +} + +#fieldPaging>li { + width: 25px; + height: 25px; + line-height: 25px; + text-align: center; + border: 1px solid #ccc; + display: inline-block; + cursor: pointer; +} + +#fieldPaging>li:hover { + background-color: #ccc; +} + +.thisPage { + background-color: #ccc; +} + +.field_table { + border: 1px solid #ccc; +} +.field_table { + width: 100%; +} + +.field_table>tbody>tr>th { + width: 70px; + padding: 20px 5px; +} + +.field_table>tbody>tr>td { + width: 350px; + padding: 20px 5px; +} + + +.field_table>tbody>tr>td>input { + height: 27px; + line-height: 27px; +} +.field_table>tbody>tr>td>select { + width: 100%; + height: 30px; + line-height: 30px; +} + +.label{ + font-size:14px; +} + + + + +.fieldBtn { + width: 140px; + padding: 5px 0px; +} + +/* 해룡 */ +.parent { + width: 90%; + margin: 10px auto; + overflow: hidden; +} + +.find { + float: left; + height: 100%; + text-align: center; +} + +.join { + float: right; + text-align: center; + vertical-align: middle; +} + +.join>img { + vertical-align: middle; +} + + + +/*회원가입 */ +.join_section{ + margin-top: 90px; + min-width: 1160px; + min-height: 100px; + overflow: hidden; +} +.join_top{ + width: 620px; + padding: 0px 0 10px; + line-height:30px; + margin-bottom: 15px; + margin: 0 auto; +} +.join_table{ + width: 620px; + border-collapse: collapse; + border-top: 2px solid #d9d9d9; + margin: 0 auto; +} +.join_bottom{ + width: 620px; + padding: 0px 0 10px; + line-height:30px; + margin-bottom: 15px; + margin: 0 auto; +} + + +.join_top h2{ + margin-top: 40px; + font-weight: bold; + font-size: 20px; + color: #222; + +} +.join_top > h2 > img { + vertical-align: middle; + padding-right: 10px; +} +.join_table > tbody > tr > th{ + width: 20px; + height: 35px; + vertical-align: middle; + border-bottom: 1px solid #d9d9d9; + background-color: #f6f6f6; + font-size: 16px; + padding: 16px 10px; +} + +.join_table td{ + padding: 14px 10px; + border-bottom: 1px solid #d9d9d9; + width: 100px; + vertical-align: middle; +} + +.txtinput{ + padding : 0 5px; + height: 35px; + width:55%; + border : 1px solid #bbbbbb; + vertical-align: middle; + line-height: 35px; +} +.txtinput.half{ + width: 26%; +} + +.div_join{ + width:55%; + padding-top: 25px; + text-align: center; +} + +.btn_join{ + font-size: 20px; + padding: 12px 60px; +} +.btn_join.big.on{ + color: #FFF; + background: #042f6c; +} + +.btn_join.big { + color: #042f6c; + background: #FFF; + border: 1px solid #042f6c; + font-size: 20px; + padding: 12px 60px; + line-height: 23px; + display: inline-block; +} +.join_bottom_p{ + text-align:center; +} + + +/* 공용 쓰기 */ + +.div_write{ + font-size: 20px; + padding: 12px 10px; + float:right; +} +.btn_write{ + font-size: 15px; + padding: 6px 20px; + color: #042f6c; + background: #FFF; + border: 1px solid #042f6c; + line-height: 23px; + display: inline-block; +} +.btn_write.on { + color: #FFF; + background: #042f6c; +} + + +.field_data_content{ + width:100%; + margin-top:30px; + overflow: hidden; +} + +.map{ + width: 100%; + height:450px; + float:left; + border: 1px solid #ccc; +} + +.fieldDataPaging{ + list-style: none; + clear:both; +} +.fieldDataDiv{ + float:left; + width:50%; + height:490px; + margin-left: 2%; + overflow-y: scroll; + border-bottom:1px solid #ccc; +} + + + + +/* 지도권한관리 */ +.tabmenu-box ul li { + float: left; + + width: 162.5px; + font-size: 105%; +} +.tabmenu-box ul li.on a { + border: 1px solid #337ab7; + color: #fff; + font-weight: bold; + background: url(/images/tab_blt_on.png) no-repeat 90% center #337ab7; +} + +.tabmenu-box ul li a { + display: block; + color: #333; + padding: 8px 35px 10px 15px; + border: 1px solid #dad9de; +} + + + + + + +.search_div{ + width:100%; + overflow: hidden; +} +.search_menu{ + width:50%; + float:left; +} +.search_keyword{ + width:50%; + float:left; + text-align: right; +} +.search_ul{ + padding: 0; +} +.search_ul > li{ + display:inline; +} + +.searchCondition{ + width:100px; + height:40px; +} + +.addedArea{ + margin-top: 15px; +} + +.addedAreaWrap{ + border: 1px solid #ccc; + border-radius: 20px; + padding: 5px 10px; + margin: 5px; + display: inline-block; +} + +.search_selectbox{ + width:110px; + float:left; +} +.search_inputbox{ + width:330px; + margin-left:5px; + float:left; +} +.td_center{ + text-align: center; +} +.td_title{ + text-align:left; + width:50%; +} +.td_date{ + text-align: center; + width:85px; + font-size:12px; +} + +.td_name{ + text-align: center; +} +.td_company{ + text-align: center; +} +.td_status{ + text-align: center; +} +.td_area{ + text-align: center; +} + +.list-table { + width: 100%; + border: 1px solid #ccc; + margin-top: 20px; +} + +.list-table>thead>tr:first-child>th { + border: 1px solid #ccc; + background-color: #337ab7; + padding: 10px 5px; + text-align: left; + color: #fff; +} + +.list-table>thead>tr>th { + border: 1px solid #ccc; + background-color: #f8f8f8; + padding: 10px 5px; + text-align: center; +} + +.list-table>tbody>tr>td { + border-bottom: 1px solid #ccc; + padding: 10px 5px; + text-align:center; +} + +.list-table>tbody>tr:hover { + background-color: #eaeaea +} + +.detail_table{ + width:100%; + margin-top: 20px; +} +.detail_table > thead>tr:first-child>th { + border: 1px solid #ccc; + background-color: #337ab7; + padding: 10px 5px; + text-align: left; + color: #fff; +} +.detail_table > thead>tr:first-child>th { + border: 1px solid #ccc; + background-color: #337ab7; + padding: 10px 5px; + text-align: left; + color: #fff; +} +.detail_table > tbody> tr >th { + text-align:center; + height:auto; + width:120px; + border: 1px solid #ccc; + background-color: #f8f8f8; + padding: 10px 5px; + text-align: left; + text-align: center; +} +.detail_table > tbody> tr >td { + border:1px solid #ccc; + padding:10px; +} + +.title-td{ + text-align:left !important; + width:50%; +} + +.input-datepicker{ + width:120px; + display:inline; + cursor:pointer !important; + background-color: #fff !important; + text-align:center; +} +.input-area-select{ + width:155px; + display:inline; +} + +.areaSelctBox{ + width:150px; +} + +.layer-label{ + width:150px; +} +.auth-label{ + width:75px; +} +.mapWrap{ + width: 48%; + float:left; +} +.map-title{ + border-bottom: 1px solid #ccc; + background-color: #337ab7; + padding: 10px 5px; + text-align: left; + color: #fff; + font-weight: bold; +} \ No newline at end of file diff --git a/src/main/webapp/fonts/NanumGothic.woff b/src/main/webapp/fonts/NanumGothic.woff new file mode 100644 index 0000000..4774622 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic.woff differ diff --git a/src/main/webapp/fonts/glyphicons-halflings-regular.eot b/src/main/webapp/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000..b93a495 Binary files /dev/null and b/src/main/webapp/fonts/glyphicons-halflings-regular.eot differ diff --git a/src/main/webapp/fonts/glyphicons-halflings-regular.svg b/src/main/webapp/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..94fb549 --- /dev/null +++ b/src/main/webapp/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/fonts/glyphicons-halflings-regular.ttf b/src/main/webapp/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000..1413fc6 Binary files /dev/null and b/src/main/webapp/fonts/glyphicons-halflings-regular.ttf differ diff --git a/src/main/webapp/fonts/glyphicons-halflings-regular.woff b/src/main/webapp/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..9e61285 Binary files /dev/null and b/src/main/webapp/fonts/glyphicons-halflings-regular.woff differ diff --git a/src/main/webapp/fonts/glyphicons-halflings-regular.woff2 b/src/main/webapp/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000..64539b5 Binary files /dev/null and b/src/main/webapp/fonts/glyphicons-halflings-regular.woff2 differ diff --git a/src/main/webapp/images/egovframework/cmmn/btn_page_next1.gif b/src/main/webapp/images/egovframework/cmmn/btn_page_next1.gif new file mode 100644 index 0000000..bb3c1eb Binary files /dev/null and b/src/main/webapp/images/egovframework/cmmn/btn_page_next1.gif differ diff --git a/src/main/webapp/images/egovframework/cmmn/btn_page_next10.gif b/src/main/webapp/images/egovframework/cmmn/btn_page_next10.gif new file mode 100644 index 0000000..d7ecd00 Binary files /dev/null and b/src/main/webapp/images/egovframework/cmmn/btn_page_next10.gif differ diff --git a/src/main/webapp/images/egovframework/cmmn/btn_page_pre1.gif b/src/main/webapp/images/egovframework/cmmn/btn_page_pre1.gif new file mode 100644 index 0000000..a16f585 Binary files /dev/null and b/src/main/webapp/images/egovframework/cmmn/btn_page_pre1.gif differ diff --git a/src/main/webapp/images/egovframework/cmmn/btn_page_pre10.gif b/src/main/webapp/images/egovframework/cmmn/btn_page_pre10.gif new file mode 100644 index 0000000..4dbb26e Binary files /dev/null and b/src/main/webapp/images/egovframework/cmmn/btn_page_pre10.gif differ diff --git a/src/main/webapp/images/egovframework/example/btn_bg_l.gif b/src/main/webapp/images/egovframework/example/btn_bg_l.gif new file mode 100644 index 0000000..11341a6 Binary files /dev/null and b/src/main/webapp/images/egovframework/example/btn_bg_l.gif differ diff --git a/src/main/webapp/images/egovframework/example/btn_bg_r.gif b/src/main/webapp/images/egovframework/example/btn_bg_r.gif new file mode 100644 index 0000000..be5b8c5 Binary files /dev/null and b/src/main/webapp/images/egovframework/example/btn_bg_r.gif differ diff --git a/src/main/webapp/images/egovframework/example/civilappeal_topmn_bg.jpg b/src/main/webapp/images/egovframework/example/civilappeal_topmn_bg.jpg new file mode 100644 index 0000000..50a3a4d Binary files /dev/null and b/src/main/webapp/images/egovframework/example/civilappeal_topmn_bg.jpg differ diff --git a/src/main/webapp/images/egovframework/example/paging_line.gif b/src/main/webapp/images/egovframework/example/paging_line.gif new file mode 100644 index 0000000..0fa7654 Binary files /dev/null and b/src/main/webapp/images/egovframework/example/paging_line.gif differ diff --git a/src/main/webapp/images/egovframework/example/th_bg.gif b/src/main/webapp/images/egovframework/example/th_bg.gif new file mode 100644 index 0000000..e3f80fc Binary files /dev/null and b/src/main/webapp/images/egovframework/example/th_bg.gif differ diff --git a/src/main/webapp/images/egovframework/example/title_dot.gif b/src/main/webapp/images/egovframework/example/title_dot.gif new file mode 100644 index 0000000..f2658f9 Binary files /dev/null and b/src/main/webapp/images/egovframework/example/title_dot.gif differ diff --git a/src/main/webapp/images/error/blue_bg.jpg b/src/main/webapp/images/error/blue_bg.jpg new file mode 100644 index 0000000..bd71e98 Binary files /dev/null and b/src/main/webapp/images/error/blue_bg.jpg differ diff --git a/src/main/webapp/images/error/danger.jpg b/src/main/webapp/images/error/danger.jpg new file mode 100644 index 0000000..9ce70f1 Binary files /dev/null and b/src/main/webapp/images/error/danger.jpg differ diff --git a/src/main/webapp/images/error/er_logo.jpg b/src/main/webapp/images/error/er_logo.jpg new file mode 100644 index 0000000..c63a773 Binary files /dev/null and b/src/main/webapp/images/error/er_logo.jpg differ diff --git a/src/main/webapp/images/error/go_main.jpg b/src/main/webapp/images/error/go_main.jpg new file mode 100644 index 0000000..e14ae6c Binary files /dev/null and b/src/main/webapp/images/error/go_main.jpg differ diff --git a/src/main/webapp/images/error/goback_page.jpg b/src/main/webapp/images/error/goback_page.jpg new file mode 100644 index 0000000..d3cb933 Binary files /dev/null and b/src/main/webapp/images/error/goback_page.jpg differ diff --git a/src/main/webapp/images/header_bg.png b/src/main/webapp/images/header_bg.png new file mode 100644 index 0000000..397975b Binary files /dev/null and b/src/main/webapp/images/header_bg.png differ diff --git a/src/main/webapp/images/join.png b/src/main/webapp/images/join.png new file mode 100644 index 0000000..54d0cfd Binary files /dev/null and b/src/main/webapp/images/join.png differ diff --git a/src/main/webapp/images/join_arrow.png b/src/main/webapp/images/join_arrow.png new file mode 100644 index 0000000..573135c Binary files /dev/null and b/src/main/webapp/images/join_arrow.png differ diff --git a/src/main/webapp/images/loading.gif b/src/main/webapp/images/loading.gif new file mode 100644 index 0000000..0c411ce Binary files /dev/null and b/src/main/webapp/images/loading.gif differ diff --git a/src/main/webapp/images/login_.png b/src/main/webapp/images/login_.png new file mode 100644 index 0000000..6430e39 Binary files /dev/null and b/src/main/webapp/images/login_.png differ diff --git a/src/main/webapp/images/rock.png b/src/main/webapp/images/rock.png new file mode 100644 index 0000000..43f9832 Binary files /dev/null and b/src/main/webapp/images/rock.png differ diff --git a/src/main/webapp/images/tab_blt_on.png b/src/main/webapp/images/tab_blt_on.png new file mode 100644 index 0000000..08478e0 Binary files /dev/null and b/src/main/webapp/images/tab_blt_on.png differ diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp new file mode 100644 index 0000000..a097c53 --- /dev/null +++ b/src/main/webapp/index.jsp @@ -0,0 +1,2 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> + \ No newline at end of file diff --git a/src/main/webapp/js/bootstrap.min.js b/src/main/webapp/js/bootstrap.min.js new file mode 100644 index 0000000..c6d3692 --- /dev/null +++ b/src/main/webapp/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.2 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.2",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.2",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.2",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.2",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('"),i=e.children()[0];return k("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(C(s),C(n))?o.important="horizontal":o.important="vertical",u.using.call(this,t,o)}),a.offset(k.extend(l,{using:t}))})},k.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,a=s-o,r=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0?@[\]^`{|}~])/g,function(t){return t.replace(e,"\\$1")}),k.fn.labels=function(){var t,e,i;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(e=this.eq(0).parents("label"),(t=this.attr("id"))&&(i=(i=this.eq(0).parents().last()).add((i.length?i:this).siblings()),t="label[for='"+k.ui.escapeSelector(t)+"']",e=e.add(i.find(t).addBack(t))),this.pushStack(e))},k.fn.scrollParent=function(t){var e=this.css("position"),i="absolute"===e,s=t?/(auto|scroll|hidden)/:/(auto|scroll)/,t=this.parents().filter(function(){var t=k(this);return(!i||"static"!==t.css("position"))&&s.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==e&&t.length?t:k(this[0].ownerDocument||document)},k.extend(k.expr[":"],{tabbable:function(t){var e=k.attr(t,"tabindex"),i=null!=e;return(!i||0<=e)&&k.ui.focusable(t,i)}}),k.fn.extend({uniqueId:(u=0,function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++u)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&k(this).removeAttr("id")})}}),k.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var e,u,d=!1;k(document).on("mouseup",function(){d=!1});k.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(t){if(!0===k.data(t.target,e.widgetName+".preventClickEvent"))return k.removeData(t.target,e.widgetName+".preventClickEvent"),t.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var e=this,i=1===t.which,s=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&k(t.target).closest(this.options.cancel).length;return i&&!s&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===k.data(t.target,this.widgetName+".preventClickEvent")&&k.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(k.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&k.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,d=!1,t.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),k.ui.plugin={add:function(t,e,i){var s,n=k.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var e=k.ui.safeActiveElement(this.document[0]);k(t.target).closest(e).length||k.ui.safeBlur(e)},_mouseStart:function(t){var e=this.options;return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),k.ui.ddmanager&&(k.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0i[2]&&(o=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(a=i[3]+this.offset.click.top)),s.grid&&(t=s.grid[1]?this.originalPageY+Math.round((a-this.originalPageY)/s.grid[1])*s.grid[1]:this.originalPageY,a=!i||t-this.offset.click.top>=i[1]||t-this.offset.click.top>i[3]?t:t-this.offset.click.top>=i[1]?t-s.grid[1]:t+s.grid[1],t=s.grid[0]?this.originalPageX+Math.round((o-this.originalPageX)/s.grid[0])*s.grid[0]:this.originalPageX,o=!i||t-this.offset.click.left>=i[0]||t-this.offset.click.left>i[2]?t:t-this.offset.click.left>=i[0]?t-s.grid[0]:t+s.grid[0]),"y"===s.axis&&(o=this.originalPageX),"x"===s.axis&&(a=this.originalPageY)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:n?0:this.offset.scroll.top),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:n?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,e,i){return i=i||this._uiHash(),k.ui.plugin.call(this,t,[e,i,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),k.Widget.prototype._trigger.call(this,t,e,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),k.ui.plugin.add("draggable","connectToSortable",{start:function(e,t,i){var s=k.extend({},t,{item:i.element});i.sortables=[],k(i.options.connectToSortable).each(function(){var t=k(this).sortable("instance");t&&!t.options.disabled&&(i.sortables.push(t),t.refreshPositions(),t._trigger("activate",e,s))})},stop:function(e,t,i){var s=k.extend({},t,{item:i.element});i.cancelHelperRemoval=!1,k.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))})},drag:function(i,s,n){k.each(n.sortables,function(){var t=!1,e=this;e.positionAbs=n.positionAbs,e.helperProportions=n.helperProportions,e.offset.click=n.offset.click,e._intersectsWith(e.containerCache)&&(t=!0,k.each(n.sortables,function(){return this.positionAbs=n.positionAbs,this.helperProportions=n.helperProportions,this.offset.click=n.offset.click,this!==e&&this._intersectsWith(this.containerCache)&&k.contains(e.element[0],this.element[0])&&(t=!1),t})),t?(e.isOver||(e.isOver=1,n._parent=s.helper.parent(),e.currentItem=s.helper.appendTo(e.element).data("ui-sortable-item",!0),e.options._helper=e.options.helper,e.options.helper=function(){return s.helper[0]},i.target=e.currentItem[0],e._mouseCapture(i,!0),e._mouseStart(i,!0,!0),e.offset.click.top=n.offset.click.top,e.offset.click.left=n.offset.click.left,e.offset.parent.left-=n.offset.parent.left-e.offset.parent.left,e.offset.parent.top-=n.offset.parent.top-e.offset.parent.top,n._trigger("toSortable",i),n.dropped=e.element,k.each(n.sortables,function(){this.refreshPositions()}),n.currentItem=n.element,e.fromOutside=n),e.currentItem&&(e._mouseDrag(i),s.position=e.position)):e.isOver&&(e.isOver=0,e.cancelHelperRemoval=!0,e.options._revert=e.options.revert,e.options.revert=!1,e._trigger("out",i,e._uiHash(e)),e._mouseStop(i,!0),e.options.revert=e.options._revert,e.options.helper=e.options._helper,e.placeholder&&e.placeholder.remove(),s.helper.appendTo(n._parent),n._refreshOffsets(i),s.position=n._generatePosition(i,!0),n._trigger("fromSortable",i),n.dropped=!1,k.each(n.sortables,function(){this.refreshPositions()}))})}}),k.ui.plugin.add("draggable","cursor",{start:function(t,e,i){var s=k("body"),i=i.options;s.css("cursor")&&(i._cursor=s.css("cursor")),s.css("cursor",i.cursor)},stop:function(t,e,i){i=i.options;i._cursor&&k("body").css("cursor",i._cursor)}}),k.ui.plugin.add("draggable","opacity",{start:function(t,e,i){e=k(e.helper),i=i.options;e.css("opacity")&&(i._opacity=e.css("opacity")),e.css("opacity",i.opacity)},stop:function(t,e,i){i=i.options;i._opacity&&k(e.helper).css("opacity",i._opacity)}}),k.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,e,i){var s=i.options,n=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&"HTML"!==o.tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+o.offsetHeight-t.pageY").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&k(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();function t(t){k(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){this._super(t,e),"handles"===t&&(this._removeHandles(),this._setupHandles())},_setupHandles:function(){var t,e,i,s,n,o=this.options,a=this;if(this.handles=o.handles||(k(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=k(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.append(n);this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=k(this.handles[e]),this._on(this.handles[e],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=k(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){a.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=k(this.handles[e])[0])!==t.target&&!k.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=k(s.containment).scrollLeft()||0,i+=k(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=k(".ui-resizable-"+this.axis).css("cursor"),k("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),k.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(k.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),k("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&i&&(t.top=h-e.minHeight),n&&i&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return k.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return k.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return k.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return k.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){k.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),k.ui.plugin.add("resizable","animate",{stop:function(e){var i=k(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,a=n?0:i.sizeDiff.width,n={width:i.size.width-a,height:i.size.height-o},a=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(k.extend(n,o&&a?{top:o,left:a}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&k(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),k.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=k(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,a=o instanceof k?o.get(0):/parent/.test(o)?e.parent().get(0):o;a&&(n.containerElement=k(a),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:k(document),left:0,top:0,width:k(document).width(),height:k(document).height()||document.body.parentNode.scrollHeight}):(i=k(a),s=[],k(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(a,"left")?a.scrollWidth:o,e=n._hasScroll(a)?a.scrollHeight:e,n.parentData={element:a,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=k(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,a={top:0,left:0},r=e.containerElement,t=!0;r[0]!==document&&/static/.test(r.css("position"))&&(a=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-a.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-a.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-a.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=k(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=k(t.helper),a=o.offset(),r=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&k(this).css({left:a.left-s.left-i.left,width:r,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&k(this).css({left:a.left-s.left-i.left,width:r,height:o})}}),k.ui.plugin.add("resizable","alsoResize",{start:function(){var t=k(this).resizable("instance").options;k(t.alsoResize).each(function(){var t=k(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=k(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,a={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};k(s.alsoResize).each(function(){var t=k(this),s=k(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];k.each(e,function(t,e){var i=(s[e]||0)+(a[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){k(this).removeData("ui-resizable-alsoresize")}}),k.ui.plugin.add("resizable","ghost",{start:function(){var t=k(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==k.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=k(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=k(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),k.ui.plugin.add("resizable","grid",{resize:function(){var t,e=k(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,a=e.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=r[0]||1,l=r[1]||1,c=Math.round((s.width-n.width)/h)*h,u=Math.round((s.height-n.height)/l)*l,d=n.width+c,p=n.height+u,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>p;i.grid=r,m&&(d+=h),s&&(p+=l),f&&(d-=h),g&&(p-=l),/^(se|s|e)$/.test(a)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.top=o.top-u):/^(sw)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.left=o.left-c):((p-l<=0||d-h<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(i){var s=this,t=this.options;this.opos=[i.pageX,i.pageY],this.elementPos=k(this.element[0]).offset(),this.options.disabled||(this.selectees=k(t.filter,this.element[0]),this._trigger("start",i),k(t.appendTo).append(this.helper),this.helper.css({left:i.pageX,top:i.pageY,width:0,height:0}),t.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var t=k.data(this,"selectable-item");t.startselected=!0,i.metaKey||i.ctrlKey||(s._removeClass(t.$element,"ui-selected"),t.selected=!1,s._addClass(t.$element,"ui-unselecting"),t.unselecting=!0,s._trigger("unselecting",i,{unselecting:t.element}))}),k(i.target).parents().addBack().each(function(){var t,e=k.data(this,"selectable-item");if(e)return t=!i.metaKey&&!i.ctrlKey||!e.$element.hasClass("ui-selected"),s._removeClass(e.$element,t?"ui-unselecting":"ui-selected")._addClass(e.$element,t?"ui-selecting":"ui-unselecting"),e.unselecting=!t,e.selecting=t,(e.selected=t)?s._trigger("selecting",i,{selecting:e.element}):s._trigger("unselecting",i,{unselecting:e.element}),!1}))},_mouseDrag:function(s){if(this.dragged=!0,!this.options.disabled){var t,n=this,o=this.options,a=this.opos[0],r=this.opos[1],h=s.pageX,l=s.pageY;return hh||i.rightl||i.bottoma&&i.rightr&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return e<=t&&t*{ cursor: "+o.cursor+" !important; }").appendTo(n)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(s=this.containers.length-1;0<=s;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return k.ui.ddmanager&&(k.ui.ddmanager.current=this),k.ui.ddmanager&&!o.dropBehaviour&&k.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var e,i,s,n,o=this.options,a=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageYt[this.floating?"width":"height"]?c:o",i.document[0]);return i._addClass(e,"ui-sortable-placeholder",s||i.currentItem[0].className)._removeClass(e,"ui-sortable-helper"),"tbody"===t?i._createTrPlaceholder(i.currentItem.find("tr").eq(0),k("",i.document[0]).appendTo(e)):"tr"===t?i._createTrPlaceholder(i.currentItem,e):"img"===t&&e.attr("src",i.currentItem.attr("src")),s||e.css("visibility","hidden"),e},update:function(t,e){s&&!n.forcePlaceholderSize||(e.height()||e.height(i.currentItem.innerHeight()-parseInt(i.currentItem.css("paddingTop")||0,10)-parseInt(i.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(i.currentItem.innerWidth()-parseInt(i.currentItem.css("paddingLeft")||0,10)-parseInt(i.currentItem.css("paddingRight")||0,10)))}}),i.placeholder=k(n.placeholder.element.call(i.element,i.currentItem)),i.currentItem.after(i.placeholder),n.placeholder.update(i,i.placeholder)},_createTrPlaceholder:function(t,e){var i=this;t.children().each(function(){k(" ",i.document[0]).attr("colspan",k(this).attr("colspan")||1).appendTo(e)})},_contactContainers:function(t){for(var e,i,s,n,o,a,r,h,l,c=null,u=null,d=this.containers.length-1;0<=d;d--)k.contains(this.currentItem[0],this.containers[d].element[0])||(this._intersectsWith(this.containers[d].containerCache)?c&&k.contains(this.containers[d].element[0],c.element[0])||(c=this.containers[d],u=d):this.containers[d].containerCache.over&&(this.containers[d]._trigger("out",t,this._uiHash(this)),this.containers[d].containerCache.over=0));if(c)if(1===this.containers.length)this.containers[u].containerCache.over||(this.containers[u]._trigger("over",t,this._uiHash(this)),this.containers[u].containerCache.over=1);else{for(i=1e4,s=null,n=(h=c.floating||this._isFloating(this.currentItem))?"left":"top",o=h?"width":"height",l=h?"pageX":"pageY",e=this.items.length-1;0<=e;e--)k.contains(this.containers[u].element[0],this.items[e].item[0])&&this.items[e].item[0]!==this.currentItem[0]&&(a=this.items[e].item.offset()[n],r=!1,t[l]-a>this.items[e][o]/2&&(r=!0),Math.abs(t[l]-a)this.containment[2]&&(i=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(s=this.containment[3]+this.offset.click.top)),e.grid&&(t=this.originalPageY+Math.round((s-this.originalPageY)/e.grid[1])*e.grid[1],s=!this.containment||t-this.offset.click.top>=this.containment[1]&&t-this.offset.click.top<=this.containment[3]?t:t-this.offset.click.top>=this.containment[1]?t-e.grid[1]:t+e.grid[1],t=this.originalPageX+Math.round((i-this.originalPageX)/e.grid[0])*e.grid[0],i=!this.containment||t-this.offset.click.left>=this.containment[0]&&t-this.offset.click.left<=this.containment[2]?t:t-this.offset.click.left>=this.containment[0]?t-e.grid[0]:t+e.grid[0])),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop()),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){this.reverting=!1;var i,s=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();function n(e,i,s){return function(t){s._trigger(e,t,i._uiHash(i))}}for(this.fromOutside&&!e&&s.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||s.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(s.push(function(t){this._trigger("remove",t,this._uiHash())}),s.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),s.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;0<=i;i--)e||s.push(n("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(s.push(n("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(i=0;i li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=k(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():k()}},_createIcons:function(){var t,e=this.options.icons;e&&(t=k(""),this._addClass(t,"ui-accordion-header-icon","ui-icon "+e.header),t.prependTo(this.headers),t=this.active.children(".ui-accordion-header-icon"),this._removeClass(t,e.header)._addClass(t,null,e.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){"active"!==t?("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons())):this._activate(e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=k.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(k(t.target).attr("tabIndex",-1),k(n).attr("tabIndex",0),k(n).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===k.ui.keyCode.UP&&t.ctrlKey&&k(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=k()):!1===t.active?this._activate(0):this.active.length&&!k.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=k()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=k(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=k(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=k(this).outerHeight(!0)}),this.headers.next().each(function(){k(this).height(Math.max(0,i-k(this).innerHeight()+k(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){var t=k(this).is(":visible");t||k(this).show(),i=Math.max(i,k(this).css("height","").height()),t||k(this).hide()}).height(i))},_activate:function(t){t=this._findActive(t)[0];t!==this.active[0]&&(t=t||this.active[0],this._eventHandler({target:t,currentTarget:t,preventDefault:k.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):k()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&k.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=k(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?k():s.next(),r=i.next(),a={oldHeader:i,oldPanel:r,newHeader:o?k():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,a)||(e.active=!o&&this.headers.index(s),this.active=n?k():s,this._toggle(a),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),e.icons&&(i=i.children(".ui-accordion-header-icon"),this._removeClass(i,null,e.icons.activeHeader)._addClass(i,null,e.icons.header)),n||(this._removeClass(s,"ui-accordion-header-collapsed")._addClass(s,"ui-accordion-header-active","ui-state-active"),e.icons&&(n=s.children(".ui-accordion-header-icon"),this._removeClass(n,null,e.icons.header)._addClass(n,null,e.icons.activeHeader)),this._addClass(s.next(),"ui-accordion-content-active")))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(k(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!i.length||t.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(t){var e=k(t.target),i=k(k.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var e,i;this.previousFilter||(e=k(t.target).closest(".ui-menu-item"),i=k(t.currentTarget),e[0]===i[0]&&(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i)))},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(t){this._delay(function(){k.contains(this.element[0],k.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=k(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case k.ui.keyCode.PAGE_UP:this.previousPage(t);break;case k.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case k.ui.keyCode.HOME:this._move("first","first",t);break;case k.ui.keyCode.END:this._move("last","last",t);break;case k.ui.keyCode.UP:this.previous(t);break;case k.ui.keyCode.DOWN:this.next(t);break;case k.ui.keyCode.LEFT:this.collapse(t);break;case k.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case k.ui.keyCode.ENTER:case k.ui.keyCode.SPACE:this._activate(t);break;case k.ui.keyCode.ESCAPE:this.collapse(t);break;default:n=!1,e=this.previousFilter||"",s=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=k(this),e=t.prev(),i=k("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=k(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!k.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(k.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(k.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=k.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=k.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){this.cancelBlur?delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),this._change(t))}}),this._initSource(),this.menu=k("