diff --git a/app/static/css/content.css b/app/static/css/content.css new file mode 100644 index 00000000..dccbf1a9 --- /dev/null +++ b/app/static/css/content.css @@ -0,0 +1,235 @@ +@charset "UTF-8"; + +/* "content.css" - styles for content inside
*/ + +/* MAIN */ + +main{ + background-color:rgb(255,255,255); + margin:0em; + padding:0em; + min-height:200px; + } + +main>div{ + margin:0em 5%; + margin-bottom:10px; + padding:0em; + } + +main h1{ + text-align:center; + padding:10px; + margin:0em -5%; + margin-bottom:10px; + background-color:rgb(0,48,66); + color:rgb(255,255,255); + } + +main h2{color:rgb(0,48,66);} +main h3{color:rgb(0,48,66);} +main p{color:rgb(0,0,0);} +main a{color:rgb(0,48,66);} +main a:hover{color:rgb(102,130,140);} + +main div.leftCol50, main div.rightCol50{display:block;width:47%;margin:1%;float:left;} +main div.leftCol40{display:block;width:37%;margin:1%;float:left;} +main div.rightCol60{display:block;width:57%;margin:1%;float:left;} + +main div.clear{clear:both;} + +main img.sectionIcon{height:64px;float:right;border:1px solid rgb(102,130,140);} +main div.section{clear:both;min-height:70px;margin-top:20px;border-bottom:1px solid rgb(206,196,169);padding:5px;} + +/**/ +main form fieldset, div.boxed{border:2px solid rgb(173,156,113);} +main form fieldset label{width:auto;min-width:auto;} + +main fieldset, div.boxed{padding:10px;border:1px solid rgb(102,130,140);} + +main fieldset>div{} + +main fieldset label{display:inline-block;min-width:8em;padding:5px;} +main fieldset input{padding:5px;border:1px solid rgb(173,156,113);color:rgb(0,48,66);font-size:100%;} +main fieldset select{padding:5px;border:1px solid rgb(173,156,113);color:rgb(0,48,66);font-size:100%;} + +main fieldset.boxed label{display:inline-block;width:30%;padding:5px;} +main fieldset.boxed div.visibleFields label{display:inline-block;width:auto;padding:2px 5px;} + + + +/* TABLES */ + +main table{margin:10px;} +main table>tbody{} +main table>tbody>tr{} +main table>tbody>tr>*{padding:5px;border:1px solid rgb(255,255,255);} +main table>tbody>tr>th{background-color:rgb(102,130,140);color:rgb(255,255,255);} +main table>tbody>tr>td{background-color:rgb(246,246,245);color:rgb(0,0,0);} + +main ul{margin-left:40px;} +main ul>li{color:rgb(0,0,0);} + + +main div>h2, main div>h3{color:rgb(0,48,66);margin-top:10px;} + +main div>a.white{text-decoration:none;color:rgb(255,255,255);} +main span.fileSizeComment{color:rgb(173,156,113);font-weight:normal;font-size:80%;} +main p.clear{clear:both;} + +/* BIG BUTTONS ===================================================== */ + +input.EnterBtn{ + background-color:rgb(206,196,169); + color:rgb(0,48,66); + padding:10px; + margin:10px; + font-weight:bold; + text-align:center; + cursor:pointer; + border:none; + box-shadow: 2px 2px 4px rgb(173,156,113); + font-size:120%; + } + +input.EnterBtn:hover{ + color:rgb(255,255,255); + background-color:rgb(173,156,113); + box-shadow: 1px 1px 2px rgb(173,156,113); + } + +/* COMMENT / DATA ERROR ===================================================== */ + +main p.commentBox{text-align:right;} +main p.commentBox>a{display:inline-block;border:2px solid rgb(206,196,169);margin:0px;padding:5px 10px;text-decoration:none;background-color:rgb(173,156,113);} +main p.commentBox>a>img{border:2px solid rgb(255,255,255);width:30px;height:30px;border-radius:50%;} + +main p.commentBox>a:hover{border:2px solid rgb(173,156,113);background-color:rgb(255,255,255);} +main p.commentBox>a:hover>img{border:2px solid rgb(173,156,113);} + +/* IMAGE BOXES ===================================================== */ + +.imgBoxRight70, .imgBoxRight60, .imgBoxRight50, .imgBoxRight40, .imgBoxRight33, .imgBoxRight30, .imgBoxRight20, .imgBoxLeft60, .imgBoxLeft50, .imgBoxLeft40, .imgBoxLeft33, .imgBoxLeft30, .imgBoxLeft20, .imgBoxLeft25, .imgBoxLeft15, .imgBoxLeft10, .imgBoxRight10, .imgBoxLeft100 { + margin-bottom: 0.8em; + position: relative; +} +.imgBoxRight20 img, .imgBoxRight30 img, .imgBoxRight40 img, .imgBoxLeft40 img, .imgBoxRight50 img, .imgBoxRight70 img, .imgBoxRight60 img, .imgBoxLeft50 img, .imgBoxLeft33 img, .imgBoxRight33 img, .imgBoxLeft30 img, .imgBoxLeft25 img, .imgBoxLeft20 img, .imgBoxLeft15 img, .imgBoxLeft10 img, .imgBoxRight10 img, .imgBoxLeft60 img, .imgBoxLeft100 img, div.fullWidthImg img, img.fullWidthImg, .center img { + max-width: 100%; + border: 0; + display: block; + margin: auto; + margin-bottom: 0.6em; +} +.imgBoxRight40 p, .imgBoxLeft40 p, .imgBoxRight50 p, .imgBoxRight60 p, .imgBoxLeft50 p, .imgBoxLeft33 p, .imgBoxRight33 p { + margin-top: 2.4em; +} +.imgBoxRight40 p:first-child, .imgBoxLeft40 p:first-child, .imgBoxRight50 p:first-child, .imgBoxLeft50 p:first-child, .imgBoxLeft33 p:first-child, .imgBoxRight33 p:first-child, .imgBoxRight60 p:first-child { + margin-top: 0; +} + + +/* FOR '2 COLUMNS' WITHIN midCol ====================================== */ +.leftCol10, .leftCol20, .leftCol40, .leftCol60, .leftCol66, #leftCol50, .leftCol50, .leftCol70 { + display: block; + float: left; + margin-right: 1%; + box-sizing: border-box; +} +.leftCol33, .imgBoxLeft33, .leftCol25 { + display: block; + float: left; + box-sizing: border-box; +} +.rightCol25, .rightCol30, .rightCol33, .rightCol40, #rightCol50, .rightCol50, .rightCol60, .rightCol70 { + display: block; + float: right; + margin-left: 1%; + box-sizing: border-box; +} + +.leftCol100 { + width: 100%; +} +.leftCol70, .rightCol70 { + width: 68%; +} +.leftCol60 { + width: 58%; +} +.leftCol66 { + width: 65.75%; +} +#leftCol50, .leftCol50, #rightCol50, .rightCol50 { + width: 48%; +} +.leftCol40 { + width: 38%; +} +.leftCol25, .rightCol25 { + width: 22.75%; +} +.leftCol10 { + width: 10%; +} +.leftCol20 { + width: 19%; +} +.leftCol33, .rightCol33, .imgBoxLeft33 { + width: 31%; + box-sizing: border-box; +} +.rightCol30 { + width: 28%; +} +.rightCol40 { + width: 38%; +} +.rightCol60 { + width: 58%; +} + +.imgBoxRight70, .imgBoxRight60, .imgBoxRight50, .imgBoxRight40, .imgBoxRight33, .imgBoxRight30, .imgBoxRight20, .imgBoxRight10 { + margin-left: 1%; + padding-left: 1%; + clear: right; + float: right; +} +.imgBoxLeft50, .imgBoxLeft40, .imgBoxLeft30, .imgBoxLeft25, .imgBoxLeft20, .imgBoxLeft15, .imgBoxLeft10, .imgBoxLeft60, .imgBoxLeft100 { + margin-right: 1%; + padding-right: 1%; + float: left; +} +.imgBoxRight50, .imgBoxLeft50 { + width: 48%; +} +.imgBoxRight40, .imgBoxLeft40 { + width: 38%; +} +.imgBoxRight33 { + width: 28%; +} +.imgBoxRight30, .imgBoxLeft30 { + width: 25%; +} +.imgBoxRight20, .imgBoxLeft20 { + width: 19%; +} +.imgBoxRight25, .imgBoxLeft25 { + width: 23%; +} +.imgBoxLeft15, .imgBoxRight15 { + width: 15%; +} +.imgBoxLeft10, .imgBoxRight10 { + min-width: 10%; + max-width: 20%; +} +.imgBoxLeft60, .imgBoxRight60 { + width: 56%; +} +.imgBoxLeft70, .imgBoxRight70 { + width: 66%; +} + +/* HIDDEN SEARCH-ENGINE LINKS */ +a.white{text-decoration:none;color:transparent;} diff --git a/app/static/css/jQuerySlideshow.css b/app/static/css/jQuerySlideshow.css new file mode 100644 index 00000000..0f456885 --- /dev/null +++ b/app/static/css/jQuerySlideshow.css @@ -0,0 +1,14 @@ +@charset "utf-8"; +/* CSS Document */ +#slideshow { + min-height: 12em; +} +#slideshow img { + background-color: #bbd3eb; +} +#slideshow img:hover { + cursor: pointer; +} +.hideDiv { + display: none; +} diff --git a/app/static/css/jQueryTabbedPanels.css b/app/static/css/jQueryTabbedPanels.css new file mode 100644 index 00000000..7326d648 --- /dev/null +++ b/app/static/css/jQueryTabbedPanels.css @@ -0,0 +1,132 @@ +@charset "utf-8"; +/* Tabbed panels */ +.TabbedPanels { + zoom: 1; /*IE7 hack*/ +} +.closeBtn { + position: absolute; + right: 0.5em; + top: 0.5em; + width: 2em; + background-color: #c7d5ec; + z-index: 100; +} +#midCol .TabbedPanelsTab, #midAndRightCol .TabbedPanelsTab { + background-color: #c7d5ec; + border: 0.1em solid #b0b1b3; + margin: 0.1em; + padding: 0.5%; + position: relative; + cursor: pointer; + box-shadow: 0.1em 0.1em 0.1em #e2e3e4; + z-index: 0; +} +#midCol .TabbedPanels .TabbedPanelsTab, #midAndRightCol .TabbedPanels .TabbedPanelsTab { + float: left; + display: block; + display: inline-block; + border-top-right-radius: 0.5em; + border-top-left-radius: 0.5em; +} +.TabbedPanelsTabFake { + top: 0.1em; + float: left; + width: 40%; + padding: 0.5%; + cursor: pointer; +} +#midCol .TabbedPanelsTabHover, #midAndRightCol .TabbedPanelsTabHover { + background-color: #b0b1b3; +} +#midCol .TabbedPanelsTabSelected, #midAndRightCol .TabbedPanelsTabSelected { + background-color: #013171; + color: #fff; + font-style: italic; +} +#midCol .TabbedPanelsTab a, #midAndRightCol .TabbedPanelsTab a { + color: #000; + text-decoration: none; + display: block; + padding: 0.5%; +} +#midCol .TabbedPanelsTabSelected a, #midAndRightCol .TabbedPanelsTabSelected a +{ color:#fff;} +#midCol .TabbedPanelsContentGroup, #midAndRightCol .TabbedPanelsContentGroup { + clear: both; + position: relative; + display: block; +} +#midCol .TabbedPanels .TabbedPanelsContent, #midAndRightCol .TabbedPanels .TabbedPanelsContent { + width:98%; + padding: 0.5%; + background-color: #fff; + position: absolute; + left: 0; + border: solid 0.1em #b0b1b3; + z-index: 20; + display: block; + margin-top: 0.5em; +} +#midCol .VTabbedPanels .TabbedPanelsTab, #midAndRightCol .VTabbedPanels .TabbedPanelsTab { + margin: 0; + margin-right: 1%; + clear: both; + position: absolute; + display: block; + top: 0; +} +#midCol .VTabbedPanels .TabbedPanelsTabSelected, #midAndRightCol .VTabbedPanels .TabbedPanelsTabSelected { + background-color: #013171; + border-bottom: solid 0.1em #999; + color: #fff; +} +#midCol .VTabbedPanels .TabbedPanelsContentGroup, #midAndRightCol .VTabbedPanels .TabbedPanelsContentGroup { + clear: none; + float: left; + width: 98%; + position: relative; + background: #fff; + padding-bottom: 0.8em; + display: block; +} +#midCol .VTabbedPanels.jQueryTabs, #midAndRightCol .VTabbedPanels.jQueryTabs, #midCol .TabbedPanels.jQueryTabs, #midAndRightCol .TabbedPanels.jQueryTabs { + position: relative; + overflow:auto; +} +#midCol .sectionBox .sectionBody .VTabbedPanels h3, #midAndRightCol .sectionBox .sectionBody .VTabbedPanels h3 { + color: #013171; + margin: 0; +} +#midCol .sectionBox .sectionBody .VTabbedPanels.jQueryTabs .TabbedPanelsTabSelected h3, #midAndRightCol .sectionBox .sectionBody .VTabbedPanels.jQueryTabs .TabbedPanelsTabSelected h3 { + color: #fff; +} +#midCol .VTabbedPanels .TabbedPanelsContent, #midAndRightCol .VTabbedPanels .TabbedPanelsContent { + background: #e2e3e4; + border: solid 0.1em #b0b1b3; + padding: 0.5%; + z-index: 20; +} + @media screen and (min-width:35em) { +#midCol .VTabbedPanels .TabbedPanelsTab, #midAndRightCol .VTabbedPanels .TabbedPanelsTab { + width: 48% !important; + border-bottom-left-radius: 0.5em; + border-top-left-radius: 0.5em; +} +#midCol .VTabbedPanels .jQueryTabbedContent, #midAndRightCol .VTabbedPanels .jQueryTabbedContent { + float: right; + width: 45.5%; + border-top-right-radius: 0.5em; + border-bottom-right-radius: 0.5em; + padding-right: 2%; +} +} +@media screen and (max-width:35em) { +#midCol .VTabbedPanels .TabbedPanelsTab, #midAndRightCol .VTabbedPanels .TabbedPanelsTab, #midCol .VTabbedPanels .jQueryTabbedContent, #midAndRightCol .VTabbedPanels .jQueryTabbedContent { + width: 95%; + display: block; +} +#midCol .VTabbedPanels .jQueryTabbedContent, #midAndRightCol .VTabbedPanels .jQueryTabbedContent { + margin-top: 2.5em; + position: absolute; +} +} diff --git a/app/static/css/main.css b/app/static/css/main.css new file mode 100644 index 00000000..87ebb087 --- /dev/null +++ b/app/static/css/main.css @@ -0,0 +1,530 @@ +@charset "UTF-8"; + +/* main.2.css */ + +:root { + --blue: rgb(0,48,66); + --white: rgb(255,255,255); + --black: rgb(0,0,0); + --lt-gray: rgb(246,246,245); + --dk-gray: rgb(51,51,51); + --highlight: rgb(102,130,140); + --ochre: rgb(173,156,113); + --lt-ochre: rgb(206,196,169); + } + +html{ + color:rgb(0,48,66); + background-color:rgb(255,255,255); + font-family:aileron, sans-serif; + font-size:16px; + } + +html * { + margin:0; + padding:0; + } + +header, nav, main, footer, section{ + display:block; + } + +h1, h2, h3, h4, p, li{ + margin:0; + padding:5px; + } + +h1{ font-size:150%;} +h2{ font-size:135%;} +h3{ font-size:120%;} +h4{ font-size:100%;} +p, li{ font-size:100%;} + +header img, nav img, footer img{ + border:none; + } + +/* HEADER */ +header{ + background-color:rgb(255,255,255); + color:rgb(0,48,66); + } + +/* HEADER :: topnav */ + +header>section.topnav{ + background-color:rgb(0,48,66); + color:rgb(255,255,255); + text-align:right; + overflow:hidden; + padding-right:24px; + } + +header>section.topnav>article{ + display:block; + margin:0% auto; + max-width:1140px; + } + +header>section.topnav>article>a{ + color:rgb(255,255,255); + text-decoration:none; + display:block; + margin:0px 0px; + padding:10px 16px; + padding-top:11px; + border-right:1px solid rgb(255,255,255); + text-align:center; + float:right; + } + +header>section.topnav>article>a:last-child{ + border-left:1px solid rgb(255,255,255); + } + +header>section.topnav>article>a:hover{ + background-color:rgb(102,130,140); + } + + + +/* HEADER :: logonav */ + +header>section.logonav{ + height:80px; + margin:0% auto; + max-width:1140px; + padding:5px 0px; + } + +header>section.logonav>article>img.menubars{ + background-color:rgb(255,255,255); + width:32px; + margin:20px 10px; + padding:4px; + float:right; + } + +header>section.logonav>article.logo{ + width:200px; + height:60px; + background-color:rgb(255,255,255); + float:left; + } +header>section.logonav>article.nav{ + background-color:rgb(255,255,255); + width:calc(100% - 200px); + height:60px; + float:right; + } + +header>section.logonav>article.logo>a>img{ + height:51px; + width:auto; + padding:15px; + } + +header>section.logonav>article.nav{ + } + +header>section.logonav>article.nav>p{ + display:inline-block; + width:12%; + } + +header>section.logonav>article.nav>p.About{ width:20%;} +header>section.logonav>article.nav>p.Research{ width:16%;} +header>section.logonav>article.nav>p.Data{ width:12%;} +header>section.logonav>article.nav>p.DiscoGeo{ width:28%;} +header>section.logonav>article.nav>p.Search{ width:40px;float:right;padding-top:20px;} +header>section.logonav>article.nav>p.Search>img{display:block;margin:0px;padding:4px;} + + +header>section.logonav>article.nav>p>a{ + display:inline-block; + border-bottom:3px solid rgb(255,255,255); + color:rgb(0,0,0); + padding:5px; + margin:0px 10px; + margin-top:20px; + text-decoration:none; + } + +header>section.logonav>article.nav>p>a:hover, header>section.logonav>article.nav>p>a.open{ + font-weight:bold; + border-bottom:3px solid rgb(173,156,113); + } + + + +/* HEADER :: breadcrumbs */ + +header>section.breadcrumbs{ + background-color:rgb(246,246,245); + color:rgb(0,48,66); + padding:5px; + box-shadow: 0 -2px 4px 0 rgba(183, 183, 183, 0.5); + clear:both; + } + + +header>section.breadcrumbs>article{ + max-width:1140px; + margin:0px auto; + font-size:14px; + + } + + +header>section.breadcrumbs>article>*{ + display:inline-block; + padding:5px 5px; + } + +header>section.breadcrumbs>article>a{ + text-decoration:none; + color:rgb(0,0,0); + } + +header>section.breadcrumbs>article>em{ + background-image:url(../images/arrow.svg); + background-position:50% 50%; + background-repeat:no-repeat; + background-size:12px; + transform:rotate(270deg); + } + + + +/* NAV */ +nav{ + display:block; + background-color:rgb(255,255,255); + width:80%; + position:absolute; + top:130px; + /* height:200px; */ + left:10%; + color:rgb(0,48,66); + box-shadow: 0 2px 4px 0 rgb(51,51,51); + border:1px solid rgb(51,51,51); + border-top:none; + /* make sure appears in front of maps */ + z-index:999999; + /* hide while loading */ + opacity:0; + + } + +nav ul{ + list-style-type:none; + padding:0em; + margin:0em; + } + +nav>ul{ + margin:10px; + width:calc(50% - 10px); + } + +nav>ul#level2{float:left;margin-right:0px;} +nav>ul.level3{ + display:block; + margin-left:50%; + background-color:rgb(246,246,245); + margin-top:20px; + margin-bottom:10px; + } + +nav>ul>li{ + display:block; + padding:10px; + padding-right:0px; + } + +nav>ul>li>ul{ + padding:0em; + margin:0em; + } + +nav>ul>li>ul>li{border-top:1px solid rgb(246,246,245);padding:10px;margin:0em;} + +nav>ul>li>ul>li:hover, nav>ul>li>ul>li.open{ + background-color:rgb(246,246,245); + } + + + +nav>ul>li>ul>li:last-child{ + border-bottom:1px solid rgb(246,246,245); + } + +nav>ul>li>ul>li>a{ + text-decoration:none; + color:rgb(0,0,0); + } + +nav>ul>li>ul>li:hover>a{ + text-decoration:underline; + } + +nav>ul>li>ul>li>ul{ + display:none; + } + +nav>ul>li>ul>li:hover>ul{ + display:block; + position:absolute + margin-left:40%; + right:0px; + background-color:rgb(51,51,51); + } + + +nav ul>li>em{ + background-image:url(../images/arrow.svg); + background-position:50% 50%; + background-repeat:no-repeat; + background-size:14px; + transform:rotate(270deg); + display:inline-block; + padding:5px 5px; + width:16px; + height:16px; + float:right; + } + +nav>ul.level3{ + padding-top:10px; + } + +nav>ul.level3>li{ + padding:5px; + padding-left:20px; + border-top:1px solid rgb(246,246,245); + } + +nav>ul.level3>li>a{ + text-decoration:underline; + color:rgb(0,0,0); + } +nav>ul.level3>li:hover>a{ + text-decoration:none; + } + +nav>ul.level3>li.empty{ + display:none; + } + + + +/* FOOTER */ +footer{ + background-color:rgb(0,48,66); + color:rgb(255,255,255); + } + +footer>section.ukri{ + background-color:rgb(51,51,51); + text-align:center; + } +footer>section.ukri>a>img{ + width:300px; + } + +footer>section.links{ + margin:0% auto; + max-width:1140px; + text-align:center; + } +footer>section.links>article{ + margin:5px; + padding:0px; + display:inline-block; + overflow:hidden; + min-height:4em; + width:30%; + } + +footer>section.links>article.useful{min-width:18em;float:left;} +footer>section.links>article.policy{min-width:18em;} +footer>section.links>article.news{min-width:18em;float:right;} + + +footer>section.links>article>h3{ + margin:5px; + padding:5px; + text-align:left; + border-bottom:1px solid rgb(255,255,255); + } +footer>section.links>article>p{ + margin:5px 10px; + padding:5px; + text-align:left; + } + +footer>section.links>article.news>p>a{ + background-color:rgb(173,156,113); + color:rgb(0,0,0); + display:inline-block; + margin:0px; + padding:10px 20px; + border-radius:17px; + font-weight:bold; + font-size:110%; + } + +footer>section.copy{ + border-top:1px solid rgb(255,255,255); + margin:0% auto; + max-width:1140px; + clear:both; + text-align:center; + } + +footer>section.copy>p{ + padding:5px; + padding-bottom:10px; + margin:5px 0px; + width:48%; + display:inline-block; + text-align:right; + } +footer>section.copy>p:first-child{ + text-align:left; + } + + + +footer>section a{ + color:rgb(255,255,255); + text-decoration:none; + } + +footer>section a:hover{ + text-decoration:underline; + } + +footer>section.links>article.news input{padding:10px;margin:0px;border:none;} + + +/* SOCIAL MEDIA */ +footer>section.copy>p.social{} +footer>section.copy>p.social>a{display:inline-block;padding:2px;} +footer>section.copy>p.social>a>img{height:30px;width:30px;} + + +/* NEWSLETTER */ +#newsletterEmail{background-color:rgb(255,255,255);width:80%;} +#newsletterBtn{ + background-color:rgb(206,196,169); + background-image:url(../images/arrow.svg); + background-position:50% 50%; + background-repeat:no-repeat; + background-size:14px; + transform:rotate(270deg); + width:36px; + height:36px; + overflow:hidden; + cursor:pointer; + } +#newsletterBtn:hover{ + background-color:rgb(173,156,113); + } + + +/* */ +body.width1{} +body.width2{} +body.width3{} +body.width4{} +body.width5{} + + +body.width1>footer>section>article, body.width1>footer>section.links>article.news, +body.width2>footer>section>article, body.width2>footer>section.links>article.news, +body.width3>footer>section>article, body.width3>footer>section.links>article.news{ + display:block; + width:95%; + float:none; + } + +/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ +body.width1>header>section.logonav>article.nav>p, +body.width2>header>section.logonav>article.nav>p{ + display:none; + } + + +/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ + +#mobileMenu{ + position:absolute; + left:0px; + right:0px; + top:90px; + height:auto; + background-color:#FFFFFF; + z-index:999; + } + +#mobileMenu ul{list-style-type:none;} +#mobileMenu li{padding:0px;} +/* #mobileMenu li:hover{background-color:rgb(246,246,245);} */ +#mobileMenu li>a{display:inline-block;color:var(--dk-blue);text-decoration:none;padding:14px 10px;} + +#mobileMenu ul>li>em{ + background-image:url(../images/arrow.svg); + background-position:50% 50%; + background-repeat:no-repeat; + background-size:14px; + transform:rotate(270deg); + display:inline-block; + padding:6px; + width:16px; + height:16px; + float:right; + } + +#mobileMenu ul>li{ + border-bottom:1px solid rgb(246,246,245); + max-width:510px; + margin:0px auto; + } +#mobileMenu ul.mm_lvl_1>li>strong{display:inline-block;color:var(--dk-blue);font-weight:normal;padding:14px 10px;} +#mobileMenu ul.mm_lvl_2>li>a{} +#mobileMenu ul.mm_lvl_3>li>a{} + + +#mobileMenu ul.mm_lvl_1>li.open{text-align:center;} +#mobileMenu ul.mm_lvl_1>li.open>strong{font-weight:bold;} +#mobileMenu ul.mm_lvl_1>li.open>em{float:left;transform:rotate(90deg);} + +#mobileMenu ul.mm_lvl_1>li ul{display:none;} +#mobileMenu ul.mm_lvl_1>li.open>ul{display:block;text-align:left;background-color:rgb(255,255,255);} +#mobileMenu ul.mm_lvl_1>li.open>ul>li{} + +/*#mobileMenu ul.mm_lvl_1>li.open>ul.mm_lvl_2>li.open>ul{display:block;border:1px solid #FF0000;} +#mobileMenu ul.mm_lvl_1>li.open>ul.mm_lvl_2>li.open>ul>li{display:block;border:1px solid #000000;} +#mobileMenu ul.mm_lvl_1>li.open>ul.mm_lvl_2>li.open>a{color:blue;}*/ + +#mobileMenu ul.mm_lvl_1 li.open ul.mm_lvl_2 li.open{text-align:center;} +#mobileMenu ul.mm_lvl_1 li.open ul.mm_lvl_2 li.open>a{font-weight:bold;} +#mobileMenu ul.mm_lvl_1 li.open ul.mm_lvl_2 li.open>ul{display:block;text-align:left;background-color:rgb(255,255,255);} +#mobileMenu ul.mm_lvl_1 li.open ul.mm_lvl_2 li.open>em{float:left;transform:rotate(90deg);} + +#mobileMenu ul.mm_lvl_1>li.open, +#mobileMenu ul.mm_lvl_1 li.open ul.mm_lvl_2 li.open{ + background-image:linear-gradient(180deg, #EEEEEE, #EEEEEE 36px, #FFFFFF 36px, #FFFFFF); + } + +/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ + + + +body.width3>header>section.logonav>article>img.menubars, +body.width4>header>section.logonav>article>img.menubars, +body.width5>header>section.logonav>article>img.menubars{ + display:none; + } + \ No newline at end of file diff --git a/app/static/images/BGS-Logo-Pos-RGB.svg b/app/static/images/BGS-Logo-Pos-RGB.svg new file mode 100644 index 00000000..e32c6625 --- /dev/null +++ b/app/static/images/BGS-Logo-Pos-RGB.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/static/images/arrow.svg b/app/static/images/arrow.svg new file mode 100644 index 00000000..1ccd7bdd --- /dev/null +++ b/app/static/images/arrow.svg @@ -0,0 +1,19 @@ + + + + Icon/Accordions/Plus + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/logos/cropped-BGS-favicon-logo-180x180.png b/app/static/images/logos/cropped-BGS-favicon-logo-180x180.png new file mode 100644 index 00000000..f753bbc7 Binary files /dev/null and b/app/static/images/logos/cropped-BGS-favicon-logo-180x180.png differ diff --git a/app/static/images/logos/cropped-BGS-favicon-logo-32x32.png b/app/static/images/logos/cropped-BGS-favicon-logo-32x32.png new file mode 100644 index 00000000..7b64394b Binary files /dev/null and b/app/static/images/logos/cropped-BGS-favicon-logo-32x32.png differ diff --git a/app/static/images/logos/cropped-BGS-home-screen-150x150.png b/app/static/images/logos/cropped-BGS-home-screen-150x150.png new file mode 100644 index 00000000..0a1580cf Binary files /dev/null and b/app/static/images/logos/cropped-BGS-home-screen-150x150.png differ diff --git a/app/static/images/logos/nerc_ukri_logo.svg b/app/static/images/logos/nerc_ukri_logo.svg new file mode 100644 index 00000000..4094773c --- /dev/null +++ b/app/static/images/logos/nerc_ukri_logo.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/static/images/menu-bars.svg b/app/static/images/menu-bars.svg new file mode 100644 index 00000000..bc398923 --- /dev/null +++ b/app/static/images/menu-bars.svg @@ -0,0 +1,19 @@ + + + + Icon/Bars + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/menu-close.svg b/app/static/images/menu-close.svg new file mode 100644 index 00000000..90ba76f5 --- /dev/null +++ b/app/static/images/menu-close.svg @@ -0,0 +1,18 @@ + + + + Icon/Navigation/Close + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/search.svg b/app/static/images/search.svg new file mode 100644 index 00000000..e354a358 --- /dev/null +++ b/app/static/images/search.svg @@ -0,0 +1,15 @@ + + + + Icon/Search + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/social/social-facebook-blue.svg b/app/static/images/social/social-facebook-blue.svg new file mode 100644 index 00000000..94b78fc0 --- /dev/null +++ b/app/static/images/social/social-facebook-blue.svg @@ -0,0 +1,14 @@ + + + + Icon/Social/Footer/Facebook Copy 5 + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/social/social-facebook-white.svg b/app/static/images/social/social-facebook-white.svg new file mode 100644 index 00000000..255b7459 --- /dev/null +++ b/app/static/images/social/social-facebook-white.svg @@ -0,0 +1,14 @@ + + + + Icon/Social/Footer/Facebook + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/social/social-in-blue.svg b/app/static/images/social/social-in-blue.svg new file mode 100644 index 00000000..73b432b9 --- /dev/null +++ b/app/static/images/social/social-in-blue.svg @@ -0,0 +1,16 @@ + + + + Icon/Social/Footer/Facebook Copy 6 + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/social/social-in-white.svg b/app/static/images/social/social-in-white.svg new file mode 100644 index 00000000..417b4fc9 --- /dev/null +++ b/app/static/images/social/social-in-white.svg @@ -0,0 +1,16 @@ + + + + Icon/Social/Footer/Facebook Copy + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/social/social-twitter-blue.svg b/app/static/images/social/social-twitter-blue.svg new file mode 100644 index 00000000..ba040e67 --- /dev/null +++ b/app/static/images/social/social-twitter-blue.svg @@ -0,0 +1,14 @@ + + + + Icon/Social/Footer/Facebook Copy 7 + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/social/social-twitter-white.svg b/app/static/images/social/social-twitter-white.svg new file mode 100644 index 00000000..dc1a386f --- /dev/null +++ b/app/static/images/social/social-twitter-white.svg @@ -0,0 +1,14 @@ + + + + Icon/Social/Footer/Facebook Copy 2 + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/social/social-video-blue.svg b/app/static/images/social/social-video-blue.svg new file mode 100644 index 00000000..8913a1ff --- /dev/null +++ b/app/static/images/social/social-video-blue.svg @@ -0,0 +1,14 @@ + + + + Icon/Social/Footer/Facebook Copy 8 + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/app/static/images/social/social-video-white.svg b/app/static/images/social/social-video-white.svg new file mode 100644 index 00000000..3a388c16 --- /dev/null +++ b/app/static/images/social/social-video-white.svg @@ -0,0 +1,14 @@ + + + + Icon/Social/Footer/Facebook Copy 3 + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/app/static/js/html5shiv-printshiv.js b/app/static/js/html5shiv-printshiv.js new file mode 100644 index 00000000..085708e7 --- /dev/null +++ b/app/static/js/html5shiv-printshiv.js @@ -0,0 +1,524 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +;(function(window, document) { +/*jshint evil:true */ + /** version */ + var version = '3.7.3'; + + /** Preset options */ + var options = window.html5 || {}; + + /** Used to skip problem elements */ + var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; + + /** Not all elements can be cloned in IE **/ + var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; + + /** Detect whether the browser supports default html5 styles */ + var supportsHtml5Styles; + + /** Name of the expando, to work with multiple documents or to re-shiv one document */ + var expando = '_html5shiv'; + + /** The id for the the documents expando */ + var expanID = 0; + + /** Cached data for each document */ + var expandoData = {}; + + /** Detect whether the browser supports unknown elements */ + var supportsUnknownElements; + + (function() { + try { + var a = document.createElement('a'); + a.innerHTML = ''; + //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles + supportsHtml5Styles = ('hidden' in a); + + supportsUnknownElements = a.childNodes.length == 1 || (function() { + // assign a false positive if unable to shiv + (document.createElement)('a'); + var frag = document.createDocumentFragment(); + return ( + typeof frag.cloneNode == 'undefined' || + typeof frag.createDocumentFragment == 'undefined' || + typeof frag.createElement == 'undefined' + ); + }()); + } catch(e) { + // assign a false positive if detection fails => unable to shiv + supportsHtml5Styles = true; + supportsUnknownElements = true; + } + + }()); + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a style sheet with the given CSS text and adds it to the document. + * @private + * @param {Document} ownerDocument The document. + * @param {String} cssText The CSS text. + * @returns {StyleSheet} The style element. + */ + function addStyleSheet(ownerDocument, cssText) { + var p = ownerDocument.createElement('p'), + parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; + + p.innerHTML = 'x'; + return parent.insertBefore(p.lastChild, parent.firstChild); + } + + /** + * Returns the value of `html5.elements` as an array. + * @private + * @returns {Array} An array of shived element node names. + */ + function getElements() { + var elements = html5.elements; + return typeof elements == 'string' ? elements.split(' ') : elements; + } + + /** + * Extends the built-in list of html5 elements + * @memberOf html5 + * @param {String|Array} newElements whitespace separated list or array of new element names to shiv + * @param {Document} ownerDocument The context document. + */ + function addElements(newElements, ownerDocument) { + var elements = html5.elements; + if(typeof elements != 'string'){ + elements = elements.join(' '); + } + if(typeof newElements != 'string'){ + newElements = newElements.join(' '); + } + html5.elements = elements +' '+ newElements; + shivDocument(ownerDocument); + } + + /** + * Returns the data associated to the given document + * @private + * @param {Document} ownerDocument The document. + * @returns {Object} An object of data. + */ + function getExpandoData(ownerDocument) { + var data = expandoData[ownerDocument[expando]]; + if (!data) { + data = {}; + expanID++; + ownerDocument[expando] = expanID; + expandoData[expanID] = data; + } + return data; + } + + /** + * returns a shived element for the given nodeName and document + * @memberOf html5 + * @param {String} nodeName name of the element + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived element. + */ + function createElement(nodeName, ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createElement(nodeName); + } + if (!data) { + data = getExpandoData(ownerDocument); + } + var node; + + if (data.cache[nodeName]) { + node = data.cache[nodeName].cloneNode(); + } else if (saveClones.test(nodeName)) { + node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); + } else { + node = data.createElem(nodeName); + } + + // Avoid adding some elements to fragments in IE < 9 because + // * Attributes like `name` or `type` cannot be set/changed once an element + // is inserted into a document/fragment + // * Link elements with `src` attributes that are inaccessible, as with + // a 403 response, will cause the tab/window to crash + // * Script elements appended to fragments will execute when their `src` + // or `text` property is set + return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; + } + + /** + * returns a shived DocumentFragment for the given document + * @memberOf html5 + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived DocumentFragment. + */ + function createDocumentFragment(ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createDocumentFragment(); + } + data = data || getExpandoData(ownerDocument); + var clone = data.frag.cloneNode(), + i = 0, + elems = getElements(), + l = elems.length; + for(;i+~])(' + getElements().join('|') + ')(?=[[\\s,>+~#.:]|$)', 'gi'), + replacement = '$1' + shivNamespace + '\\:$2'; + + while (index--) { + pair = parts[index] = parts[index].split('}'); + pair[pair.length - 1] = pair[pair.length - 1].replace(reElements, replacement); + parts[index] = pair.join('}'); + } + return parts.join('{'); + } + + /** + * Removes the given wrappers, leaving the original elements. + * @private + * @params {Array} wrappers An array of printable wrappers. + */ + function removeWrappers(wrappers) { + var index = wrappers.length; + while (index--) { + wrappers[index].removeNode(); + } + } + + /*--------------------------------------------------------------------------*/ + + /** + * Shivs the given document for print. + * @memberOf html5 + * @param {Document} ownerDocument The document to shiv. + * @returns {Document} The shived document. + */ + function shivPrint(ownerDocument) { + var shivedSheet, + wrappers, + data = getExpandoData(ownerDocument), + namespaces = ownerDocument.namespaces, + ownerWindow = ownerDocument.parentWindow; + + if (!supportsShivableSheets || ownerDocument.printShived) { + return ownerDocument; + } + if (typeof namespaces[shivNamespace] == 'undefined') { + namespaces.add(shivNamespace); + } + + function removeSheet() { + clearTimeout(data._removeSheetTimer); + if (shivedSheet) { + shivedSheet.removeNode(true); + } + shivedSheet= null; + } + + ownerWindow.attachEvent('onbeforeprint', function() { + + removeSheet(); + + var imports, + length, + sheet, + collection = ownerDocument.styleSheets, + cssText = [], + index = collection.length, + sheets = Array(index); + + // convert styleSheets collection to an array + while (index--) { + sheets[index] = collection[index]; + } + // concat all style sheet CSS text + while ((sheet = sheets.pop())) { + // IE does not enforce a same origin policy for external style sheets... + // but has trouble with some dynamically created stylesheets + if (!sheet.disabled && reMedia.test(sheet.media)) { + + try { + imports = sheet.imports; + length = imports.length; + } catch(er){ + length = 0; + } + + for (index = 0; index < length; index++) { + sheets.push(imports[index]); + } + + try { + cssText.push(sheet.cssText); + } catch(er){} + } + } + + // wrap all HTML5 elements with printable elements and add the shived style sheet + cssText = shivCssText(cssText.reverse().join('')); + wrappers = addWrappers(ownerDocument); + shivedSheet = addStyleSheet(ownerDocument, cssText); + + }); + + ownerWindow.attachEvent('onafterprint', function() { + // remove wrappers, leaving the original elements, and remove the shived style sheet + removeWrappers(wrappers); + clearTimeout(data._removeSheetTimer); + data._removeSheetTimer = setTimeout(removeSheet, 500); + }); + + ownerDocument.printShived = true; + return ownerDocument; + } + + /*--------------------------------------------------------------------------*/ + + // expose API + html5.type += ' print'; + html5.shivPrint = shivPrint; + + // shiv for print + shivPrint(document); + + if(typeof module == 'object' && module.exports){ + module.exports = html5; + } + +}(typeof window !== "undefined" ? window : this, document)); diff --git a/app/static/js/html5shiv.js b/app/static/js/html5shiv.js new file mode 100644 index 00000000..45ea723d --- /dev/null +++ b/app/static/js/html5shiv.js @@ -0,0 +1,326 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +;(function(window, document) { +/*jshint evil:true */ + /** version */ + var version = '3.7.3'; + + /** Preset options */ + var options = window.html5 || {}; + + /** Used to skip problem elements */ + var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; + + /** Not all elements can be cloned in IE **/ + var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; + + /** Detect whether the browser supports default html5 styles */ + var supportsHtml5Styles; + + /** Name of the expando, to work with multiple documents or to re-shiv one document */ + var expando = '_html5shiv'; + + /** The id for the the documents expando */ + var expanID = 0; + + /** Cached data for each document */ + var expandoData = {}; + + /** Detect whether the browser supports unknown elements */ + var supportsUnknownElements; + + (function() { + try { + var a = document.createElement('a'); + a.innerHTML = ''; + //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles + supportsHtml5Styles = ('hidden' in a); + + supportsUnknownElements = a.childNodes.length == 1 || (function() { + // assign a false positive if unable to shiv + (document.createElement)('a'); + var frag = document.createDocumentFragment(); + return ( + typeof frag.cloneNode == 'undefined' || + typeof frag.createDocumentFragment == 'undefined' || + typeof frag.createElement == 'undefined' + ); + }()); + } catch(e) { + // assign a false positive if detection fails => unable to shiv + supportsHtml5Styles = true; + supportsUnknownElements = true; + } + + }()); + + /*--------------------------------------------------------------------------*/ + + /** + * Creates a style sheet with the given CSS text and adds it to the document. + * @private + * @param {Document} ownerDocument The document. + * @param {String} cssText The CSS text. + * @returns {StyleSheet} The style element. + */ + function addStyleSheet(ownerDocument, cssText) { + var p = ownerDocument.createElement('p'), + parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; + + p.innerHTML = 'x'; + return parent.insertBefore(p.lastChild, parent.firstChild); + } + + /** + * Returns the value of `html5.elements` as an array. + * @private + * @returns {Array} An array of shived element node names. + */ + function getElements() { + var elements = html5.elements; + return typeof elements == 'string' ? elements.split(' ') : elements; + } + + /** + * Extends the built-in list of html5 elements + * @memberOf html5 + * @param {String|Array} newElements whitespace separated list or array of new element names to shiv + * @param {Document} ownerDocument The context document. + */ + function addElements(newElements, ownerDocument) { + var elements = html5.elements; + if(typeof elements != 'string'){ + elements = elements.join(' '); + } + if(typeof newElements != 'string'){ + newElements = newElements.join(' '); + } + html5.elements = elements +' '+ newElements; + shivDocument(ownerDocument); + } + + /** + * Returns the data associated to the given document + * @private + * @param {Document} ownerDocument The document. + * @returns {Object} An object of data. + */ + function getExpandoData(ownerDocument) { + var data = expandoData[ownerDocument[expando]]; + if (!data) { + data = {}; + expanID++; + ownerDocument[expando] = expanID; + expandoData[expanID] = data; + } + return data; + } + + /** + * returns a shived element for the given nodeName and document + * @memberOf html5 + * @param {String} nodeName name of the element + * @param {Document|DocumentFragment} ownerDocument The context document. + * @returns {Object} The shived element. + */ + function createElement(nodeName, ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createElement(nodeName); + } + if (!data) { + data = getExpandoData(ownerDocument); + } + var node; + + if (data.cache[nodeName]) { + node = data.cache[nodeName].cloneNode(); + } else if (saveClones.test(nodeName)) { + node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); + } else { + node = data.createElem(nodeName); + } + + // Avoid adding some elements to fragments in IE < 9 because + // * Attributes like `name` or `type` cannot be set/changed once an element + // is inserted into a document/fragment + // * Link elements with `src` attributes that are inaccessible, as with + // a 403 response, will cause the tab/window to crash + // * Script elements appended to fragments will execute when their `src` + // or `text` property is set + return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; + } + + /** + * returns a shived DocumentFragment for the given document + * @memberOf html5 + * @param {Document} ownerDocument The context document. + * @returns {Object} The shived DocumentFragment. + */ + function createDocumentFragment(ownerDocument, data){ + if (!ownerDocument) { + ownerDocument = document; + } + if(supportsUnknownElements){ + return ownerDocument.createDocumentFragment(); + } + data = data || getExpandoData(ownerDocument); + var clone = data.frag.cloneNode(), + i = 0, + elems = getElements(), + l = elems.length; + for(;i+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0ul.level3").hide(); + $("#level2>li").hide(); + return true; + }; + +bgsMain.setupEvents=function(){ + // RESIZE + $(window).on("resize",bgsMain.resize); + // MENU level 1 : over + $("header").on("mouseenter","article.nav>p>a",bgsMain.menu1over); + // MENU level 2 : over + $("#level2").on("mouseenter","li>ul>li",bgsMain.menu2over); + // MENU close + $("nav").on("mouseleave",bgsMain.navout); + // MENUBARS (hamburger) click + $("header").on("click","img.menubars",bgsMain.menubarsClick); + // MOBILE MENU click + $("#mobileMenu").on("click","li",bgsMain.mobileMenuClick); + return true; + }; + +bgsMain.resize=function(evt){ + bgsMain.resizePage(); + return true; + }; + +bgsMain.menu1over=function(evt){ + var a=$(evt.target).closest("a"); + bgsMain.showNav2(a); + return true; + }; + +bgsMain.menu2over=function(evt){ + var li=$(evt.target).closest("li"); + bgsMain.showNav3(li); + return true; + }; + +bgsMain.navout=function(evt){ + // add slight delay for mouse transition + if(bgsMain.timerId !== -1){ + window.clearTimeout(bgsMain.timerId); + bgsMain.timerId=-1; + }; + bgsMain.timerId=window.setTimeout(bgsMain.hideNav,bgsMain.timerMs); + return true; + }; + +bgsMain.menubarsClick=function(evt){ + var img=$(evt.target); + $("nav").hide(); + if(img.hasClass("open")){ + // close menus + img.attr("src","//resources.bgs.ac.uk/webapps/resources/images/menu-bars.svg").removeClass("open"); + $("header>section.topnav").show(); + $("header>section.breadcrumbs").show(); + $("main").show(); + $("footer").show(); + $("#mobileMenu").hide(); + } + else{ + // open menus + img.attr("src","//resources.bgs.ac.uk/webapps/resources/images/menu-close.svg").addClass("open"); + $("header>section.topnav").hide(); + $("header>section.breadcrumbs").hide(); + $("main").hide(); + $("footer").hide(); + $("#mobileMenu").show(); + }; + return true; + }; + +bgsMain.mobileMenuClick=function(evt){ + var li=$(evt.target).closest("li"); + var ul=li.closest("ul"); + evt.stopPropagation(); + // top + if(li.hasClass("mm_lvl_1")){ + if(li.hasClass("open")){ + li.removeClass("open"); + $("#mobileMenu>ul>li").show(); + } + else{ + $("#mobileMenu ul.mm_lvl_1>li").removeClass("open"); + $("#mobileMenu>ul>li").hide(); + li.addClass("open").show(); + }; + } + else{ + // middle + if(li.hasClass("mm_lvl_2") && li.hasClass("expands")){ + if(li.hasClass("open")){ + $("#mobileMenu ul.mm_lvl_2 li").show(); + $("#mobileMenu>ul>li>strong").show(); + $("#mobileMenu>ul>li>em").show(); + li.removeClass("open"); + } + else{ + $("#mobileMenu ul.mm_lvl_2>li").hide(); + $("#mobileMenu>ul>li>strong").hide(); + $("#mobileMenu>ul>li>em").hide(); + li.addClass("open").show(); + }; + }; + }; + return true; + }; + +// =============== + +bgsMain.setupMobileMenu=function(){ + var topLevels=["About","Research","Data","DiscoGeo"]; + var i=0; + var p1={}; + var a1={}; + var li2s={}; + var xhtml=""; + console.log("bgsMain.setupMobileMenu"); + + xhtml=xhtml + "
    "; + for(i=0;i < topLevels.length;i++){ + p1=$("header>section.logonav>article.nav>p." + topLevels[i]); + a1=p1.children("a"); + li2s=$("#ul" + topLevels[i] + ">ul>li"); + + xhtml=xhtml + "
  • "; + + xhtml=xhtml + "" + a1.text() + "  "; + + xhtml=xhtml + "
      "; + li2s.each(function(){ + var a2=$(this).children("a"); + var em2=$(this).children("em"); + var ul3id=""; + var li3s={}; + var j=0; + if($(this).children("em").length === 1){ + ul3id="ul" + topLevels[i] + "_" + a2.attr("href").split("/").reverse()[1]; + li3s=$("#" + ul3id + ">li"); + xhtml=xhtml + "
    • "; + xhtml=xhtml + "" + a2.text() + "  "; + xhtml=xhtml + "
        "; + li3s.each(function(){ + var a3=$(this).children("a"); + xhtml=xhtml + "
      • " + a3.text() + "
      • "; + }); + xhtml=xhtml + "
      "; + xhtml=xhtml + "
    • "; + } + else{ + xhtml=xhtml + "
    • " + a2.text() + "
    • "; + } + + }); + xhtml=xhtml + "
    "; + + xhtml=xhtml + "
  • "; + }; + + xhtml=xhtml + "
