Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
EBI-Framework
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Operate
Environments
Analyze
Contributor analytics
CI/CD analytics
Repository analytics
Insights
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ebiwd
EBI-Framework
Commits
e7a786a1
Commit
e7a786a1
authored
6 years ago
by
khawkins98
Browse files
Options
Downloads
Patches
Plain Diff
Update compiled
parent
3d595f9e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
js/script.js
+1
-1
1 addition, 1 deletion
js/script.js
js/script.min.js
+1
-1
1 addition, 1 deletion
js/script.min.js
with
2 additions
and
2 deletions
js/script.js
+
1
−
1
View file @
e7a786a1
...
...
@@ -571,7 +571,7 @@ function ebiInjectAnnouncements(message) {
// banner.id = "";
banner
.
className
=
"
notifications-js row margin-top-medium
"
;
wrapper
.
className
=
"
row
callout
"
+
(
message
.
priority
||
""
);
wrapper
.
className
=
"
callout
"
+
(
message
.
priority
||
""
);
wrapper
.
innerHTML
=
"
<h3>
"
+
message
.
headline
+
"
</h3>
"
+
message
.
message
+
// "<div id='cookie-dismiss'><button class='close-button' style='top: 0.3rem; color:#fff;' aria-label='Close alert' type='button'><span aria-hidden='true'>×</span></button></div>" +
...
...
This diff is collapsed.
Click to expand it.
js/script.min.js
+
1
−
1
View file @
e7a786a1
function
ebiGetParameterByName
(
name
,
url
){
url
||
(
url
=
window
.
location
.
href
),
name
=
name
.
replace
(
/
[\[\]]
/g
,
"
\\
$&
"
);
var
results
=
new
RegExp
(
"
[?&]
"
+
name
+
"
(=([^&#]*)|&|#|$)
"
).
exec
(
url
);
return
results
?
results
[
2
]?
decodeURIComponent
(
results
[
2
].
replace
(
/
\+
/g
,
"
"
)):
""
:
null
}
function
ebiHasClass
(
element
,
cls
){
return
(
"
"
+
element
.
className
+
"
"
).
indexOf
(
"
"
+
cls
+
"
"
)
>-
1
}
function
ebiFrameworkExternalLinks
(){
try
{
var
i
,
icon
,
alist
=
document
.
getElementsByTagName
(
"
a
"
),
fileTypes
=
[
"
pdf
"
,
"
doc
"
,
"
txt
"
];
for
(
i
=
0
;
i
<
alist
.
length
;
i
++
)
for
(
var
type
in
fileTypes
)
-
1
===
alist
[
i
].
innerHTML
.
indexOf
(
'
<span class="link-
'
+
fileTypes
[
type
]
+
'
"></span>
'
)
&&-
1
===
alist
[
i
].
innerHTML
.
indexOf
(
"
<img
"
)
&&
function
(
url
,
type
){
return
-
1
!==
url
.
indexOf
(
type
,
url
.
length
-
type
.
length
)}(
alist
[
i
].
href
,
fileTypes
[
type
])
&&
function
(
url
){
return
-
1
===
url
.
indexOf
(
"
//
"
)
||-
1
!==
url
.
indexOf
(
"
//www.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//wwwdev.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//srs.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//ftp.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//intranet.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//pdbe.org
"
)
||-
1
!==
url
.
indexOf
(
"
//
"
+
document
.
domain
)}(
alist
[
i
].
href
)
&&
((
icon
=
document
.
createElement
(
"
span
"
)).
className
=
"
link-
"
+
fileTypes
[
type
],
alist
[
i
].
appendChild
(
icon
))}
catch
(
err
){}}
function
ebiFrameworkManageGlobalSearch
(){
try
{
var
hasLocalSearch
=
null
!==
document
.
getElementById
(
"
local-search
"
),
hasLocalEBISearch
=
null
!==
document
.
getElementById
(
"
ebi_search
"
);
if
(
hasLocalSearch
||
hasLocalEBISearch
)
document
.
body
.
className
+=
"
no-global-search
"
;
else
try
{
null
!==
(
elem
=
document
.
getElementById
(
"
search-bar
"
))
&&
document
.
getElementById
(
"
search-bar
"
).
remove
();
var
dropdownDiv
=
document
.
createElement
(
"
div
"
);
dropdownDiv
.
innerHTML
=
'
<nav id="search-bar" class="search-bar global-masthead-interactive-banner"><div class="row padding-bottom-medium"><div class="columns padding-top-medium"><button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button></div></div><div class="row"><form id="global-search" name="global-search" action="/ebisearch/search.ebi" method="GET" class=""><fieldset><div class="input-group"><input type="text" name="query" id="global-searchbox" class="input-group-field" placeholder="Search all of EMBL-EBI"><div class="input-group-button"><input type="submit" name="submit" value="Search" class="button"><input type="hidden" name="db" value="allebi" checked="checked"><input type="hidden" name="requestFrom" value="masthead-black-bar" checked="checked"></div></div></fieldset></form></div></nav>
'
,
document
.
getElementById
(
"
masthead-black-bar
"
).
insertBefore
(
dropdownDiv
,
document
.
getElementById
(
"
masthead-black-bar
"
).
firstChild
);
var
searchBar
=
document
.
querySelectorAll
(
"
.search-bar
"
)[
0
],
searchBarButton
=
document
.
querySelectorAll
(
"
.search-toggle
"
)[
0
],
blackBar
=
document
.
querySelectorAll
(
"
.masthead-black-bar
"
)[
0
];
searchBarButton
.
addEventListener
(
"
mouseenter
"
,
function
(
event
){
0
==
ebiHasClass
(
document
.
querySelectorAll
(
"
.search-bar
"
)[
0
],
"
active
"
)
&&
(
blackBar
.
className
+=
"
peek
"
)},
!
1
),
searchBarButton
.
addEventListener
(
"
mouseleave
"
,
function
(
event
){
0
==
ebiHasClass
(
document
.
querySelectorAll
(
"
.search-bar
"
)[
0
],
"
active
"
)
&&
blackBar
.
classList
.
remove
(
"
peek
"
)},
!
1
);
document
.
querySelectorAll
(
"
.search-toggle
"
)[
0
].
addEventListener
(
"
click
"
,
function
(
event
){
ebiToggleClass
(
searchBar
,
"
active
"
),
ebiToggleClass
(
searchBarButton
,
"
active
"
),
window
.
scrollTo
(
0
,
0
)},
!
1
),
document
.
querySelectorAll
(
"
.search-bar .close-button
"
)[
0
].
addEventListener
(
"
click
"
,
function
(
event
){
ebiToggleClass
(
searchBar
,
"
active
"
),
ebiToggleClass
(
searchBarButton
,
"
active
"
),
window
.
scrollTo
(
0
,
0
)},
!
1
)}
catch
(
err
){
setTimeout
(
init
,
500
)}}
catch
(
err
){}}
function
ebiFrameworkSearchNullError
(){
try
{
var
disabled
=-
1
!==
document
.
body
.
className
.
indexOf
(
"
no-search-error
"
),
searchBoxes
=
[{
inputNode
:
document
.
getElementById
(
"
global-searchbox
"
)},{
inputNode
:
document
.
getElementById
(
"
local-searchbox
"
)},{
inputNode
:
-
1
!==
document
.
body
.
className
.
indexOf
(
"
front
"
)?
document
.
getElementById
(
"
query
"
):
null
},{
inputNode
:
document
.
getElementById
(
"
people-groups
"
)?
document
.
getElementById
(
"
people-groups
"
).
getElementsByTagName
(
"
input
"
)[
0
]:
null
}];
if
(
!
disabled
)
for
(
searchBox
in
searchBoxes
){
var
searchInput
=
searchBoxes
[
searchBox
].
inputNode
,
searchForm
=
searchInput
?
searchInput
.
form
:
null
,
searchInputDefault
=
searchBoxes
[
searchBox
].
defaultText
||
""
,
searchError
=
searchBoxes
[
searchBox
].
errorText
||
"
Please enter a search term
"
,
isEbiSearch
=-
1
!==
(
searchForm
?
searchForm
.
action
:
""
).
indexOf
(
"
/ebisearch/
"
);
searchForm
&&
searchInput
&&
isEbiSearch
&&
(
searchForm
.
searchInput
=
searchInput
,
searchForm
.
searchInputDefault
=
searchInputDefault
,
searchForm
.
searchError
=
searchError
,
searchForm
.
onsubmit
=
function
(){
if
(
searchInput
=
this
.
searchInput
,
searchInputDefault
=
this
.
searchInputDefault
,
searchError
=
this
.
searchError
,
searchInput
.
value
=
searchInput
.
value
.
trim
(),
searchInput
.
value
===
searchInputDefault
||
""
===
searchInput
.
value
)
return
alert
(
searchError
),
!
1
})}}
catch
(
err
){}}
function
isIE
(){
var
myNav
=
navigator
.
userAgent
.
toLowerCase
();
return
-
1
!=
myNav
.
indexOf
(
"
msie
"
)
&&
parseInt
(
myNav
.
split
(
"
msie
"
)[
1
])}
function
ebiToggleClass
(
element
,
toggleClass
){
var
newClass
,
currentClass
=
element
.
className
;
newClass
=
currentClass
.
split
(
"
"
).
indexOf
(
toggleClass
)
>-
1
?
currentClass
.
replace
(
new
RegExp
(
"
\\
b
"
+
toggleClass
+
"
\\
b
"
,
"
g
"
),
""
):
currentClass
+
"
"
+
toggleClass
,
element
.
className
=
newClass
.
trim
()}
function
ebiActivateClass
(
element
,
cssClass
){
element
.
classList
.
remove
(
cssClass
),
element
.
classList
.
add
(
cssClass
)}
function
ebiRemoveClass
(
element
,
cssClass
){
element
.
classList
.
remove
(
cssClass
)}
function
ebiFrameworkHideGlobalNav
(){
try
{
var
elem
,
hasGlobalMasthead
=
null
!==
document
.
getElementById
(
"
masthead-black-bar
"
),
disabled
=-
1
!==
document
.
body
.
className
.
indexOf
(
"
no-global-nav
"
);
hasGlobalMasthead
&&
disabled
&&
(
null
!==
(
elem
=
document
.
getElementById
(
"
global-nav
"
))
&&
elem
.
parentNode
.
removeChild
(
elem
),
null
!==
(
elem
=
document
.
getElementById
(
"
global-nav-expanded
"
))
&&
elem
.
parentNode
.
removeChild
(
elem
))}
catch
(
err
){}}
function
ebiFrameworkAssignImageByMetaTags
(){
var
masthead
=
document
.
getElementById
(
"
masthead
"
),
mastheadColor
=
document
.
querySelector
(
"
meta[name='ebi:masthead-color']
"
)
||
document
.
querySelector
(
"
meta[name='ebi-masthead-color']
"
),
mastheadImage
=
document
.
querySelector
(
"
meta[name='ebi:masthead-image']
"
)
||
document
.
querySelector
(
"
meta[name='ebi-masthead-image']
"
);
null
!=
mastheadColor
&&
(
masthead
.
style
.
backgroundColor
=
mastheadColor
.
getAttribute
(
"
content
"
),
masthead
.
className
+=
"
meta-background-color
"
),
null
!=
mastheadImage
&&
(
masthead
.
style
.
backgroundImage
=
"
url(
"
+
mastheadImage
.
getAttribute
(
"
content
"
)
+
"
)
"
,
masthead
.
className
+=
"
meta-background-image
"
)}
function
ebiFrameworkPopulateBlackBar
(){
try
{
null
!==
(
elem
=
document
.
getElementById
(
"
masthead-black-bar
"
))
&&
(
document
.
getElementById
(
"
masthead-black-bar
"
).
innerHTML
=
""
);
var
barContents
=
document
.
createElement
(
"
div
"
);
barContents
.
innerHTML
=
'
<nav class="row"><ul id="global-nav" class="menu global-nav text-right"><li class="home-mobile"><a href="https://www.ebi.ac.uk"></a></li><li class="where embl hide"><a href="http://www.embl.org">EMBL</a></li><li class="where barcelona hide"><a href="#">Barcelona</a></li><li class="where hamburg hide"><a href="#">Hamburg</a></li><li class="where grenoble hide"><a href="#">Heidelberg</a></li><li class="where grenoble hide"><a href="#">Grenoble</a></li><li class="where rome hide"><a href="#">Rome</a></li><li id="embl-selector" class="float-right show-for-medium embl-selector embl-ebi"><button class="button float-right"> </button></li><li class="float-right search"><a href="#" class="inline-block collpased float-left search-toggle"><span class="show-for-small-only">Search</span></a></li><li class="what about"><a href="https://www.ebi.ac.uk/about">About us</a></li><li class="what training"><a href="https://www.ebi.ac.uk/training">Training</a></li><li class="what research"><a href="https://www.ebi.ac.uk/research">Research</a></li><li class="what services"><a href="https://www.ebi.ac.uk/services">Services</a></li><li class="where ebi"><a href="https://www.ebi.ac.uk">EMBL-EBI</a></li></ul></nav>
'
,
document
.
getElementById
(
"
masthead-black-bar
"
).
insertBefore
(
barContents
,
document
.
getElementById
(
"
masthead-black-bar
"
).
firstChild
),
document
.
body
.
className
+=
"
ebi-black-bar-loaded
"
}
catch
(
err
){}}
function
ebiGetFacet
(
passedAttribute
){
var
tag
=
"
#masthead-black-bar .
"
+
passedAttribute
.
toLowerCase
();
return
document
.
querySelectorAll
(
tag
)[
0
]}
function
ebiFrameworkActivateBlackBar
(){
try
{
for
(
var
metas
=
document
.
getElementsByTagName
(
"
meta
"
),
i
=
0
;
i
<
metas
.
length
;
i
++
)
if
(
"
embl:active
"
==
metas
[
i
].
getAttribute
(
"
name
"
)
&&
(
ebiRemoveClass
(
targetFacet
=
ebiGetFacet
(
metas
[
i
].
getAttribute
(
"
content
"
).
replace
(
"
:
"
,
"
.
"
)),
"
hide
"
),
ebiActivateClass
(
targetFacet
,
"
active
"
)),
"
embl:parent-1
"
==
metas
[
i
].
getAttribute
(
"
name
"
)
&&
(
ebiRemoveClass
(
targetFacet
=
ebiGetFacet
(
metas
[
i
].
getAttribute
(
"
content
"
).
replace
(
"
:
"
,
"
.
"
)),
"
hide
"
),
ebiActivateClass
(
targetFacet
,
"
active
"
)),
"
embl:parent-2
"
==
metas
[
i
].
getAttribute
(
"
name
"
)){
var
targetFacet
=
ebiGetFacet
(
metas
[
i
].
getAttribute
(
"
content
"
).
replace
(
"
:
"
,
"
.
"
));
ebiRemoveClass
(
targetFacet
,
"
hide
"
),
ebiActivateClass
(
targetFacet
,
"
active
"
)}
var
mouseoutTimer
;
blackBar
.
addEventListener
(
"
mouseenter
"
,
function
(){
window
.
clearTimeout
(
mouseoutTimer
)},
!
1
),
blackBar
.
addEventListener
(
"
mouseleave
"
,
function
(){
mouseoutTimer
=
window
.
setTimeout
(
function
(){
resetBlackBar
()},
500
)});
function
resetBlackBar
(){
ebiFrameworkActivateBlackBar
()}}
catch
(
err
){}}
function
ebiFrameworkInsertEMBLdropdown
(){
try
{
null
!==
(
elem
=
document
.
getElementById
(
"
embl-bar
"
))
&&
document
.
getElementById
(
"
embl-bar
"
).
remove
();
var
dropdownDiv
=
document
.
createElement
(
"
div
"
);
dropdownDiv
.
innerHTML
=
'
<nav id="embl-bar" class="embl-bar global-masthead-interactive-banner"><div class="row padding-bottom-medium"><div class="columns padding-top-medium"><button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button></div><div class="columns medium-7"><div class="large-10 medium-12"><div class="margin-bottom-large padding-top-xsmall margin-top-large"><h3 class="no-underline inline" style="line-height: 1rem;"><a href="//embl.org">EMBL</a></h3> was set up in 1974 as Europe’s flagship laboratory for the life sciences – an intergovernmental organisation with more than 80 independent research groups covering the spectrum of molecular biology:</div></div><div class="row large-up-3 medium-up-3 small-up-2 no-underline medium-11"><div class="column padding-bottom-medium"><a class="" href="https://www.embl.de/research/index.php"><h5 class="inline underline">Research:</h5> perform basic research in molecular biology</a></div><div class="column padding-bottom-medium"><a class="" href="https://www.embl.de/services/index.html"><h5 class="inline underline">Services:</h5> offer vital services to scientists in the member states</a></div><div class="column padding-bottom-medium"><a class="" href="https://www.embl.de/training/index.php"><h5 class="inline underline">Training</h5> scientists, students and visitors at all levels</a></div><div class="column padding-bottom-medium"><a class="" href="https://www.embl.de/research/tech_transfer/index.html"><h5 class="inline underline">Transfer</h5> and development of technology</a></div><div class="column padding-bottom-medium"><h5 class="inline underline">Develop</h5> new instruments and methods</div><div class="column padding-bottom-medium"><h5 class="inline underline">Integrating</h5> life science research in Europe</div></div><div class="margin-top-xlarge no-underline"><h3><a href="//embl.org" class="readmore">More about EMBL</a></h3></div></div><div class="columns medium-5"><div class="large-10 medium-12"><h3 class="inline">Six sites</h3><p>represent EMBL in Europe.</p></div><div class="row medium-up-2 small-up-2"><div class="column"><h5 class="inline"><a href="//www.embl-barcelona.es/">Barcelona</a></h5><p class="">Tissue biology and disease modelling</p></div><div class="column"><h5 class="inline"><a href="//www.embl.fr/">Grenoble</a></h5><p class="">Structural biology</p></div><div class="column"><h5 class="inline"><a href="//www.embl-hamburg.de/">Hamburg</a></h5><p class="">Structural biology</p></div><div class="column"><h5 class="inline"><a href="//www.embl.de/">Heidelberg</a></h5><p class="">Main laboratory</p></div><div class="column"><h5 class="inline"><a href="https://www.ebi.ac.uk/">Hinxton</a></h5><p class="margin-bottom-none">EMBL-EBI: European Bioinformatics Institute</p></div><div class="column"><h5 class="inline"><a href="//www.embl.it/">Rome</a></h5><p class="">Epigenetics and neurobiology</p></div></div></div></div></nav>
'
,
document
.
getElementById
(
"
masthead-black-bar
"
).
insertBefore
(
dropdownDiv
,
document
.
getElementById
(
"
masthead-black-bar
"
).
firstChild
);
var
emblBar
=
document
.
querySelectorAll
(
"
.embl-bar
"
)[
0
],
emblBarButton
=
document
.
querySelectorAll
(
"
.embl-selector
"
)[
0
],
blackBar
=
document
.
querySelectorAll
(
"
.masthead-black-bar
"
)[
0
];
emblBarButton
.
addEventListener
(
"
mouseenter
"
,
function
(
event
){
0
==
ebiHasClass
(
document
.
querySelectorAll
(
"
.embl-bar
"
)[
0
],
"
active
"
)
&&
(
blackBar
.
className
+=
"
peek
"
)},
!
1
),
emblBarButton
.
addEventListener
(
"
mouseleave
"
,
function
(
event
){
0
==
ebiHasClass
(
document
.
querySelectorAll
(
"
.embl-bar
"
)[
0
],
"
active
"
)
&&
blackBar
.
classList
.
remove
(
"
peek
"
)},
!
1
);
document
.
querySelectorAll
(
"
.embl-selector
"
)[
0
].
addEventListener
(
"
click
"
,
function
(
event
){
ebiToggleClass
(
emblBar
,
"
active
"
),
ebiToggleClass
(
emblBarButton
,
"
active
"
),
window
.
scrollTo
(
0
,
0
)},
!
1
),
document
.
querySelectorAll
(
"
.embl-bar .close-button
"
)[
0
].
addEventListener
(
"
click
"
,
function
(
event
){
ebiToggleClass
(
emblBar
,
"
active
"
),
ebiToggleClass
(
emblBarButton
,
"
active
"
),
window
.
scrollTo
(
0
,
0
)},
!
1
)}
catch
(
err
){}}
function
ebiFrameworkUpdateFoot
(){
function
init
(){
try
{
document
.
getElementById
(
"
global-nav-expanded
"
).
innerHTML
=
html
}
catch
(
err
){
setTimeout
(
init
,
500
)}}
var
html
=
'
<div class="columns small-12"><h4 class="inline-block"><a href="https://www.ebi.ac.uk" class="no-underline" title="EMBL-EBI">EMBL-EBI</a></h4><span class="small inline-block padding-left-large"><a class="readmore" href="http://intranet.ebi.ac.uk"><span class="icon icon-functional" data-icon="L"></span> Intranet for staff</a></span></div><div class="medium-up-5 small-up-2"><div class="column"><h5 class="services"><a class="services-color" href="https://www.ebi.ac.uk/services">Services</a></h5><ul> <li class="first"><a href="https://www.ebi.ac.uk/services">By topic</a></li> <li><a href="https://www.ebi.ac.uk/services/all">By name (A-Z)</a></li> <li class="last"><a href="https://www.ebi.ac.uk/support">Help & Support</a></li> </ul></div><div class="column"><h5 class="research"><a class="research-color" href="https://www.ebi.ac.uk/research">Research</a></h5><ul> <li><a href="https://www.ebi.ac.uk/research/publications">Publications</a></li> <li><a href="https://www.ebi.ac.uk/research/groups">Research groups</a></li> <li class="last"><a href="https://www.ebi.ac.uk/research/postdocs">Postdocs</a> & <a href="https://www.ebi.ac.uk/research/eipp">PhDs</a></li> </ul></div><div class="column"> <h5 class="training"><a class="training-color" href="https://www.ebi.ac.uk/training">Training</a></h5><ul> <li><a href="https://www.ebi.ac.uk/training/handson">Train at EBI</a></li> <li><a href="https://www.ebi.ac.uk/training/roadshow">Train outside EBI</a></li> <li><a href="https://www.ebi.ac.uk/training/online">Train online</a></li> <li class="last"><a href="https://www.ebi.ac.uk/training/contact-us">Contact organisers</a></li> </ul></div> <div class="column"> <h5 class="industry"><a class="industry-color" href="https://www.ebi.ac.uk/industry">Industry</a></h5><ul> <li><a href="https://www.ebi.ac.uk/industry/private">Members Area</a></li> <li><a href="https://www.ebi.ac.uk/industry/workshops">Workshops</a></li> <li><a href="https://www.ebi.ac.uk/industry/sme-forum"><abbr title="Small Medium Enterprise">SME</abbr> Forum</a></li> <li class="last"><a href="https://www.ebi.ac.uk/industry/contact">Contact Industry programme</a></li> </ul></div> <div class="column"> <h5 class="about"><a class="ebi-color" href="https://www.ebi.ac.uk/about">About</a></h5><ul> <li><a href="https://www.ebi.ac.uk/about/contact">Contact us</a><li><a href="https://www.ebi.ac.uk/about/events">Events</a></li> <li><a href="https://www.ebi.ac.uk/about/jobs" title="Jobs, postdocs, PhDs...">Jobs</a></li> <li class="first"><a href="https://www.ebi.ac.uk/about/news">News</a></li> <li><a href="https://www.ebi.ac.uk/about/people">People & groups</a></li> </ul></div></div>
'
;
init
()}
function
ebiFrameworkUpdateFooterMeta
(){
function
init
(){
try
{
document
.
getElementById
(
"
ebi-footer-meta
"
).
innerHTML
=
html
}
catch
(
err
){
setTimeout
(
init
,
500
)}}
var
html
=
'
<div class="columns"><p class="address">EMBL-EBI, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD, UK. +44 (0)1223 49 44 44</p> <p class="legal">Copyright © EMBL-EBI
'
+
(
new
Date
).
getFullYear
()
+
'
| EMBL-EBI is <a href="http://www.embl.org/">part of the European Molecular Biology Laboratory</a> | <a href="https://www.ebi.ac.uk/about/terms-of-use">Terms of use</a></p></div>
'
;
init
()}
function
ebiInjectAnnouncements
(
message
){
if
(
void
0
===
message
)
return
!
1
;
if
(
void
0
!==
message
.
processed
)
return
!
0
;
message
.
processed
=!
0
;
var
container
=
document
.
getElementById
(
"
main-content-area
"
)
||
document
.
getElementById
(
"
main-content
"
)
||
document
.
getElementById
(
"
main
"
)
||
document
.
getElementById
(
"
content
"
)
||
document
.
getElementById
(
"
contentsarea
"
);
if
(
null
==
container
)
return
console
.
warn
(
"
A message needs to be shown on this site, but an appropriate container could not be found.
\n
Message follows:
"
,
"
\n
"
+
message
.
headline
,
"
\n
"
+
message
.
message
,
"
\n
Priority:
"
,
message
.
priority
),
!
1
;
var
banner
=
document
.
createElement
(
"
div
"
),
wrapper
=
document
.
createElement
(
"
div
"
);
banner
.
className
=
"
notifications-js row margin-top-medium
"
,
wrapper
.
className
=
"
row callout
"
+
(
message
.
priority
||
""
),
wrapper
.
innerHTML
=
"
<h3>
"
+
message
.
headline
+
"
</h3>
"
+
message
.
message
,
container
.
insertBefore
(
banner
,
container
.
firstChild
),
banner
.
appendChild
(
wrapper
)}
function
ebiFrameworkIncludeAnnouncements
(){
function
detectAnnouncements
(
messages
){
var
currentHost
=
window
.
location
.
hostname
,
currentPath
=
window
.
location
.
pathname
;
if
(
currentHost
=
currentHost
.
replace
(
/wwwdev/g
,
"
www
"
),
ebiInjectAnnouncements
(
messages
[
currentHost
]),
ebiInjectAnnouncements
(
messages
[
currentHost
+
"
/
"
]),
ebiInjectAnnouncements
(
messages
[
currentHost
+
"
/*
"
]),
currentPath
.
length
>
1
){
for
(
var
currentPathArray
=
currentPath
.
split
(
"
/
"
),
pathsToMatch
=
[
currentHost
+
currentPathArray
[
0
]],
i
=
1
;
i
<
currentPathArray
.
length
;
i
++
){
var
tempPath
=
pathsToMatch
[
i
-
1
];
pathsToMatch
.
push
(
tempPath
+
"
/
"
+
currentPathArray
[
i
])}
for
(
i
=
0
;
i
<
pathsToMatch
.
length
;
i
++
)
ebiInjectAnnouncements
(
messages
[
pathsToMatch
[
i
]]),
ebiInjectAnnouncements
(
messages
[
pathsToMatch
[
i
]
+
"
*
"
]),
ebiInjectAnnouncements
(
messages
[
pathsToMatch
[
i
]
+
"
/*
"
])}}
function
loadRemoteAnnouncements
(
file
){
window
.
XMLHttpRequest
&&
(
xmlhttp
=
new
XMLHttpRequest
),
xmlhttp
.
open
(
"
GET
"
,
file
,
!
0
),
xmlhttp
.
onload
=
function
(
e
){
4
===
xmlhttp
.
readyState
&&
(
200
===
xmlhttp
.
status
?(
eval
(
xmlhttp
.
responseText
),
detectAnnouncements
(
m
)):
console
.
error
(
xmlhttp
.
statusText
))},
xmlhttp
.
onerror
=
function
(
e
){
console
.
error
(
xmlhttp
.
statusText
)},
xmlhttp
.
send
(
null
)}
loadRemoteAnnouncements
(
0
===
window
.
location
.
hostname
.
indexOf
(
"
wwwdev.
"
)?
"
https://dev.ebi.emblstatic.net/announcements.js
"
:
"
https://ebi.emblstatic.net/announcements.js
"
)}
function
ebiFrameworkCookieBanner
(){
function
setCookie
(
c_name
,
value
,
exdays
){
var
c_value
,
exdate
=
new
Date
;
exdate
.
setDate
(
exdate
.
getDate
()
+
exdays
),
c_value
=
escape
(
value
)
+
(
null
===
exdays
?
""
:
"
;expires=
"
+
exdate
.
toUTCString
())
+
"
;domain=.ebi.ac.uk;path=/
"
,
document
.
cookie
=
c_name
+
"
=
"
+
c_value
,
c_value
=
escape
(
value
)
+
(
null
===
exdays
?
""
:
"
;expires=
"
+
exdate
.
toUTCString
())
+
"
;domain=
"
+
document
.
domain
+
"
;path=/
"
,
document
.
cookie
=
c_name
+
"
=
"
+
c_value
}
function
getCookie
(
c_name
){
var
i
,
x
,
y
,
ARRcookies
=
document
.
cookie
.
split
(
"
;
"
);
for
(
i
=
0
;
i
<
ARRcookies
.
length
;
i
++
)
if
(
x
=
ARRcookies
[
i
].
substr
(
0
,
ARRcookies
[
i
].
indexOf
(
"
=
"
)),
y
=
ARRcookies
[
i
].
substr
(
ARRcookies
[
i
].
indexOf
(
"
=
"
)
+
1
),(
x
=
x
.
replace
(
/^
\s
+|
\s
+$/g
,
""
))
===
c_name
)
return
unescape
(
y
)}
function
createBanner
(){
var
banner
=
document
.
createElement
(
"
div
"
),
wrapper
=
document
.
createElement
(
"
div
"
);
document
.
createElement
(
"
div
"
);
banner
.
id
=
"
cookie-banner
"
,
banner
.
className
=
"
cookie-banner
"
,
wrapper
.
className
=
"
row
"
,
wrapper
.
innerHTML
=
"
<span class='text'>This website uses cookies. By continuing to browse this site, you are agreeing to the use of our site cookies. To find out more, see our <a href='//www.ebi.ac.uk/about/terms-of-use'>Terms of Use</a>.</span><div id='cookie-dismiss'><button class='close-button' style='top: 0.3rem; color:#fff;' aria-label='Close alert' type='button'><span aria-hidden='true'>×</span></button></div>
"
,
document
.
body
.
appendChild
(
banner
),
banner
.
appendChild
(
wrapper
)}
function
openBanner
(){
var
height
=
document
.
getElementById
(
"
cookie-banner
"
).
offsetHeight
;
document
.
getElementById
(
"
cookie-banner
"
).
style
.
display
=
"
block
"
,
document
.
body
.
style
.
paddingBottom
=
height
+
"
px
"
}
function
closeBanner
(){
document
.
getElementById
(
"
cookie-banner
"
).
offsetHeight
;
document
.
getElementById
(
"
cookie-banner
"
).
style
.
display
=
"
none
"
,
document
.
body
.
style
.
paddingBottom
=
"
0
"
}
function
init
(){
try
{
"
true
"
!==
getCookie
(
"
cookies-accepted
"
)
&&
(
createBanner
(),
openBanner
(),
setCookie
(
"
cookies-accepted
"
,
"
true
"
,
90
),
document
.
getElementById
(
"
cookie-dismiss
"
).
onclick
=
function
(){
return
closeBanner
(),
!
1
})}
catch
(
err
){
setTimeout
(
init
,
100
)}}
init
()}
function
ebiFrameworkInvokeScripts
(){
ebiFrameworkPopulateBlackBar
(),
ebiFrameworkActivateBlackBar
(),
ebiFrameworkExternalLinks
(),
ebiFrameworkManageGlobalSearch
(),
ebiFrameworkSearchNullError
(),
ebiFrameworkHideGlobalNav
(),
ebiFrameworkAssignImageByMetaTags
(),
ebiFrameworkInsertEMBLdropdown
(),
ebiFrameworkUpdateFoot
(),
ebiFrameworkUpdateFooterMeta
(),
ebiFrameworkIncludeAnnouncements
(),
ebiFrameworkCookieBanner
()}
document
.
addEventListener
(
"
DOMContentLoaded
"
,
function
(
event
){
var
bodyData
=
document
.
body
.
dataset
;
isIE
()
&&
isIE
()
<=
10
&&
(
bodyData
=
[]),
"
false
"
!=
bodyData
.
ebiframeworkinvokescripts
&&
ebiFrameworkInvokeScripts
()});
\ No newline at end of file
function
ebiGetParameterByName
(
name
,
url
){
url
||
(
url
=
window
.
location
.
href
),
name
=
name
.
replace
(
/
[\[\]]
/g
,
"
\\
$&
"
);
var
results
=
new
RegExp
(
"
[?&]
"
+
name
+
"
(=([^&#]*)|&|#|$)
"
).
exec
(
url
);
return
results
?
results
[
2
]?
decodeURIComponent
(
results
[
2
].
replace
(
/
\+
/g
,
"
"
)):
""
:
null
}
function
ebiHasClass
(
element
,
cls
){
return
(
"
"
+
element
.
className
+
"
"
).
indexOf
(
"
"
+
cls
+
"
"
)
>-
1
}
function
ebiFrameworkExternalLinks
(){
try
{
var
i
,
icon
,
alist
=
document
.
getElementsByTagName
(
"
a
"
),
fileTypes
=
[
"
pdf
"
,
"
doc
"
,
"
txt
"
];
for
(
i
=
0
;
i
<
alist
.
length
;
i
++
)
for
(
var
type
in
fileTypes
)
-
1
===
alist
[
i
].
innerHTML
.
indexOf
(
'
<span class="link-
'
+
fileTypes
[
type
]
+
'
"></span>
'
)
&&-
1
===
alist
[
i
].
innerHTML
.
indexOf
(
"
<img
"
)
&&
function
(
url
,
type
){
return
-
1
!==
url
.
indexOf
(
type
,
url
.
length
-
type
.
length
)}(
alist
[
i
].
href
,
fileTypes
[
type
])
&&
function
(
url
){
return
-
1
===
url
.
indexOf
(
"
//
"
)
||-
1
!==
url
.
indexOf
(
"
//www.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//wwwdev.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//srs.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//ftp.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//intranet.ebi.ac.uk
"
)
||-
1
!==
url
.
indexOf
(
"
//pdbe.org
"
)
||-
1
!==
url
.
indexOf
(
"
//
"
+
document
.
domain
)}(
alist
[
i
].
href
)
&&
((
icon
=
document
.
createElement
(
"
span
"
)).
className
=
"
link-
"
+
fileTypes
[
type
],
alist
[
i
].
appendChild
(
icon
))}
catch
(
err
){}}
function
ebiFrameworkManageGlobalSearch
(){
try
{
var
hasLocalSearch
=
null
!==
document
.
getElementById
(
"
local-search
"
),
hasLocalEBISearch
=
null
!==
document
.
getElementById
(
"
ebi_search
"
);
if
(
hasLocalSearch
||
hasLocalEBISearch
)
document
.
body
.
className
+=
"
no-global-search
"
;
else
try
{
null
!==
(
elem
=
document
.
getElementById
(
"
search-bar
"
))
&&
document
.
getElementById
(
"
search-bar
"
).
remove
();
var
dropdownDiv
=
document
.
createElement
(
"
div
"
);
dropdownDiv
.
innerHTML
=
'
<nav id="search-bar" class="search-bar global-masthead-interactive-banner"><div class="row padding-bottom-medium"><div class="columns padding-top-medium"><button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button></div></div><div class="row"><form id="global-search" name="global-search" action="/ebisearch/search.ebi" method="GET" class=""><fieldset><div class="input-group"><input type="text" name="query" id="global-searchbox" class="input-group-field" placeholder="Search all of EMBL-EBI"><div class="input-group-button"><input type="submit" name="submit" value="Search" class="button"><input type="hidden" name="db" value="allebi" checked="checked"><input type="hidden" name="requestFrom" value="masthead-black-bar" checked="checked"></div></div></fieldset></form></div></nav>
'
,
document
.
getElementById
(
"
masthead-black-bar
"
).
insertBefore
(
dropdownDiv
,
document
.
getElementById
(
"
masthead-black-bar
"
).
firstChild
);
var
searchBar
=
document
.
querySelectorAll
(
"
.search-bar
"
)[
0
],
searchBarButton
=
document
.
querySelectorAll
(
"
.search-toggle
"
)[
0
],
blackBar
=
document
.
querySelectorAll
(
"
.masthead-black-bar
"
)[
0
];
searchBarButton
.
addEventListener
(
"
mouseenter
"
,
function
(
event
){
0
==
ebiHasClass
(
document
.
querySelectorAll
(
"
.search-bar
"
)[
0
],
"
active
"
)
&&
(
blackBar
.
className
+=
"
peek
"
)},
!
1
),
searchBarButton
.
addEventListener
(
"
mouseleave
"
,
function
(
event
){
0
==
ebiHasClass
(
document
.
querySelectorAll
(
"
.search-bar
"
)[
0
],
"
active
"
)
&&
blackBar
.
classList
.
remove
(
"
peek
"
)},
!
1
);
document
.
querySelectorAll
(
"
.search-toggle
"
)[
0
].
addEventListener
(
"
click
"
,
function
(
event
){
ebiToggleClass
(
searchBar
,
"
active
"
),
ebiToggleClass
(
searchBarButton
,
"
active
"
),
window
.
scrollTo
(
0
,
0
)},
!
1
),
document
.
querySelectorAll
(
"
.search-bar .close-button
"
)[
0
].
addEventListener
(
"
click
"
,
function
(
event
){
ebiToggleClass
(
searchBar
,
"
active
"
),
ebiToggleClass
(
searchBarButton
,
"
active
"
),
window
.
scrollTo
(
0
,
0
)},
!
1
)}
catch
(
err
){
setTimeout
(
init
,
500
)}}
catch
(
err
){}}
function
ebiFrameworkSearchNullError
(){
try
{
var
disabled
=-
1
!==
document
.
body
.
className
.
indexOf
(
"
no-search-error
"
),
searchBoxes
=
[{
inputNode
:
document
.
getElementById
(
"
global-searchbox
"
)},{
inputNode
:
document
.
getElementById
(
"
local-searchbox
"
)},{
inputNode
:
-
1
!==
document
.
body
.
className
.
indexOf
(
"
front
"
)?
document
.
getElementById
(
"
query
"
):
null
},{
inputNode
:
document
.
getElementById
(
"
people-groups
"
)?
document
.
getElementById
(
"
people-groups
"
).
getElementsByTagName
(
"
input
"
)[
0
]:
null
}];
if
(
!
disabled
)
for
(
searchBox
in
searchBoxes
){
var
searchInput
=
searchBoxes
[
searchBox
].
inputNode
,
searchForm
=
searchInput
?
searchInput
.
form
:
null
,
searchInputDefault
=
searchBoxes
[
searchBox
].
defaultText
||
""
,
searchError
=
searchBoxes
[
searchBox
].
errorText
||
"
Please enter a search term
"
,
isEbiSearch
=-
1
!==
(
searchForm
?
searchForm
.
action
:
""
).
indexOf
(
"
/ebisearch/
"
);
searchForm
&&
searchInput
&&
isEbiSearch
&&
(
searchForm
.
searchInput
=
searchInput
,
searchForm
.
searchInputDefault
=
searchInputDefault
,
searchForm
.
searchError
=
searchError
,
searchForm
.
onsubmit
=
function
(){
if
(
searchInput
=
this
.
searchInput
,
searchInputDefault
=
this
.
searchInputDefault
,
searchError
=
this
.
searchError
,
searchInput
.
value
=
searchInput
.
value
.
trim
(),
searchInput
.
value
===
searchInputDefault
||
""
===
searchInput
.
value
)
return
alert
(
searchError
),
!
1
})}}
catch
(
err
){}}
function
isIE
(){
var
myNav
=
navigator
.
userAgent
.
toLowerCase
();
return
-
1
!=
myNav
.
indexOf
(
"
msie
"
)
&&
parseInt
(
myNav
.
split
(
"
msie
"
)[
1
])}
function
ebiToggleClass
(
element
,
toggleClass
){
var
newClass
,
currentClass
=
element
.
className
;
newClass
=
currentClass
.
split
(
"
"
).
indexOf
(
toggleClass
)
>-
1
?
currentClass
.
replace
(
new
RegExp
(
"
\\
b
"
+
toggleClass
+
"
\\
b
"
,
"
g
"
),
""
):
currentClass
+
"
"
+
toggleClass
,
element
.
className
=
newClass
.
trim
()}
function
ebiActivateClass
(
element
,
cssClass
){
element
.
classList
.
remove
(
cssClass
),
element
.
classList
.
add
(
cssClass
)}
function
ebiRemoveClass
(
element
,
cssClass
){
element
.
classList
.
remove
(
cssClass
)}
function
ebiFrameworkHideGlobalNav
(){
try
{
var
elem
,
hasGlobalMasthead
=
null
!==
document
.
getElementById
(
"
masthead-black-bar
"
),
disabled
=-
1
!==
document
.
body
.
className
.
indexOf
(
"
no-global-nav
"
);
hasGlobalMasthead
&&
disabled
&&
(
null
!==
(
elem
=
document
.
getElementById
(
"
global-nav
"
))
&&
elem
.
parentNode
.
removeChild
(
elem
),
null
!==
(
elem
=
document
.
getElementById
(
"
global-nav-expanded
"
))
&&
elem
.
parentNode
.
removeChild
(
elem
))}
catch
(
err
){}}
function
ebiFrameworkAssignImageByMetaTags
(){
var
masthead
=
document
.
getElementById
(
"
masthead
"
),
mastheadColor
=
document
.
querySelector
(
"
meta[name='ebi:masthead-color']
"
)
||
document
.
querySelector
(
"
meta[name='ebi-masthead-color']
"
),
mastheadImage
=
document
.
querySelector
(
"
meta[name='ebi:masthead-image']
"
)
||
document
.
querySelector
(
"
meta[name='ebi-masthead-image']
"
);
null
!=
mastheadColor
&&
(
masthead
.
style
.
backgroundColor
=
mastheadColor
.
getAttribute
(
"
content
"
),
masthead
.
className
+=
"
meta-background-color
"
),
null
!=
mastheadImage
&&
(
masthead
.
style
.
backgroundImage
=
"
url(
"
+
mastheadImage
.
getAttribute
(
"
content
"
)
+
"
)
"
,
masthead
.
className
+=
"
meta-background-image
"
)}
function
ebiFrameworkPopulateBlackBar
(){
try
{
null
!==
(
elem
=
document
.
getElementById
(
"
masthead-black-bar
"
))
&&
(
document
.
getElementById
(
"
masthead-black-bar
"
).
innerHTML
=
""
);
var
barContents
=
document
.
createElement
(
"
div
"
);
barContents
.
innerHTML
=
'
<nav class="row"><ul id="global-nav" class="menu global-nav text-right"><li class="home-mobile"><a href="https://www.ebi.ac.uk"></a></li><li class="where embl hide"><a href="http://www.embl.org">EMBL</a></li><li class="where barcelona hide"><a href="#">Barcelona</a></li><li class="where hamburg hide"><a href="#">Hamburg</a></li><li class="where grenoble hide"><a href="#">Heidelberg</a></li><li class="where grenoble hide"><a href="#">Grenoble</a></li><li class="where rome hide"><a href="#">Rome</a></li><li id="embl-selector" class="float-right show-for-medium embl-selector embl-ebi"><button class="button float-right"> </button></li><li class="float-right search"><a href="#" class="inline-block collpased float-left search-toggle"><span class="show-for-small-only">Search</span></a></li><li class="what about"><a href="https://www.ebi.ac.uk/about">About us</a></li><li class="what training"><a href="https://www.ebi.ac.uk/training">Training</a></li><li class="what research"><a href="https://www.ebi.ac.uk/research">Research</a></li><li class="what services"><a href="https://www.ebi.ac.uk/services">Services</a></li><li class="where ebi"><a href="https://www.ebi.ac.uk">EMBL-EBI</a></li></ul></nav>
'
,
document
.
getElementById
(
"
masthead-black-bar
"
).
insertBefore
(
barContents
,
document
.
getElementById
(
"
masthead-black-bar
"
).
firstChild
),
document
.
body
.
className
+=
"
ebi-black-bar-loaded
"
}
catch
(
err
){}}
function
ebiGetFacet
(
passedAttribute
){
var
tag
=
"
#masthead-black-bar .
"
+
passedAttribute
.
toLowerCase
();
return
document
.
querySelectorAll
(
tag
)[
0
]}
function
ebiFrameworkActivateBlackBar
(){
try
{
for
(
var
metas
=
document
.
getElementsByTagName
(
"
meta
"
),
i
=
0
;
i
<
metas
.
length
;
i
++
)
if
(
"
embl:active
"
==
metas
[
i
].
getAttribute
(
"
name
"
)
&&
(
ebiRemoveClass
(
targetFacet
=
ebiGetFacet
(
metas
[
i
].
getAttribute
(
"
content
"
).
replace
(
"
:
"
,
"
.
"
)),
"
hide
"
),
ebiActivateClass
(
targetFacet
,
"
active
"
)),
"
embl:parent-1
"
==
metas
[
i
].
getAttribute
(
"
name
"
)
&&
(
ebiRemoveClass
(
targetFacet
=
ebiGetFacet
(
metas
[
i
].
getAttribute
(
"
content
"
).
replace
(
"
:
"
,
"
.
"
)),
"
hide
"
),
ebiActivateClass
(
targetFacet
,
"
active
"
)),
"
embl:parent-2
"
==
metas
[
i
].
getAttribute
(
"
name
"
)){
var
targetFacet
=
ebiGetFacet
(
metas
[
i
].
getAttribute
(
"
content
"
).
replace
(
"
:
"
,
"
.
"
));
ebiRemoveClass
(
targetFacet
,
"
hide
"
),
ebiActivateClass
(
targetFacet
,
"
active
"
)}
var
mouseoutTimer
;
blackBar
.
addEventListener
(
"
mouseenter
"
,
function
(){
window
.
clearTimeout
(
mouseoutTimer
)},
!
1
),
blackBar
.
addEventListener
(
"
mouseleave
"
,
function
(){
mouseoutTimer
=
window
.
setTimeout
(
function
(){
resetBlackBar
()},
500
)});
function
resetBlackBar
(){
ebiFrameworkActivateBlackBar
()}}
catch
(
err
){}}
function
ebiFrameworkInsertEMBLdropdown
(){
try
{
null
!==
(
elem
=
document
.
getElementById
(
"
embl-bar
"
))
&&
document
.
getElementById
(
"
embl-bar
"
).
remove
();
var
dropdownDiv
=
document
.
createElement
(
"
div
"
);
dropdownDiv
.
innerHTML
=
'
<nav id="embl-bar" class="embl-bar global-masthead-interactive-banner"><div class="row padding-bottom-medium"><div class="columns padding-top-medium"><button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button></div><div class="columns medium-7"><div class="large-10 medium-12"><div class="margin-bottom-large padding-top-xsmall margin-top-large"><h3 class="no-underline inline" style="line-height: 1rem;"><a href="//embl.org">EMBL</a></h3> was set up in 1974 as Europe’s flagship laboratory for the life sciences – an intergovernmental organisation with more than 80 independent research groups covering the spectrum of molecular biology:</div></div><div class="row large-up-3 medium-up-3 small-up-2 no-underline medium-11"><div class="column padding-bottom-medium"><a class="" href="https://www.embl.de/research/index.php"><h5 class="inline underline">Research:</h5> perform basic research in molecular biology</a></div><div class="column padding-bottom-medium"><a class="" href="https://www.embl.de/services/index.html"><h5 class="inline underline">Services:</h5> offer vital services to scientists in the member states</a></div><div class="column padding-bottom-medium"><a class="" href="https://www.embl.de/training/index.php"><h5 class="inline underline">Training</h5> scientists, students and visitors at all levels</a></div><div class="column padding-bottom-medium"><a class="" href="https://www.embl.de/research/tech_transfer/index.html"><h5 class="inline underline">Transfer</h5> and development of technology</a></div><div class="column padding-bottom-medium"><h5 class="inline underline">Develop</h5> new instruments and methods</div><div class="column padding-bottom-medium"><h5 class="inline underline">Integrating</h5> life science research in Europe</div></div><div class="margin-top-xlarge no-underline"><h3><a href="//embl.org" class="readmore">More about EMBL</a></h3></div></div><div class="columns medium-5"><div class="large-10 medium-12"><h3 class="inline">Six sites</h3><p>represent EMBL in Europe.</p></div><div class="row medium-up-2 small-up-2"><div class="column"><h5 class="inline"><a href="//www.embl-barcelona.es/">Barcelona</a></h5><p class="">Tissue biology and disease modelling</p></div><div class="column"><h5 class="inline"><a href="//www.embl.fr/">Grenoble</a></h5><p class="">Structural biology</p></div><div class="column"><h5 class="inline"><a href="//www.embl-hamburg.de/">Hamburg</a></h5><p class="">Structural biology</p></div><div class="column"><h5 class="inline"><a href="//www.embl.de/">Heidelberg</a></h5><p class="">Main laboratory</p></div><div class="column"><h5 class="inline"><a href="https://www.ebi.ac.uk/">Hinxton</a></h5><p class="margin-bottom-none">EMBL-EBI: European Bioinformatics Institute</p></div><div class="column"><h5 class="inline"><a href="//www.embl.it/">Rome</a></h5><p class="">Epigenetics and neurobiology</p></div></div></div></div></nav>
'
,
document
.
getElementById
(
"
masthead-black-bar
"
).
insertBefore
(
dropdownDiv
,
document
.
getElementById
(
"
masthead-black-bar
"
).
firstChild
);
var
emblBar
=
document
.
querySelectorAll
(
"
.embl-bar
"
)[
0
],
emblBarButton
=
document
.
querySelectorAll
(
"
.embl-selector
"
)[
0
],
blackBar
=
document
.
querySelectorAll
(
"
.masthead-black-bar
"
)[
0
];
emblBarButton
.
addEventListener
(
"
mouseenter
"
,
function
(
event
){
0
==
ebiHasClass
(
document
.
querySelectorAll
(
"
.embl-bar
"
)[
0
],
"
active
"
)
&&
(
blackBar
.
className
+=
"
peek
"
)},
!
1
),
emblBarButton
.
addEventListener
(
"
mouseleave
"
,
function
(
event
){
0
==
ebiHasClass
(
document
.
querySelectorAll
(
"
.embl-bar
"
)[
0
],
"
active
"
)
&&
blackBar
.
classList
.
remove
(
"
peek
"
)},
!
1
);
document
.
querySelectorAll
(
"
.embl-selector
"
)[
0
].
addEventListener
(
"
click
"
,
function
(
event
){
ebiToggleClass
(
emblBar
,
"
active
"
),
ebiToggleClass
(
emblBarButton
,
"
active
"
),
window
.
scrollTo
(
0
,
0
)},
!
1
),
document
.
querySelectorAll
(
"
.embl-bar .close-button
"
)[
0
].
addEventListener
(
"
click
"
,
function
(
event
){
ebiToggleClass
(
emblBar
,
"
active
"
),
ebiToggleClass
(
emblBarButton
,
"
active
"
),
window
.
scrollTo
(
0
,
0
)},
!
1
)}
catch
(
err
){}}
function
ebiFrameworkUpdateFoot
(){
function
init
(){
try
{
document
.
getElementById
(
"
global-nav-expanded
"
).
innerHTML
=
html
}
catch
(
err
){
setTimeout
(
init
,
500
)}}
var
html
=
'
<div class="columns small-12"><h4 class="inline-block"><a href="https://www.ebi.ac.uk" class="no-underline" title="EMBL-EBI">EMBL-EBI</a></h4><span class="small inline-block padding-left-large"><a class="readmore" href="http://intranet.ebi.ac.uk"><span class="icon icon-functional" data-icon="L"></span> Intranet for staff</a></span></div><div class="medium-up-5 small-up-2"><div class="column"><h5 class="services"><a class="services-color" href="https://www.ebi.ac.uk/services">Services</a></h5><ul> <li class="first"><a href="https://www.ebi.ac.uk/services">By topic</a></li> <li><a href="https://www.ebi.ac.uk/services/all">By name (A-Z)</a></li> <li class="last"><a href="https://www.ebi.ac.uk/support">Help & Support</a></li> </ul></div><div class="column"><h5 class="research"><a class="research-color" href="https://www.ebi.ac.uk/research">Research</a></h5><ul> <li><a href="https://www.ebi.ac.uk/research/publications">Publications</a></li> <li><a href="https://www.ebi.ac.uk/research/groups">Research groups</a></li> <li class="last"><a href="https://www.ebi.ac.uk/research/postdocs">Postdocs</a> & <a href="https://www.ebi.ac.uk/research/eipp">PhDs</a></li> </ul></div><div class="column"> <h5 class="training"><a class="training-color" href="https://www.ebi.ac.uk/training">Training</a></h5><ul> <li><a href="https://www.ebi.ac.uk/training/handson">Train at EBI</a></li> <li><a href="https://www.ebi.ac.uk/training/roadshow">Train outside EBI</a></li> <li><a href="https://www.ebi.ac.uk/training/online">Train online</a></li> <li class="last"><a href="https://www.ebi.ac.uk/training/contact-us">Contact organisers</a></li> </ul></div> <div class="column"> <h5 class="industry"><a class="industry-color" href="https://www.ebi.ac.uk/industry">Industry</a></h5><ul> <li><a href="https://www.ebi.ac.uk/industry/private">Members Area</a></li> <li><a href="https://www.ebi.ac.uk/industry/workshops">Workshops</a></li> <li><a href="https://www.ebi.ac.uk/industry/sme-forum"><abbr title="Small Medium Enterprise">SME</abbr> Forum</a></li> <li class="last"><a href="https://www.ebi.ac.uk/industry/contact">Contact Industry programme</a></li> </ul></div> <div class="column"> <h5 class="about"><a class="ebi-color" href="https://www.ebi.ac.uk/about">About</a></h5><ul> <li><a href="https://www.ebi.ac.uk/about/contact">Contact us</a><li><a href="https://www.ebi.ac.uk/about/events">Events</a></li> <li><a href="https://www.ebi.ac.uk/about/jobs" title="Jobs, postdocs, PhDs...">Jobs</a></li> <li class="first"><a href="https://www.ebi.ac.uk/about/news">News</a></li> <li><a href="https://www.ebi.ac.uk/about/people">People & groups</a></li> </ul></div></div>
'
;
init
()}
function
ebiFrameworkUpdateFooterMeta
(){
function
init
(){
try
{
document
.
getElementById
(
"
ebi-footer-meta
"
).
innerHTML
=
html
}
catch
(
err
){
setTimeout
(
init
,
500
)}}
var
html
=
'
<div class="columns"><p class="address">EMBL-EBI, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD, UK. +44 (0)1223 49 44 44</p> <p class="legal">Copyright © EMBL-EBI
'
+
(
new
Date
).
getFullYear
()
+
'
| EMBL-EBI is <a href="http://www.embl.org/">part of the European Molecular Biology Laboratory</a> | <a href="https://www.ebi.ac.uk/about/terms-of-use">Terms of use</a></p></div>
'
;
init
()}
function
ebiInjectAnnouncements
(
message
){
if
(
void
0
===
message
)
return
!
1
;
if
(
void
0
!==
message
.
processed
)
return
!
0
;
message
.
processed
=!
0
;
var
container
=
document
.
getElementById
(
"
main-content-area
"
)
||
document
.
getElementById
(
"
main-content
"
)
||
document
.
getElementById
(
"
main
"
)
||
document
.
getElementById
(
"
content
"
)
||
document
.
getElementById
(
"
contentsarea
"
);
if
(
null
==
container
)
return
console
.
warn
(
"
A message needs to be shown on this site, but an appropriate container could not be found.
\n
Message follows:
"
,
"
\n
"
+
message
.
headline
,
"
\n
"
+
message
.
message
,
"
\n
Priority:
"
,
message
.
priority
),
!
1
;
var
banner
=
document
.
createElement
(
"
div
"
),
wrapper
=
document
.
createElement
(
"
div
"
);
banner
.
className
=
"
notifications-js row margin-top-medium
"
,
wrapper
.
className
=
"
callout
"
+
(
message
.
priority
||
""
),
wrapper
.
innerHTML
=
"
<h3>
"
+
message
.
headline
+
"
</h3>
"
+
message
.
message
,
container
.
insertBefore
(
banner
,
container
.
firstChild
),
banner
.
appendChild
(
wrapper
)}
function
ebiFrameworkIncludeAnnouncements
(){
function
detectAnnouncements
(
messages
){
var
currentHost
=
window
.
location
.
hostname
,
currentPath
=
window
.
location
.
pathname
;
if
(
currentHost
=
currentHost
.
replace
(
/wwwdev/g
,
"
www
"
),
ebiInjectAnnouncements
(
messages
[
currentHost
]),
ebiInjectAnnouncements
(
messages
[
currentHost
+
"
/
"
]),
ebiInjectAnnouncements
(
messages
[
currentHost
+
"
/*
"
]),
currentPath
.
length
>
1
){
for
(
var
currentPathArray
=
currentPath
.
split
(
"
/
"
),
pathsToMatch
=
[
currentHost
+
currentPathArray
[
0
]],
i
=
1
;
i
<
currentPathArray
.
length
;
i
++
){
var
tempPath
=
pathsToMatch
[
i
-
1
];
pathsToMatch
.
push
(
tempPath
+
"
/
"
+
currentPathArray
[
i
])}
for
(
i
=
0
;
i
<
pathsToMatch
.
length
;
i
++
)
ebiInjectAnnouncements
(
messages
[
pathsToMatch
[
i
]]),
ebiInjectAnnouncements
(
messages
[
pathsToMatch
[
i
]
+
"
*
"
]),
ebiInjectAnnouncements
(
messages
[
pathsToMatch
[
i
]
+
"
/*
"
])}}
function
loadRemoteAnnouncements
(
file
){
window
.
XMLHttpRequest
&&
(
xmlhttp
=
new
XMLHttpRequest
),
xmlhttp
.
open
(
"
GET
"
,
file
,
!
0
),
xmlhttp
.
onload
=
function
(
e
){
4
===
xmlhttp
.
readyState
&&
(
200
===
xmlhttp
.
status
?(
eval
(
xmlhttp
.
responseText
),
detectAnnouncements
(
m
)):
console
.
error
(
xmlhttp
.
statusText
))},
xmlhttp
.
onerror
=
function
(
e
){
console
.
error
(
xmlhttp
.
statusText
)},
xmlhttp
.
send
(
null
)}
loadRemoteAnnouncements
(
0
===
window
.
location
.
hostname
.
indexOf
(
"
wwwdev.
"
)?
"
https://dev.ebi.emblstatic.net/announcements.js
"
:
"
https://ebi.emblstatic.net/announcements.js
"
)}
function
ebiFrameworkCookieBanner
(){
function
setCookie
(
c_name
,
value
,
exdays
){
var
c_value
,
exdate
=
new
Date
;
exdate
.
setDate
(
exdate
.
getDate
()
+
exdays
),
c_value
=
escape
(
value
)
+
(
null
===
exdays
?
""
:
"
;expires=
"
+
exdate
.
toUTCString
())
+
"
;domain=.ebi.ac.uk;path=/
"
,
document
.
cookie
=
c_name
+
"
=
"
+
c_value
,
c_value
=
escape
(
value
)
+
(
null
===
exdays
?
""
:
"
;expires=
"
+
exdate
.
toUTCString
())
+
"
;domain=
"
+
document
.
domain
+
"
;path=/
"
,
document
.
cookie
=
c_name
+
"
=
"
+
c_value
}
function
getCookie
(
c_name
){
var
i
,
x
,
y
,
ARRcookies
=
document
.
cookie
.
split
(
"
;
"
);
for
(
i
=
0
;
i
<
ARRcookies
.
length
;
i
++
)
if
(
x
=
ARRcookies
[
i
].
substr
(
0
,
ARRcookies
[
i
].
indexOf
(
"
=
"
)),
y
=
ARRcookies
[
i
].
substr
(
ARRcookies
[
i
].
indexOf
(
"
=
"
)
+
1
),(
x
=
x
.
replace
(
/^
\s
+|
\s
+$/g
,
""
))
===
c_name
)
return
unescape
(
y
)}
function
createBanner
(){
var
banner
=
document
.
createElement
(
"
div
"
),
wrapper
=
document
.
createElement
(
"
div
"
);
document
.
createElement
(
"
div
"
);
banner
.
id
=
"
cookie-banner
"
,
banner
.
className
=
"
cookie-banner
"
,
wrapper
.
className
=
"
row
"
,
wrapper
.
innerHTML
=
"
<span class='text'>This website uses cookies. By continuing to browse this site, you are agreeing to the use of our site cookies. To find out more, see our <a href='//www.ebi.ac.uk/about/terms-of-use'>Terms of Use</a>.</span><div id='cookie-dismiss'><button class='close-button' style='top: 0.3rem; color:#fff;' aria-label='Close alert' type='button'><span aria-hidden='true'>×</span></button></div>
"
,
document
.
body
.
appendChild
(
banner
),
banner
.
appendChild
(
wrapper
)}
function
openBanner
(){
var
height
=
document
.
getElementById
(
"
cookie-banner
"
).
offsetHeight
;
document
.
getElementById
(
"
cookie-banner
"
).
style
.
display
=
"
block
"
,
document
.
body
.
style
.
paddingBottom
=
height
+
"
px
"
}
function
closeBanner
(){
document
.
getElementById
(
"
cookie-banner
"
).
offsetHeight
;
document
.
getElementById
(
"
cookie-banner
"
).
style
.
display
=
"
none
"
,
document
.
body
.
style
.
paddingBottom
=
"
0
"
}
function
init
(){
try
{
"
true
"
!==
getCookie
(
"
cookies-accepted
"
)
&&
(
createBanner
(),
openBanner
(),
setCookie
(
"
cookies-accepted
"
,
"
true
"
,
90
),
document
.
getElementById
(
"
cookie-dismiss
"
).
onclick
=
function
(){
return
closeBanner
(),
!
1
})}
catch
(
err
){
setTimeout
(
init
,
100
)}}
init
()}
function
ebiFrameworkInvokeScripts
(){
ebiFrameworkPopulateBlackBar
(),
ebiFrameworkActivateBlackBar
(),
ebiFrameworkExternalLinks
(),
ebiFrameworkManageGlobalSearch
(),
ebiFrameworkSearchNullError
(),
ebiFrameworkHideGlobalNav
(),
ebiFrameworkAssignImageByMetaTags
(),
ebiFrameworkInsertEMBLdropdown
(),
ebiFrameworkUpdateFoot
(),
ebiFrameworkUpdateFooterMeta
(),
ebiFrameworkIncludeAnnouncements
(),
ebiFrameworkCookieBanner
()}
document
.
addEventListener
(
"
DOMContentLoaded
"
,
function
(
event
){
var
bodyData
=
document
.
body
.
dataset
;
isIE
()
&&
isIE
()
<=
10
&&
(
bodyData
=
[]),
"
false
"
!=
bodyData
.
ebiframeworkinvokescripts
&&
ebiFrameworkInvokeScripts
()});
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment