From edadfb11f749e7f3df0a2377d85a7e65121f57d8 Mon Sep 17 00:00:00 2001 From: koalageo Date: Fri, 27 Aug 2021 22:59:36 +0100 Subject: [PATCH] update styling --- app/static/css/content.css | 235 ++++++++ app/static/css/jQuerySlideshow.css | 14 + app/static/css/jQueryTabbedPanels.css | 132 +++++ app/static/css/main.css | 530 ++++++++++++++++++ app/static/images/BGS-Logo-Pos-RGB.svg | 186 ++++++ app/static/images/arrow.svg | 19 + .../cropped-BGS-favicon-logo-180x180.png | Bin 0 -> 9124 bytes .../logos/cropped-BGS-favicon-logo-32x32.png | Bin 0 -> 996 bytes .../logos/cropped-BGS-home-screen-150x150.png | Bin 0 -> 10558 bytes app/static/images/logos/nerc_ukri_logo.svg | 105 ++++ app/static/images/menu-bars.svg | 19 + app/static/images/menu-close.svg | 18 + app/static/images/search.svg | 15 + .../images/social/social-facebook-blue.svg | 14 + .../images/social/social-facebook-white.svg | 14 + app/static/images/social/social-in-blue.svg | 16 + app/static/images/social/social-in-white.svg | 16 + .../images/social/social-twitter-blue.svg | 14 + .../images/social/social-twitter-white.svg | 14 + .../images/social/social-video-blue.svg | 14 + .../images/social/social-video-white.svg | 14 + app/static/js/html5shiv-printshiv.js | 524 +++++++++++++++++ app/static/js/html5shiv.js | 326 +++++++++++ app/static/js/jquery.min.js | 1 + app/static/js/main.js | 295 ++++++++++ app/templates/_base.html | 396 ++++++++++++- app/templates/landing_page.html | 34 +- 27 files changed, 2925 insertions(+), 40 deletions(-) create mode 100644 app/static/css/content.css create mode 100644 app/static/css/jQuerySlideshow.css create mode 100644 app/static/css/jQueryTabbedPanels.css create mode 100644 app/static/css/main.css create mode 100644 app/static/images/BGS-Logo-Pos-RGB.svg create mode 100644 app/static/images/arrow.svg create mode 100644 app/static/images/logos/cropped-BGS-favicon-logo-180x180.png create mode 100644 app/static/images/logos/cropped-BGS-favicon-logo-32x32.png create mode 100644 app/static/images/logos/cropped-BGS-home-screen-150x150.png create mode 100644 app/static/images/logos/nerc_ukri_logo.svg create mode 100644 app/static/images/menu-bars.svg create mode 100644 app/static/images/menu-close.svg create mode 100644 app/static/images/search.svg create mode 100644 app/static/images/social/social-facebook-blue.svg create mode 100644 app/static/images/social/social-facebook-white.svg create mode 100644 app/static/images/social/social-in-blue.svg create mode 100644 app/static/images/social/social-in-white.svg create mode 100644 app/static/images/social/social-twitter-blue.svg create mode 100644 app/static/images/social/social-twitter-white.svg create mode 100644 app/static/images/social/social-video-blue.svg create mode 100644 app/static/images/social/social-video-white.svg create mode 100644 app/static/js/html5shiv-printshiv.js create mode 100644 app/static/js/html5shiv.js create mode 100644 app/static/js/jquery.min.js create mode 100644 app/static/js/main.js 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 0000000000000000000000000000000000000000..f753bbc773cf2606680d594da2d3e11c36602987 GIT binary patch literal 9124 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 GefmEFFOD<- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b64394bc2aecd4614e9bee5745199c292219a8d GIT binary patch literal 996 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0V2lj#32}8V@L|w(7)4YM0TVx` zdSF-=l?3?(Gh~znc{$BzvihrGqxD-%g5&!|mc0TN>zjoRyO~T@@Zef~eBs)YueY9_ z7}6@Ea(jDG!q>3&r!EFMJAd-6yu37xN2IQz#7OF9oZrT|O3Ocgw0qv4lNWLK;o|_g z&HK;m`Iz0WDOh~8>S}is+w{(<4l%uI3QreE0;BkZr;B5Vgk;o#oGoEOwd~3P=W~a}rHyUXh-6ijz+ot$2RxSA9I={%!=rq4Y zDUtV&uikJ@?V{?(!x4`!Z!|u>CVE=x(=PSW`akXB|2<-SmfkB?J-+7Y_u0Si^)|;W z_7jcWwVtccY~oqIzJ<%w8S*y_|B~MT*OO;RofU zb9~v-A0%d_RWS4~%seLbVWw2lx;ORJQhyB+=V@RR9Rq(4RSHp`qo{>J*^zopr0M$EKHvj+t literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0a1580cfc25a3d2094fbd3c3071eba929282ffa4 GIT binary patch literal 10558 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 literal 0 HcmV?d00001 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