"; + + $("#mobileMenu").html(xhtml).hide(); + return true; + }; + +// =================================================== + +bgsMain.resizePage=function(){ + var img=$("header section.logonav article.nav img.menubars"); + var w=$(window).width(); + var bodyClass="width1"; + var currClass=$("body").attr("class"); + if(w > 576){ + bodyClass="width2"; + if(w > 768){ + bodyClass="width3"; + if(w > 992){ + bodyClass="width4"; + if(w > 1200){ + bodyClass="width5"; + }; + }; + }; + }; + if(bodyClass !== currClass){ + $("body").attr("class",bodyClass); + // close mobileMenu if open + if(img.hasClass("open")){img.click();}; + }; + return true; + }; + + +bgsMain.setupNav=function(){ + var li2=$("#level2"); + var li3s=li2.children("li"); + li3s.each(function(){ + var li3=$(this); + var li3Ht=(li3.find("ul>li").length * 40) - 10; + $("nav>ul[rel='" + li3.attr("id") + "']").css("height",li3Ht + "px"); + }); + return true; + }; + +bgsMain.hideNav=function(){ + $("header>section.logonav>article.nav>p>a").removeClass("open"); + $("nav>ul>li>ul>li").removeClass("open"); + $("nav>ul.level3").hide(); + $("nav").hide(); + return true; + }; + +bgsMain.showNav2=function(a){ + $("nav").css("opacity","1.0"); + var code=a.attr("href").substring(1); + // cancel hide timer + if(bgsMain.timerId !== -1){ + window.clearTimeout(bgsMain.timerId); + bgsMain.timerId=-1; + }; + $("nav>ul.level3").hide(); + $("header>section.logonav>article.nav>p>a").removeClass("open"); + a.addClass("open"); + $("#level2>li").hide(); + $("#ul" + code).show(); + if($("nav").is(":visible")){$("nav").show();} + else{$("nav").slideDown();}; + bgsMain.startLongTimer(); + return true; + }; + +bgsMain.showNav3=function(li){ + $("nav").css("opacity","1.0"); + var a=li.children("a"); + var urlArr=a.attr("href").split("/"); + var parentLi=li.closest("ul").closest("li"); + var childCode=parentLi.attr("id") + "_" + urlArr[urlArr.length - 2]; + var childUl=$("#" + childCode); + $("nav>ul>li>ul>li").removeClass("open"); + li.addClass("open"); + $("nav>ul.level3").hide(); + $("nav>ul.level3>li.empty").show(); + if(childUl.length > 0){childUl.show();}; + bgsMain.startLongTimer(); + return true; + }; + +bgsMain.setCopyrightYear=function(){ + var cyYear=new Date().getFullYear(); + var cyText=document.createTextNode(cyYear.toString()); + var cyElem=document.getElementById("copyrightYear"); + cyElem.removeChild(cyElem.firstChild); + cyElem.appendChild(cyText); + return true; + }; + +bgsMain.startLongTimer=function(){ + // add long delay to clear meneus after inactivity + console.log("startLongTimer"); + if(bgsMain.longTimerId !== -1){ + window.clearTimeout(bgsMain.longTimerId); + bgsMain.longTimerId=-1; + }; + bgsMain.longTimerId=window.setTimeout(bgsMain.hideNav,bgsMain.longTimerMs); + return true; + }; + +// =================================================== + +window.onload=function(){ + bgsMain.init(); + }; \ No newline at end of file diff --git a/app/templates/_base.html b/app/templates/_base.html index 794893b3..3a678f14 100644 --- a/app/templates/_base.html +++ b/app/templates/_base.html @@ -2,32 +2,340 @@ pyagsapi - - + + + + + + + + + + + + + + -
-
- -
- -
- API -
- -
- Contact -
-
+
+
mobileMenu
+
+ +
+
+ + +

+
+ + +
+
@@ -38,17 +346,43 @@
-
-
+ {% block extrafoot %} {% endblock %} diff --git a/app/templates/landing_page.html b/app/templates/landing_page.html index 2c9cac14..65210ee8 100644 --- a/app/templates/landing_page.html +++ b/app/templates/landing_page.html @@ -6,14 +6,23 @@

AGS File Utilities Tool and API


-

This tool and asscoated API allow schema validation, data validation and conversion of your AGS files.

+

This tool and associated API allow schema validation, data validation and conversion of your AGS files.

+

Tools

+
+
+

AGS Schema Validator

@@ -28,7 +37,7 @@

Validation is against the official AGS schema standard only. This is not a d

Select .ags file(s) for validation (v4.x only).


-

Select reponse format:

+

Select response format:

@@ -37,18 +46,21 @@

Validation is against the official AGS schema standard only. This is not a d

+
+

-

AGS Data Validator

+

AGS Data Validator (IN DEVELOPMENT)

Select .ags file(s) for data validation against the National Geoscience Data Repository requirements

+

-

Select reponse format:

- - - +

Select response format:

+ + +

@@ -68,21 +80,25 @@

Validation rules

  • local coordinates should not be duplicated in the OSGB columns as this would indicate they have not been converted
  • +
    +

    AGS Converter

    Convert .ags file(s) to/from .xlsx. Which ever format file is submitted, the opposite will be returned e.g. if 5 .ags files and 3 .xlsx files were submitted the result would be 5 .xlsx files and 3 .ags files

    -
    +
    +
    +

    API Definition

    - Documentation + Documentation (Swagger UI)

    OpenAPI Document