adding web site
|
@ -0,0 +1,994 @@
|
|||
body, html {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
#container {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
#content {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
#grid {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
|
||||
}
|
||||
#countries {
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
margin: 0;
|
||||
padding-right: -2px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#countries .btn-group {
|
||||
position: absolute;
|
||||
margin: 10px 0 0 0;
|
||||
left: 0px;
|
||||
right: -2px;
|
||||
}
|
||||
#countries .btn-group:first-child button {
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#countries .btn-group:nth-child(2) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#countries .btn-group:last-child {
|
||||
top:25px;
|
||||
}
|
||||
|
||||
#countries .btn-group:last-child button {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
#countries button {
|
||||
text-align: center !important;
|
||||
overflow: hidden;
|
||||
padding: 3px 0px 3px 1px !important;
|
||||
}
|
||||
|
||||
#gridSort {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#gridSort button {
|
||||
width: 33.33%;
|
||||
text-align: center !important;
|
||||
padding-left: 1px !important;
|
||||
padding-right: 0px !important;
|
||||
}
|
||||
|
||||
#footer {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
text-align: right;
|
||||
color: #AAA;
|
||||
}
|
||||
|
||||
#footer a {
|
||||
color: #AAA;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #CCC;
|
||||
}
|
||||
|
||||
/* responsive design */
|
||||
|
||||
@media screen and (min-width: 860px) {
|
||||
|
||||
#container {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 860px;
|
||||
height: 610px;
|
||||
overflow: hidden;
|
||||
margin: 0px auto;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
#content {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
width: 860px;
|
||||
height: 610px
|
||||
|
||||
}
|
||||
|
||||
#grid {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
top: 5px;
|
||||
width: 500px;
|
||||
height: 600px;
|
||||
overflow: visible;
|
||||
background-color: #000;
|
||||
|
||||
}
|
||||
|
||||
#gridImage, #gridCanvas, #gridCanvasOverlay {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 500px;
|
||||
height: 600px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
#marker {
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
width: 20px;
|
||||
height: 15px;
|
||||
border: 3px solid #000;
|
||||
|
||||
}
|
||||
|
||||
#tooltip {
|
||||
|
||||
position: absolute;
|
||||
display: none;
|
||||
margin-right: -300px;
|
||||
background: rgba(0,0,0,0.8);
|
||||
padding: 5px 10px 5px 10px;
|
||||
color: #FFF;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
max-width: 220px;
|
||||
pointer-events: none;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.6);
|
||||
z-index: 600;
|
||||
|
||||
}
|
||||
|
||||
#infobox {
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
|
||||
background: #FFF;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
width: 320px;
|
||||
height: 580px;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.6);
|
||||
padding: 3px 10px 17px 10px;
|
||||
z-index: 500;
|
||||
|
||||
}
|
||||
#infoboxContent {
|
||||
margin: 10px;
|
||||
max-height: 540px;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
#infobox p {
|
||||
|
||||
line-height: 1.2em;
|
||||
font-size: 12px;
|
||||
margin: 5px 0;
|
||||
|
||||
}
|
||||
|
||||
#infobox #close {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
|
||||
}
|
||||
|
||||
#display-number {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
width: 340px;
|
||||
height: 110px;
|
||||
|
||||
}
|
||||
|
||||
#display-number-content {
|
||||
|
||||
font-size: 70px;
|
||||
line-height: 70px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
#footer {
|
||||
width: 340px;
|
||||
height: 20px;
|
||||
right: 5px;
|
||||
top: 590px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#controller-navigation {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 140px;
|
||||
width: 340px;
|
||||
height: 450px;
|
||||
|
||||
}
|
||||
|
||||
#gridFlag {
|
||||
|
||||
margin: 0px 0px 32px;
|
||||
|
||||
}
|
||||
|
||||
#controller-navigation .btn-full,
|
||||
#controller-navigation .btn-group-vertical button {
|
||||
|
||||
width: 340px;
|
||||
text-align: left;
|
||||
|
||||
}
|
||||
|
||||
#countries {
|
||||
height: 95px;
|
||||
}
|
||||
|
||||
#countries .btn-group:nth-child(2) {
|
||||
top:27px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#countries .btn-group:nth-child(2) button {
|
||||
border-radius: 0px !important;
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#countries .btn-group:last-child {
|
||||
top:54px;
|
||||
}
|
||||
|
||||
|
||||
#small-warning {
|
||||
|
||||
display: none;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media screen and (min-width: 640px) and (max-width: 859px) {
|
||||
|
||||
#container {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 640px;
|
||||
height: 490px;
|
||||
overflow: hidden;
|
||||
margin: 0px auto;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
#content {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
width: 640px;
|
||||
height: 490px
|
||||
|
||||
}
|
||||
|
||||
#grid {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
top: 5px;
|
||||
width: 400px;
|
||||
height: 480px;
|
||||
overflow: visible;
|
||||
background-color: #000;
|
||||
|
||||
}
|
||||
|
||||
#gridImage, #gridCanvas, #gridCanvasOverlay {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 400px;
|
||||
height: 480px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
#marker {
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
width: 16px;
|
||||
height: 12px;
|
||||
border: 3px solid #000;
|
||||
|
||||
}
|
||||
|
||||
#tooltip {
|
||||
|
||||
position: absolute;
|
||||
display: none;
|
||||
margin-right: -300px;
|
||||
background: rgba(0,0,0,0.8);
|
||||
padding: 5px 10px 5px 10px;
|
||||
color: #FFF;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
max-width: 220px;
|
||||
pointer-events: none;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.6);
|
||||
z-index: 600;
|
||||
|
||||
}
|
||||
|
||||
#infobox {
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
|
||||
background: #FFF;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
width: 360px;
|
||||
max-height: 450px;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.6);
|
||||
padding: 3px 10px 17px 10px;
|
||||
z-index: 500;
|
||||
|
||||
}
|
||||
|
||||
#infoboxContent {
|
||||
margin: 10px 10px 40px 10px;
|
||||
max-height: 400px;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
#infobox p {
|
||||
|
||||
line-height: 1.2em;
|
||||
font-size: 12px;
|
||||
margin: 5px 0;
|
||||
|
||||
}
|
||||
|
||||
#infobox #close {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
|
||||
}
|
||||
|
||||
#display-number {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
width: 220px;
|
||||
height: 50px;
|
||||
|
||||
}
|
||||
|
||||
#display-number-content {
|
||||
|
||||
font-size: 50px;
|
||||
line-height: 50px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#footer {
|
||||
width: 220px;
|
||||
height: 20px;
|
||||
right: 5px;
|
||||
top: 470px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#controller-navigation {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 110px;
|
||||
width: 220px;
|
||||
height: 350px;
|
||||
|
||||
}
|
||||
|
||||
#gridFlag {
|
||||
|
||||
margin: 0px 0px 27px;
|
||||
|
||||
}
|
||||
|
||||
#controller-navigation h3 {
|
||||
|
||||
font-size: 18px;
|
||||
line-height: 20px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#controller-navigation .btn-full,
|
||||
#controller-navigation .btn-group-vertical button {
|
||||
|
||||
width: 220px;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
padding: 5px 8px;
|
||||
|
||||
}
|
||||
|
||||
#controller-navigation #gridSort button {
|
||||
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
padding: 5px 12px 5px 13px;
|
||||
|
||||
}
|
||||
|
||||
#countries button {
|
||||
text-align: center !important;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
padding: 2px 0px 2px 1px !important;
|
||||
letter-spacing: -0.04em;
|
||||
}
|
||||
|
||||
#small-warning {
|
||||
|
||||
display: none;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media screen and (min-width: 520px) and (max-width: 639px) {
|
||||
|
||||
#container {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 520px;
|
||||
height: 370px;
|
||||
overflow: hidden;
|
||||
margin: 0px auto;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
#content {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
width: 520px;
|
||||
height: 370px
|
||||
|
||||
}
|
||||
|
||||
#grid {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
top: 5px;
|
||||
width: 275px;
|
||||
height: 360px;
|
||||
overflow: visible;
|
||||
background-color: #000;
|
||||
|
||||
}
|
||||
|
||||
#gridImage, #gridCanvas, #gridCanvasOverlay {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 275px;
|
||||
height: 360px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
#marker {
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
width: 11px;
|
||||
height: 9px;
|
||||
border: 3px solid #000;
|
||||
|
||||
}
|
||||
|
||||
#tooltip {
|
||||
|
||||
position: absolute;
|
||||
display: none;
|
||||
margin-right: -275px;
|
||||
background: rgba(0,0,0,0.8);
|
||||
padding: 5px 10px 5px 10px;
|
||||
color: #FFF;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
max-width: 220px;
|
||||
pointer-events: none;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.6);
|
||||
z-index: 600;
|
||||
|
||||
}
|
||||
|
||||
#infobox {
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
|
||||
background: #FFF;
|
||||
left: 20px;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
max-height: 380px;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.6);
|
||||
padding: 3px 10px 40px 10px;
|
||||
z-index: 500;
|
||||
|
||||
}
|
||||
#infoboxContent {
|
||||
margin: 10px;
|
||||
max-height: 320px;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
#infobox p {
|
||||
|
||||
line-height: 1.2em;
|
||||
font-size: 12px;
|
||||
margin: 5px 0;
|
||||
|
||||
}
|
||||
|
||||
#infobox #close {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
}
|
||||
|
||||
#display-number {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
width: 225px;
|
||||
height: 50px;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
#display-number-content {
|
||||
|
||||
font-size: 30px;
|
||||
line-height: 30px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
|
||||
}
|
||||
|
||||
#footer {
|
||||
width: 225px;
|
||||
height: 20px;
|
||||
right: 5px;
|
||||
top: 350px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#controller-navigation {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 65px;
|
||||
width: 225px;
|
||||
height: 290px;
|
||||
|
||||
}
|
||||
|
||||
#gridFlag {
|
||||
|
||||
margin: 0px 0px 23px;
|
||||
|
||||
}
|
||||
|
||||
#controller-navigation h3 {
|
||||
|
||||
font-size: 16px;
|
||||
line-height: 18px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#controller-navigation .btn-full,
|
||||
#controller-navigation .btn-group-vertical button {
|
||||
|
||||
width: 225px;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
padding: 5px 8px;
|
||||
letter-spacing: -0.04em;
|
||||
|
||||
}
|
||||
|
||||
#controller-navigation #gridSort button {
|
||||
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
padding: 5px 11px 5px 11px;
|
||||
letter-spacing: -0.04em;
|
||||
|
||||
}
|
||||
|
||||
#countries {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#small-warning {
|
||||
|
||||
display: none;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media screen and (min-width: 420px) and (max-width: 519px) {
|
||||
|
||||
#container {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 400px;
|
||||
height: 740px;
|
||||
overflow: hidden;
|
||||
margin: 0px auto;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
#content {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
width: 400px;
|
||||
height: 740px
|
||||
|
||||
}
|
||||
|
||||
#grid {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 220px;
|
||||
width: 400px;
|
||||
height: 480px;
|
||||
overflow: visible;
|
||||
background-color: #000;
|
||||
|
||||
}
|
||||
|
||||
#gridImage, #gridCanvas, #gridCanvasOverlay {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 400px;
|
||||
height: 480px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
||||
#marker {
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
background-image: url(../img/marker_640.png)
|
||||
|
||||
}
|
||||
|
||||
#tooltip {
|
||||
|
||||
position: absolute;
|
||||
display: none;
|
||||
margin-right: -300px;
|
||||
background: rgba(0,0,0,0.8);
|
||||
padding: 5px 10px 5px 10px;
|
||||
color: #FFF;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
max-width: 220px;
|
||||
pointer-events: none;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.6);
|
||||
z-index: 600;
|
||||
|
||||
}
|
||||
|
||||
#infobox {
|
||||
|
||||
display: none;
|
||||
position: absolute;
|
||||
|
||||
background: #FFF;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
width: 360px;
|
||||
max-height: 450px;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.6);
|
||||
padding: 3px 10px 17px 10px;
|
||||
z-index: 500;
|
||||
|
||||
}
|
||||
|
||||
#infoboxContent {
|
||||
margin: 10px 10px 40px 10px;
|
||||
max-height: 400px;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
#infobox p {
|
||||
|
||||
line-height: 1.2em;
|
||||
font-size: 12px;
|
||||
margin: 5px 0;
|
||||
|
||||
}
|
||||
|
||||
#infobox #close {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
|
||||
}
|
||||
|
||||
#display-number {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 10px;
|
||||
width: 145px;
|
||||
height: 51px;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
#display-number-content {
|
||||
|
||||
font-size: 31px;
|
||||
line-height: 31px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
|
||||
}
|
||||
|
||||
#controller-sortby {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
top: 5px;
|
||||
width: 225px;
|
||||
height: 50px;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
#controller-sortby h3 {
|
||||
|
||||
font-size: 16px;
|
||||
line-height: 18px;
|
||||
padding: 0px;
|
||||
margin: 5px 0px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#gridFlag {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
top: 75px;
|
||||
z-index: 500;
|
||||
|
||||
}
|
||||
|
||||
#gridFlag h3 {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 170px;
|
||||
float: left;
|
||||
font-size: 14px;
|
||||
line-height: 18px;
|
||||
padding: 0px;
|
||||
margin: 7px 0px 0px;
|
||||
clear: both;
|
||||
|
||||
}
|
||||
|
||||
#gridFlag h3+.btn-group-vertical,
|
||||
#gridFlag h3+.btn-full {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 225px;
|
||||
float: right;
|
||||
|
||||
}
|
||||
|
||||
#controller-navigation .btn-full,
|
||||
#controller-navigation .btn-group-vertical button {
|
||||
|
||||
width: 225px;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
padding: 5px 8px;
|
||||
letter-spacing: -0.04em;
|
||||
|
||||
}
|
||||
|
||||
#gridFlag .btn-group-vertical {
|
||||
|
||||
padding-bottom: 10px;
|
||||
|
||||
}
|
||||
|
||||
#footer {
|
||||
width: 225px;
|
||||
height: 20px;
|
||||
right: 5px;
|
||||
bottom: 10px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#controller-navigation #gridSort button {
|
||||
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
padding: 5px 11px 5px 11px;
|
||||
letter-spacing: -0.04em;
|
||||
|
||||
}
|
||||
|
||||
#countries {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#small-warning {
|
||||
|
||||
display: none;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media screen and (max-width: 419px) {
|
||||
|
||||
#container {
|
||||
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
min-width: 0px;
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
#content {
|
||||
|
||||
display: none;
|
||||
|
||||
}
|
||||
|
||||
#footer {
|
||||
|
||||
display: none;
|
||||
|
||||
}
|
||||
|
||||
#small-warning {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
padding: 20px;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
|
@ -0,0 +1,178 @@
|
|||
body {
|
||||
|
||||
background: #F5F5F5;
|
||||
|
||||
}
|
||||
|
||||
#container {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
margin: 0px auto;
|
||||
box-shadow: 0px 0px 40px -20px rgba(0,0,0,0.4);
|
||||
width: 860px;
|
||||
background: #fff;
|
||||
padding: 50px;
|
||||
|
||||
}
|
||||
.social {
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#activate {
|
||||
|
||||
padding: 20px 0px 0px;
|
||||
border-top: 1px dotted #eee;
|
||||
margin-top: 20px;
|
||||
|
||||
}
|
||||
|
||||
#activate .col {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
float: left;
|
||||
width: 270px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
|
||||
}
|
||||
|
||||
#activate .col+.col {
|
||||
|
||||
margin-left: 25px;
|
||||
|
||||
}
|
||||
|
||||
#branding {
|
||||
|
||||
padding: 20px 0px 0px;
|
||||
border-top: 1px dotted #eee;
|
||||
margin-top: 20px;
|
||||
|
||||
}
|
||||
|
||||
#license {
|
||||
padding: 20px 10px 20px 100px;
|
||||
background: url(../img/cc-by.png) 10px center no-repeat;
|
||||
font-size: 0.8em;
|
||||
line-height: 1.1em;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #E3E3E3;
|
||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) inset
|
||||
|
||||
}
|
||||
|
||||
#creator {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
float: left;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
min-height: 60px;
|
||||
line-height: 60px;
|
||||
width: 450px;
|
||||
font-size: 0.9em;
|
||||
|
||||
}
|
||||
|
||||
a#odclogo {
|
||||
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 200px;
|
||||
height: 60px;
|
||||
font-size: 0px;
|
||||
text-indent: -1000px;
|
||||
color: transparent;
|
||||
background: url(../img/opendatacity.png) center center no-repeat;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
top: -5px;
|
||||
|
||||
}
|
||||
|
||||
a#mvlogo {
|
||||
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 200px;
|
||||
height: 60px;
|
||||
font-size: 0px;
|
||||
text-indent: -1000px;
|
||||
color: transparent;
|
||||
background: url(../img/myvideo.png) center center no-repeat;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
top: -5px;
|
||||
|
||||
}
|
||||
|
||||
#embed-overlay {
|
||||
|
||||
display: none;
|
||||
position: fixed;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
background-color: rgba(0,0,0,0.7);
|
||||
overflow-y: auto;
|
||||
|
||||
}
|
||||
|
||||
#embed-content {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
width: 640px;
|
||||
background-color: #fff;
|
||||
margin: 20px auto;
|
||||
padding: 20px;
|
||||
border-radius: 6px;
|
||||
box-shadow: 0px 0px 50px -15px rgba(0,0,0,0.9);
|
||||
|
||||
}
|
||||
|
||||
#embed-content fieldset {
|
||||
|
||||
padding-bottom: 20px;
|
||||
|
||||
}
|
||||
|
||||
#embed-content fieldset legend {
|
||||
|
||||
margin-bottom: 10px;
|
||||
line-height: 30px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#embed-content label+label {
|
||||
|
||||
margin-left: 20px;
|
||||
|
||||
}
|
||||
|
||||
#embed-content code {
|
||||
|
||||
display: block;
|
||||
position: relative;
|
||||
padding: 10px;
|
||||
white-space: normal;
|
||||
color: #444
|
||||
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 256 KiB |
After Width: | Height: | Size: 157 KiB |
After Width: | Height: | Size: 477 KiB |
After Width: | Height: | Size: 247 KiB |
After Width: | Height: | Size: 729 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,377 @@
|
|||
function Canvas(options) {
|
||||
var me = this;
|
||||
|
||||
var imageNode = options.imageNode;
|
||||
var node = options.node;
|
||||
var nodeOverlay = options.nodeOverlay;
|
||||
|
||||
var context = node[0].getContext("2d");
|
||||
var contextOverlay = nodeOverlay[0].getContext("2d");
|
||||
|
||||
var data = options.data;
|
||||
var columns = options.columns;
|
||||
var rows = (data.length/columns);
|
||||
var thumbWidth = options.thumbWidth;
|
||||
var thumbHeight = options.thumbHeight;
|
||||
|
||||
var width = thumbWidth*columns;
|
||||
var height = thumbHeight*rows;
|
||||
|
||||
var projectX = [];
|
||||
var projectY = [];
|
||||
var deproject = [];
|
||||
|
||||
var indexes = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
entry = data[i];
|
||||
entry.id = i;
|
||||
indexes[i] = { entry:entry, sortBy:i, id:i };
|
||||
|
||||
var x = (i % columns);
|
||||
var y = Math.floor(i/columns);
|
||||
|
||||
entry.oldPos = i;
|
||||
entry.newPos = i;
|
||||
entry.oldColor = [0,0,0,0];
|
||||
entry.newColor = [0,0,0,0];
|
||||
|
||||
projectX[i] = x*thumbWidth;
|
||||
projectY[i] = y*thumbHeight;
|
||||
|
||||
if (deproject[x] === undefined) deproject[x] = [];
|
||||
|
||||
deproject[x][y] = i;
|
||||
}
|
||||
|
||||
nodeOverlay.mouseenter(function (e) { me.toolTip.show(e.pageX, e.pageY) });
|
||||
nodeOverlay.mousemove( function (e) { me.toolTip.show(e.pageX, e.pageY) });
|
||||
nodeOverlay.mouseleave(function (e) { me.toolTip.hide() });
|
||||
nodeOverlay.click(function (e) {
|
||||
me.toolTip.showInfobox();
|
||||
});
|
||||
|
||||
me.toolTip = new (function () {
|
||||
var me = this;
|
||||
var status = {};
|
||||
var markedEntry;
|
||||
|
||||
var tooltip = $('#tooltip');
|
||||
var marker = $('#marker');
|
||||
var infobox = $('#infobox');
|
||||
var infoboxContent = $('#infoboxContent');
|
||||
|
||||
$('#infobox .close').click(function () { infobox.hide() });
|
||||
|
||||
me.hide = function () {
|
||||
if (status.shown) {
|
||||
tooltip.hide();
|
||||
marker.hide();
|
||||
}
|
||||
status.shown = false;
|
||||
}
|
||||
|
||||
me.show = function (x, y) {
|
||||
if (!status.shown) {
|
||||
tooltip.show();
|
||||
marker.show();
|
||||
}
|
||||
status.shown = true;
|
||||
|
||||
var offset = $('#gridCanvas').offset();
|
||||
x -= offset.left;
|
||||
y -= offset.top;
|
||||
|
||||
var xi = clamp(Math.floor(x/thumbWidth ), 0, columns - 1);
|
||||
var yi = clamp(Math.floor(y/thumbHeight), 0, rows - 1);
|
||||
var index = deproject[xi][yi];
|
||||
var id = index.id
|
||||
var entry = indexes[index].entry;
|
||||
var html = '<b>'+entry.title+'</b><br>'+entry.hint;
|
||||
var content = html+xi+'_'+yi;
|
||||
|
||||
if (status.content != content) {
|
||||
tooltip.html(html);
|
||||
|
||||
var tx = xi*thumbWidth;
|
||||
var ty = yi*thumbHeight;
|
||||
|
||||
marker.css({
|
||||
left: tx-3,
|
||||
top: ty-3
|
||||
});
|
||||
|
||||
tx += thumbWidth/2 - tooltip.outerWidth()/2;
|
||||
if (tx < -5) tx = -5;
|
||||
|
||||
if (ty + thumbHeight + 120 < node.innerHeight()) {
|
||||
tooltip.css({
|
||||
left: tx,
|
||||
top: ty + thumbHeight + 3,
|
||||
bottom: 'auto'
|
||||
});
|
||||
} else {
|
||||
tooltip.css({
|
||||
left: tx,
|
||||
top: 'auto',
|
||||
bottom: node.innerHeight() - (ty - 3)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
status.content = content;
|
||||
markedEntry = entry;
|
||||
}
|
||||
|
||||
function replace(text, regexp, value) {
|
||||
value = value.replace(/%/g, '%');
|
||||
return text.replace(regexp, value);
|
||||
}
|
||||
|
||||
var highlightCountries = {
|
||||
// Deutschland
|
||||
'DE':4,
|
||||
// deutschsprachig
|
||||
'CH':3,'AT':3,
|
||||
// EU
|
||||
'FR':2,'BE':2,'BG':2,'DK':2,'EE':2,'FI':2,'GR':2,'IE':2,'IT':2,'LV':2,'LT':2,'LU':2,'MT':2,'NL':2,'PL':2,'PT':2,'RO':2,'SE':2,'SK':2,'SI':2,'ES':2,'CZ':2,'HU':2,'GB':2,'CY':2,
|
||||
// westliche Staaten
|
||||
'US':1
|
||||
};
|
||||
|
||||
me.showInfobox = function () {
|
||||
infobox.show();
|
||||
|
||||
var c = markedEntry.restrictionsAll;
|
||||
var countries = [];
|
||||
for (var i = 0; i < c.length; i++) {
|
||||
var countryName = countryCodes[c[i]];
|
||||
if (countryName === undefined) console.error('Unbekannter Code: '+c[i]);
|
||||
countryName = inEnglishPlease ? countryName.en : countryName.de;
|
||||
|
||||
var style = 'color:#888';
|
||||
switch (highlightCountries[c[i]]) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
case 3: style = ''; break;
|
||||
case 4: style = 'font-weight:bold'; break;
|
||||
}
|
||||
countries.push('<span title="'+countryName+'" style="'+style+'">'+c[i]+'</span>');
|
||||
}
|
||||
if (countries.length == 0) {
|
||||
countries = 'Keinem Land';
|
||||
} else {
|
||||
countries = countries.join(', ');
|
||||
}
|
||||
|
||||
var html = infoboxTemplate;
|
||||
|
||||
html = replace(html, /%title%/g, markedEntry.title);
|
||||
html = replace(html, /%published%/g, formatDate(markedEntry.published));
|
||||
html = replace(html, /%url%/g, markedEntry.url);
|
||||
html = replace(html, /%author%/g, markedEntry.author);
|
||||
if (inEnglishPlease) {
|
||||
html = replace(html, /%restriction%/g, (markedEntry.restrictedInDE > 1) ? 'Yes' : 'No');
|
||||
html = replace(html, /%reason%/g, markedEntry.reasonEN);
|
||||
} else {
|
||||
html = replace(html, /%restriction%/g, (markedEntry.restrictedInDE > 1) ? 'Ja' : 'Nein');
|
||||
html = replace(html, /%reason%/g, markedEntry.reasonDE);
|
||||
}
|
||||
html = replace(html, /%restrictionCountries%/g, countries);
|
||||
html = replace(html, /%rank%/g, formatInteger(markedEntry.rank));
|
||||
html = replace(html, /%thumbnail%/g, markedEntry.thumbnail);
|
||||
html = replace(html, /%rating%/g, formatRating(markedEntry.rating));
|
||||
html = replace(html, /%viewCount%/g, formatInteger(markedEntry.viewCount));
|
||||
html = replace(html, /%category%/g, markedEntry.category);
|
||||
|
||||
if (!markedEntry.restrictedInDE > 1) html = replace(html, /%de%.*?%\/de%/g, '');
|
||||
|
||||
html = replace(html, /%\/?de%/g, '');
|
||||
|
||||
infoboxContent.html(html);
|
||||
$('#infoboxContent span').tooltip();
|
||||
}
|
||||
})();
|
||||
|
||||
me.sort = function (options) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
indexes[i].sortBy = options.callback(indexes[i].entry);
|
||||
indexes[i].oldIndex = i;
|
||||
indexes[i].entry.hint = options.hint(indexes[i].entry);
|
||||
}
|
||||
|
||||
indexes.sort(function (a, b) {
|
||||
if (a.sortBy == b.sortBy) {
|
||||
return a.oldIndex - b.oldIndex;
|
||||
} else {
|
||||
return a.sortBy - b.sortBy;
|
||||
}
|
||||
});
|
||||
|
||||
for (var i = 0; i < indexes.length; i++) {
|
||||
var entry = indexes[i].entry;
|
||||
var id = entry.id;
|
||||
var x = i % columns;
|
||||
var y = Math.floor(i/columns);
|
||||
|
||||
entry.oldPos = entry.newPos;
|
||||
entry.newPos = i;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var cHigh = [237, 28, 36, 0.6];
|
||||
var cMiddle = [255, 255, 60, 0.6];
|
||||
var cLow = [200, 255, 200, 0.8];
|
||||
|
||||
var cHigh = [180, 28, 36, 0.6];
|
||||
var cMiddle = [255, 142, 146, 0.6];
|
||||
var cLow = [255, 255, 255, 0.8];
|
||||
|
||||
me.flag = function (options) {
|
||||
var count = 0;
|
||||
for (var i = 0; i < indexes.length; i++) {
|
||||
var entry = indexes[i].entry;
|
||||
var flagged = options.callback(entry);
|
||||
var color;
|
||||
|
||||
switch (flagged) {
|
||||
case 0.0: color = cLow; break;
|
||||
case 0.5: color = cMiddle; break;
|
||||
case 1.0: color = cHigh; break;
|
||||
default:
|
||||
var v = flagged*2;
|
||||
if (v > 1) {
|
||||
v -= 1;
|
||||
color = [
|
||||
cHigh[0]*v + (1-v)*cMiddle[0],
|
||||
cHigh[1]*v + (1-v)*cMiddle[1],
|
||||
cHigh[2]*v + (1-v)*cMiddle[2],
|
||||
cHigh[3]*v + (1-v)*cMiddle[3]
|
||||
]
|
||||
} else {
|
||||
color = [
|
||||
cMiddle[0]*v + (1-v)*cLow[0],
|
||||
cMiddle[1]*v + (1-v)*cLow[1],
|
||||
cMiddle[2]*v + (1-v)*cLow[2],
|
||||
cMiddle[3]*v + (1-v)*cLow[3]
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
if (flagged > 0.5) count++;
|
||||
|
||||
entry.oldColor = entry.newColor;
|
||||
entry.newColor = color;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
me.makeItSo = function () {
|
||||
var image = imageNode[0];
|
||||
|
||||
var frame = 1;
|
||||
var frameNumber = 10;
|
||||
|
||||
var interval = setInterval(function () {
|
||||
var a = frame/frameNumber;
|
||||
a = (1-Math.cos(a*Math.PI))/2;
|
||||
if (frame >= frameNumber) a = 1;
|
||||
|
||||
context.fillStyle = '#FFF';
|
||||
context.fillRect(0,0,width,height);
|
||||
|
||||
var order = [];
|
||||
|
||||
for (var i = 0; i < indexes.length; i++) {
|
||||
var entry = indexes[i].entry;
|
||||
var id = entry.id;
|
||||
order[i] = {
|
||||
entry:entry,
|
||||
value:(1-a)*entry.oldColor[3] + a*entry.newColor[3]
|
||||
}
|
||||
}
|
||||
|
||||
order.sort(function (a,b) {
|
||||
if (a.value == b.value) {
|
||||
return a.newPos - b.newPos;
|
||||
} else {
|
||||
return a.value-b.value;
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
for (var i = order.length-1; i >= 0; i--) {
|
||||
var entry = order[i].entry;
|
||||
var id = entry.id;
|
||||
|
||||
var x0 = projectX[entry.oldPos];
|
||||
var y0 = projectY[entry.oldPos];
|
||||
var x1 = projectX[entry.newPos];
|
||||
var y1 = projectY[entry.newPos];
|
||||
|
||||
var x = Math.round((1-a)*x0 + a*x1);
|
||||
var y = Math.round((1-a)*y0 + a*y1);
|
||||
|
||||
context.drawImage(
|
||||
image,
|
||||
projectX[id],
|
||||
projectY[id],
|
||||
thumbWidth,
|
||||
thumbHeight,
|
||||
x,
|
||||
y,
|
||||
thumbWidth,
|
||||
thumbHeight
|
||||
);
|
||||
|
||||
var color = [
|
||||
(1-a)*entry.oldColor[0] + a*entry.newColor[0],
|
||||
(1-a)*entry.oldColor[1] + a*entry.newColor[1],
|
||||
(1-a)*entry.oldColor[2] + a*entry.newColor[2],
|
||||
(1-a)*entry.oldColor[3] + a*entry.newColor[3]
|
||||
];
|
||||
|
||||
color = generateRGBA(color);
|
||||
|
||||
context.fillStyle = color;
|
||||
context.fillRect(x, y, thumbWidth, thumbHeight);
|
||||
|
||||
}
|
||||
|
||||
if (frame >= frameNumber) {
|
||||
clearInterval(interval);
|
||||
for (var i = 0; i < indexes.length; i++) {
|
||||
indexes[i].entry.oldColor = indexes[i].entry.newColor;
|
||||
indexes[i].entry.oldPos = indexes[i].entry.newPos;
|
||||
}
|
||||
}
|
||||
frame++;
|
||||
}, 60);
|
||||
}
|
||||
|
||||
me.makeItFast = function () {
|
||||
for (var i = 0; i < indexes.length; i++) {
|
||||
var entry = indexes[i].entry;
|
||||
var id = entry.id;
|
||||
|
||||
var x = projectX[entry.newPos];
|
||||
var y = projectY[entry.newPos];
|
||||
var color = generateRGBA(entry.newColor);
|
||||
|
||||
context.fillStyle = color;
|
||||
context.fillRect(x, y, thumbWidth, thumbHeight);
|
||||
}
|
||||
}
|
||||
|
||||
function generateRGBA(a) {
|
||||
return 'rgba('+Math.round(a[0])+','+Math.round(a[1])+','+Math.round(a[2])+','+Math.round(a[3]*100)/100+')';
|
||||
}
|
||||
|
||||
function clamp(value, min, max) {
|
||||
if (value < min) value = min;
|
||||
if (value > max) value = max;
|
||||
return value;
|
||||
}
|
||||
|
||||
return me;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
/* embed overlay code */
|
||||
|
||||
$('body').append($($embed_overlay));
|
||||
|
||||
$('.embed-button').click(function(evt){
|
||||
if ($('#embed-overlay:visible').length === 0) {
|
||||
$('#embed-overlay').fadeIn('fast');
|
||||
}
|
||||
});
|
||||
|
||||
var $clickIn = false;
|
||||
$('#embed-overlay').click(function(evt){
|
||||
if (!$clickIn) {
|
||||
$('#embed-overlay').fadeOut('fast');
|
||||
}
|
||||
$clickIn = false;
|
||||
});
|
||||
$('#embed-form').click(function(evt){
|
||||
$clickIn = true;
|
||||
});
|
||||
|
||||
/* embed code*/
|
||||
if ($('#embed-form').length) {
|
||||
var $f = $('#embed-form');
|
||||
var $url = 'http://apps.opendatacity.de/gema-vs-youtube/';
|
||||
var embedCode = function(){
|
||||
var $size = $('input:radio[name=size]:checked',$f).val();
|
||||
var $lang = $('input:radio[name=lang]:checked',$f).val();
|
||||
$lang = ($lang === "") ? "de" : $lang;
|
||||
$size = ($size === "") ? "large" : $size;
|
||||
|
||||
if ($lang == "de") {
|
||||
var text = 'Die geblockten Top-1000-YouTube-Videos';
|
||||
var suffix = 'Unterstützt durch <a href="http://www.myvideo.de">MyVideo</a>. Realisiert von <a href="http://www.opendatacity.de/">OpenDataCity</a>. Anwendung steht unter <a rel="license" href="http://creativecommons.org/licenses/by/3.0/de/">CC-BY 3.0</a>.';
|
||||
var file = 'frame.de.html';
|
||||
} else {
|
||||
var text = 'Top 1000 YouTube Videos';
|
||||
var suffix = 'Supported by <a href="http://www.myvideo.de">MyVideo</a>. Made by <a href="http://www.opendatacity.de/">OpenDataCity</a>. This App is under <a rel="license" href="http://creativecommons.org/licenses/by/3.0/us/">CC-BY 3.0</a>.';
|
||||
var file = 'frame.en.html';
|
||||
}
|
||||
|
||||
$('#embed-size',$f).show();
|
||||
switch ($size) {
|
||||
case 'large': var $wh = 'width="860" height="610"'; break;
|
||||
case 'medium': var $wh = 'width="640" height="490"'; break;
|
||||
case 'small': var $wh = 'width="520" height="370"'; break;
|
||||
case 'verysmall': var $wh = 'width="420" height="740"'; break;
|
||||
}
|
||||
var $code = '<iframe src="'+$url+file+'" '+$wh+' scrolling="no" frameborder="0" style="margin:0"><a href="'+$url+'">'+text+'</a></iframe><br><small>'+suffix+'</small>';
|
||||
$('#embed-code', $f).text($code);
|
||||
};
|
||||
embedCode();
|
||||
$(":input", $f).change(function(){
|
||||
embedCode();
|
||||
});
|
||||
}
|
||||
|
||||
});
|
|
@ -0,0 +1,487 @@
|
|||
|
||||
var countryCodes = {
|
||||
'AD':{de:'Andorra',en:'Andorra'},
|
||||
'AE':{de:'Vereinigte Arabische Emirate',en:'United Arab Emirates'},
|
||||
'AF':{de:'Afghanistan',en:'Afghanistan'},
|
||||
'AG':{de:'Antigua und Barbuda',en:'Antigua and Barbuda'},
|
||||
'AI':{de:'Anguilla',en:'Anguilla'},
|
||||
'AL':{de:'Albanien',en:'Albania'},
|
||||
'AM':{de:'Armenien',en:'Armenia'},
|
||||
'AO':{de:'Angola',en:'Angola'},
|
||||
'AQ':{de:'Antarktika',en:'Antarctica'},
|
||||
'AR':{de:'Argentinien',en:'Argentina'},
|
||||
'AS':{de:'Amerikanisch-Samoa',en:'American Samoa'},
|
||||
'AT':{de:'Österreich',en:'Austria'},
|
||||
'AU':{de:'Australien',en:'Australia'},
|
||||
'AW':{de:'Aruba',en:'Aruba'},
|
||||
'AX':{de:'Åland',en:'Åland Islands'},
|
||||
'AZ':{de:'Aserbaidschan',en:'Azerbaijan'},
|
||||
'BA':{de:'Bosnien und Herzegowina',en:'Bosnia and Herzegovina'},
|
||||
'BB':{de:'Barbados',en:'Barbados'},
|
||||
'BD':{de:'Bangladesch',en:'Bangladesh'},
|
||||
'BE':{de:'Belgien',en:'Belgium'},
|
||||
'BF':{de:'Burkina Faso',en:'Burkina Faso'},
|
||||
'BG':{de:'Bulgarien',en:'Bulgaria'},
|
||||
'BH':{de:'Bahrain',en:'Bahrain'},
|
||||
'BI':{de:'Burundi',en:'Burundi'},
|
||||
'BJ':{de:'Benin',en:'Benin'},
|
||||
'BL':{de:'Saint-Barthélemy',en:'Saint Barthélemy'},
|
||||
'BM':{de:'Bermuda',en:'Bermuda'},
|
||||
'BN':{de:'Brunei Darussalam',en:'Brunei Darussalam'},
|
||||
'BO':{de:'Bolivien',en:'Bolivia, Plurinational State of'},
|
||||
'BQ':{de:'Bonaire, Sint Eustatius und Saba (Niederlande)',en:'Bonaire, Sint Eustatius and Saba'},
|
||||
'BR':{de:'Brasilien',en:'Brazil'},
|
||||
'BS':{de:'Bahamas',en:'Bahamas'},
|
||||
'BT':{de:'Bhutan',en:'Bhutan'},
|
||||
'BV':{de:'Bouvetinsel',en:'Bouvet Island'},
|
||||
'BW':{de:'Botswana',en:'Botswana'},
|
||||
'BY':{de:'Belarus (Weißrussland)',en:'Belarus'},
|
||||
'BZ':{de:'Belize',en:'Belize'},
|
||||
'CA':{de:'Kanada',en:'Canada'},
|
||||
'CC':{de:'Kokosinseln',en:'Cocos (Keeling) Islands'},
|
||||
'CD':{de:'Kongo, Demokratische Republik (ehem. Zaire)',en:'Congo, the Democratic Republic of the'},
|
||||
'CF':{de:'Zentralafrikanische Republik',en:'Central African Republic'},
|
||||
'CG':{de:'Republik Kongo',en:'Congo'},
|
||||
'CH':{de:'Schweiz',en:'Switzerland'},
|
||||
'CI':{de:'Elfenbeinküste',en:'Côte d’Ivoire'},
|
||||
'CK':{de:'Cookinseln',en:'Cook Islands'},
|
||||
'CL':{de:'Chile',en:'Chile'},
|
||||
'CM':{de:'Kamerun',en:'Cameroon'},
|
||||
'CN':{de:'China, Volksrepublik',en:'China'},
|
||||
'CO':{de:'Kolumbien',en:'Colombia'},
|
||||
'CR':{de:'Costa Rica',en:'Costa Rica'},
|
||||
'CU':{de:'Kuba',en:'Cuba'},
|
||||
'CV':{de:'Kap Verde',en:'Cape Verde'},
|
||||
'CW':{de:'Curaçao',en:'Curaçao'},
|
||||
'CX':{de:'Weihnachtsinsel',en:'Christmas Island'},
|
||||
'CY':{de:'Zypern',en:'Cyprus'},
|
||||
'CZ':{de:'Tschechische Republik',en:'Czech Republic'},
|
||||
'DE':{de:'Deutschland',en:'Germany'},
|
||||
'DJ':{de:'Dschibuti',en:'Djibouti'},
|
||||
'DK':{de:'Dänemark',en:'Denmark'},
|
||||
'DM':{de:'Dominica',en:'Dominica'},
|
||||
'DO':{de:'Dominikanische Republik',en:'Dominican Republic'},
|
||||
'DZ':{de:'Algerien',en:'Algeria'},
|
||||
'EC':{de:'Ecuador',en:'Ecuador'},
|
||||
'EE':{de:'Estland',en:'Estonia'},
|
||||
'EG':{de:'Ägypten',en:'Egypt'},
|
||||
'EH':{de:'Westsahara',en:'Western Sahara'},
|
||||
'ER':{de:'Eritrea',en:'Eritrea'},
|
||||
'ES':{de:'Spanien',en:'Spain'},
|
||||
'ET':{de:'Äthiopien',en:'Ethiopia'},
|
||||
'FI':{de:'Finnland',en:'Finland'},
|
||||
'FJ':{de:'Fidschi',en:'Fiji'},
|
||||
'FK':{de:'Falklandinseln',en:'Falkland Islands (Malvinas)'},
|
||||
'FM':{de:'Mikronesien',en:'Micronesia, Federated States of'},
|
||||
'FO':{de:'Färöer',en:'Faroe Islands'},
|
||||
'FR':{de:'Frankreich',en:'France'},
|
||||
'GA':{de:'Gabun',en:'Gabon'},
|
||||
'GB':{de:'Vereinigtes Königreich Großbritannien und Nordirland',en:'United Kingdom'},
|
||||
'GD':{de:'Grenada',en:'Grenada'},
|
||||
'GE':{de:'Georgien',en:'Georgia'},
|
||||
'GF':{de:'Französisch-Guayana',en:'French Guiana'},
|
||||
'GG':{de:'Guernsey (Kanalinsel)',en:'Guernsey'},
|
||||
'GH':{de:'Ghana',en:'Ghana'},
|
||||
'GI':{de:'Gibraltar',en:'Gibraltar'},
|
||||
'GL':{de:'Grönland',en:'Greenland'},
|
||||
'GM':{de:'Gambia',en:'Gambia'},
|
||||
'GN':{de:'Guinea',en:'Guinea'},
|
||||
'GP':{de:'Guadeloupe',en:'Guadeloupe'},
|
||||
'GQ':{de:'Äquatorialguinea',en:'Equatorial Guinea'},
|
||||
'GR':{de:'Griechenland',en:'Greece'},
|
||||
'GS':{de:'Südgeorgien und die Südlichen Sandwichinseln',en:'South Georgia and the South Sandwich Islands'},
|
||||
'GT':{de:'Guatemala',en:'Guatemala'},
|
||||
'GU':{de:'Guam',en:'Guam'},
|
||||
'GW':{de:'Guinea-Bissau',en:'Guinea-Bissau'},
|
||||
'GY':{de:'Guyana',en:'Guyana'},
|
||||
'HK':{de:'Hongkong',en:'Hong Kong'},
|
||||
'HM':{de:'Heard und McDonaldinseln',en:'Heard Island and McDonald Islands'},
|
||||
'HN':{de:'Honduras',en:'Honduras'},
|
||||
'HR':{de:'Kroatien',en:'Croatia'},
|
||||
'HT':{de:'Haiti',en:'Haiti'},
|
||||
'HU':{de:'Ungarn',en:'Hungary'},
|
||||
'ID':{de:'Indonesien',en:'Indonesia'},
|
||||
'IE':{de:'Irland',en:'Ireland'},
|
||||
'IL':{de:'Israel',en:'Israel'},
|
||||
'IM':{de:'Insel Man',en:'Isle of Man'},
|
||||
'IN':{de:'Indien',en:'India'},
|
||||
'IO':{de:'Britisches Territorium im Indischen Ozean',en:'British Indian Ocean Territory'},
|
||||
'IQ':{de:'Irak',en:'Iraq'},
|
||||
'IR':{de:'Iran, Islamische Republik',en:'Iran, Islamic Republic of'},
|
||||
'IS':{de:'Island',en:'Iceland'},
|
||||
'IT':{de:'Italien',en:'Italy'},
|
||||
'JE':{de:'Jersey (Kanalinsel)',en:'Jersey'},
|
||||
'JM':{de:'Jamaika',en:'Jamaica'},
|
||||
'JO':{de:'Jordanien',en:'Jordan'},
|
||||
'JP':{de:'Japan',en:'Japan'},
|
||||
'KE':{de:'Kenia',en:'Kenya'},
|
||||
'KG':{de:'Kirgisistan',en:'Kyrgyzstan'},
|
||||
'KH':{de:'Kambodscha',en:'Cambodia'},
|
||||
'KI':{de:'Kiribati',en:'Kiribati'},
|
||||
'KM':{de:'Komoren',en:'Comoros'},
|
||||
'KN':{de:'St. Kitts und Nevis',en:'Saint Kitts and Nevis'},
|
||||
'KP':{de:'Korea, Demokratische Volksrepublik (Nordkorea)',en:'Korea, Democratic People’s Republic of'},
|
||||
'KR':{de:'Korea, Republik (Südkorea)',en:'Korea, Republic of'},
|
||||
'KW':{de:'Kuwait',en:'Kuwait'},
|
||||
'KY':{de:'Kaimaninseln',en:'Cayman Islands'},
|
||||
'KZ':{de:'Kasachstan',en:'Kazakhstan'},
|
||||
'LA':{de:'Laos, Demokratische Volksrepublik',en:'Lao People’s Democratic Republic'},
|
||||
'LB':{de:'Libanon',en:'Lebanon'},
|
||||
'LC':{de:'St. Lucia',en:'Saint Lucia'},
|
||||
'LI':{de:'Liechtenstein',en:'Liechtenstein'},
|
||||
'LK':{de:'Sri Lanka',en:'Sri Lanka'},
|
||||
'LR':{de:'Liberia',en:'Liberia'},
|
||||
'LS':{de:'Lesotho',en:'Lesotho'},
|
||||
'LT':{de:'Litauen',en:'Lithuania'},
|
||||
'LU':{de:'Luxemburg',en:'Luxembourg'},
|
||||
'LV':{de:'Lettland',en:'Latvia'},
|
||||
'LY':{de:'Libyen',en:'Libya'},
|
||||
'MA':{de:'Marokko',en:'Morocco'},
|
||||
'MC':{de:'Monaco',en:'Monaco'},
|
||||
'MD':{de:'Moldawien (Republik Moldau)',en:'Moldova, Republic of'},
|
||||
'ME':{de:'Montenegro',en:'Montenegro'},
|
||||
'MF':{de:'Saint-Martin (franz. Teil)',en:'Saint Martin (French part)'},
|
||||
'MG':{de:'Madagaskar',en:'Madagascar'},
|
||||
'MH':{de:'Marshallinseln',en:'Marshall Islands'},
|
||||
'MK':{de:'Mazedonien, ehem. jugoslawische Republik',en:'Macedonia, the former Yugoslav Republic of'},
|
||||
'ML':{de:'Mali',en:'Mali'},
|
||||
'MM':{de:'Myanmar (Burma)',en:'Myanmar'},
|
||||
'MN':{de:'Mongolei',en:'Mongolia'},
|
||||
'MO':{de:'Macao',en:'Macao'},
|
||||
'MP':{de:'Nördliche Marianen',en:'Northern Mariana Islands'},
|
||||
'MQ':{de:'Martinique',en:'Martinique'},
|
||||
'MR':{de:'Mauretanien',en:'Mauritania'},
|
||||
'MS':{de:'Montserrat',en:'Montserrat'},
|
||||
'MT':{de:'Malta',en:'Malta'},
|
||||
'MU':{de:'Mauritius',en:'Mauritius'},
|
||||
'MV':{de:'Malediven',en:'Maldives'},
|
||||
'MW':{de:'Malawi',en:'Malawi'},
|
||||
'MX':{de:'Mexiko',en:'Mexico'},
|
||||
'MY':{de:'Malaysia',en:'Malaysia'},
|
||||
'MZ':{de:'Mosambik',en:'Mozambique'},
|
||||
'NA':{de:'Namibia',en:'Namibia'},
|
||||
'NC':{de:'Neukaledonien',en:'New Caledonia'},
|
||||
'NE':{de:'Niger',en:'Niger'},
|
||||
'NF':{de:'Norfolkinsel',en:'Norfolk Island'},
|
||||
'NG':{de:'Nigeria',en:'Nigeria'},
|
||||
'NI':{de:'Nicaragua',en:'Nicaragua'},
|
||||
'NL':{de:'Niederlande',en:'Netherlands'},
|
||||
'NO':{de:'Norwegen',en:'Norway'},
|
||||
'NP':{de:'Nepal',en:'Nepal'},
|
||||
'NR':{de:'Nauru',en:'Nauru'},
|
||||
'NU':{de:'Niue',en:'Niue'},
|
||||
'NZ':{de:'Neuseeland',en:'New Zealand'},
|
||||
'OM':{de:'Oman',en:'Oman'},
|
||||
'PA':{de:'Panama',en:'Panama'},
|
||||
'PE':{de:'Peru',en:'Peru'},
|
||||
'PF':{de:'Französisch-Polynesien',en:'French Polynesia'},
|
||||
'PG':{de:'Papua-Neuguinea',en:'Papua New Guinea'},
|
||||
'PH':{de:'Philippinen',en:'Philippines'},
|
||||
'PK':{de:'Pakistan',en:'Pakistan'},
|
||||
'PL':{de:'Polen',en:'Poland'},
|
||||
'PM':{de:'Saint-Pierre und Miquelon',en:'Saint Pierre and Miquelon'},
|
||||
'PN':{de:'Pitcairninseln',en:'Pitcairn'},
|
||||
'PR':{de:'Puerto Rico',en:'Puerto Rico'},
|
||||
'PS':{de:'Palästinensische Autonomiegebiete',en:'Palestinian Territory, Occupied'},
|
||||
'PT':{de:'Portugal',en:'Portugal'},
|
||||
'PW':{de:'Palau',en:'Palau'},
|
||||
'PY':{de:'Paraguay',en:'Paraguay'},
|
||||
'QA':{de:'Katar',en:'Qatar'},
|
||||
'RE':{de:'Réunion',en:'Réunion'},
|
||||
'RO':{de:'Rumänien',en:'Romania'},
|
||||
'RS':{de:'Serbien',en:'Serbia'},
|
||||
'RU':{de:'Russische Föderation',en:'Russian Federation'},
|
||||
'RW':{de:'Ruanda',en:'Rwanda'},
|
||||
'SA':{de:'Saudi-Arabien',en:'Saudi Arabia'},
|
||||
'SB':{de:'Salomonen',en:'Solomon Islands'},
|
||||
'SC':{de:'Seychellen',en:'Seychelles'},
|
||||
'SD':{de:'Sudan',en:'Sudan'},
|
||||
'SE':{de:'Schweden',en:'Sweden'},
|
||||
'SG':{de:'Singapur',en:'Singapore'},
|
||||
'SH':{de:'St. Helena',en:'Saint Helena, Ascension and Tristan da Cunha'},
|
||||
'SI':{de:'Slowenien',en:'Slovenia'},
|
||||
'SJ':{de:'Svalbard und Jan Mayen',en:'Svalbard and Jan Mayen'},
|
||||
'SK':{de:'Slowakei',en:'Slovakia'},
|
||||
'SL':{de:'Sierra Leone',en:'Sierra Leone'},
|
||||
'SM':{de:'San Marino',en:'San Marino'},
|
||||
'SN':{de:'Senegal',en:'Senegal'},
|
||||
'SO':{de:'Somalia',en:'Somalia'},
|
||||
'SR':{de:'Suriname',en:'Suriname'},
|
||||
'SS':{de:'Südsudan',en:'South Sudan'},
|
||||
'ST':{de:'São Tomé und Príncipe',en:'Sao Tome and Principe'},
|
||||
'SV':{de:'El Salvador',en:'El Salvador'},
|
||||
'SX':{de:'Sint Maarten (niederl. Teil)',en:'Sint Maarten (Dutch part)'},
|
||||
'SY':{de:'Syrien, Arabische Republik',en:'Syrian Arab Republic'},
|
||||
'SZ':{de:'Swasiland',en:'Swaziland'},
|
||||
'TC':{de:'Turks- und Caicosinseln',en:'Turks and Caicos Islands'},
|
||||
'TD':{de:'Tschad',en:'Chad'},
|
||||
'TF':{de:'Französische Süd- und Antarktisgebiete',en:'French Southern Territories'},
|
||||
'TG':{de:'Togo',en:'Togo'},
|
||||
'TH':{de:'Thailand',en:'Thailand'},
|
||||
'TJ':{de:'Tadschikistan',en:'Tajikistan'},
|
||||
'TK':{de:'Tokelau',en:'Tokelau'},
|
||||
'TL':{de:'Osttimor (Timor-Leste)',en:'Timor-Leste'},
|
||||
'TM':{de:'Turkmenistan',en:'Turkmenistan'},
|
||||
'TN':{de:'Tunesien',en:'Tunisia'},
|
||||
'TO':{de:'Tonga',en:'Tonga'},
|
||||
'TR':{de:'Türkei',en:'Turkey'},
|
||||
'TT':{de:'Trinidad und Tobago',en:'Trinidad and Tobago'},
|
||||
'TV':{de:'Tuvalu',en:'Tuvalu'},
|
||||
'TW':{de:'Republik China (Taiwan)',en:'Taiwan, Province of China'},
|
||||
'TZ':{de:'Tansania, Vereinigte Republik',en:'Tanzania, United Republic of'},
|
||||
'UA':{de:'Ukraine',en:'Ukraine'},
|
||||
'UG':{de:'Uganda',en:'Uganda'},
|
||||
'UM':{de:'United States Minor Outlying Islands',en:'United States Minor Outlying Islands'},
|
||||
'US':{de:'Vereinigte Staaten von Amerika',en:'United States'},
|
||||
'UY':{de:'Uruguay',en:'Uruguay'},
|
||||
'UZ':{de:'Usbekistan',en:'Uzbekistan'},
|
||||
'VA':{de:'Vatikanstadt',en:'Holy See (Vatican City State)'},
|
||||
'VC':{de:'St. Vincent und die Grenadinen',en:'Saint Vincent and the Grenadines'},
|
||||
'VE':{de:'Venezuela',en:'Venezuela, Bolivarian Republic of'},
|
||||
'VG':{de:'Britische Jungferninseln',en:'Virgin Islands, British'},
|
||||
'VI':{de:'Amerikanische Jungferninseln',en:'Virgin Islands, U.S.'},
|
||||
'VN':{de:'Vietnam',en:'Viet Nam'},
|
||||
'VU':{de:'Vanuatu',en:'Vanuatu'},
|
||||
'WF':{de:'Wallis und Futuna',en:'Wallis and Futuna'},
|
||||
'WS':{de:'Samoa',en:'Samoa'},
|
||||
'YE':{de:'Jemen',en:'Yemen'},
|
||||
'YT':{de:'Mayotte',en:'Mayotte'},
|
||||
'ZA':{de:'Südafrika',en:'South Africa'},
|
||||
'ZM':{de:'Sambia',en:'Zambia'},
|
||||
'ZW':{de:'Simbabwe',en:'Zimbabwe'},
|
||||
};
|
||||
|
||||
var canvas;
|
||||
var sizeMode;
|
||||
var thumbWidth, thumbHeight, columns, rows, imageUrl;
|
||||
|
||||
$(function () {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
var entry = data[i];
|
||||
|
||||
entry.publishedTS = (new Date(entry.published)).getTime();
|
||||
entry.updatedTS = (new Date(entry.updated )).getTime();
|
||||
|
||||
entry.restrictionCountries = {};
|
||||
for (var j = 0; j < entry.restrictionsAll.length; j++) {
|
||||
entry.restrictionCountries[entry.restrictionsAll[j]] = true;
|
||||
}
|
||||
}
|
||||
|
||||
var width = $(window).width();
|
||||
|
||||
if (width < 520) sizeMode = 1;
|
||||
else if (width < 640) sizeMode = 0;
|
||||
else if (width < 860) sizeMode = 1;
|
||||
else sizeMode = 2;
|
||||
|
||||
switch (sizeMode) {
|
||||
case 0: thumbWidth = 11; thumbHeight = 9; columns = 25; rows = 40; imageUrl = 'assets/img/grid_520.jpg'; break;
|
||||
case 1: thumbWidth = 16; thumbHeight = 12; columns = 25; rows = 40; imageUrl = 'assets/img/grid_640.jpg'; break;
|
||||
case 2: thumbWidth = 20; thumbHeight = 15; columns = 25; rows = 40; imageUrl = 'assets/img/grid_860.jpg'; break;
|
||||
}
|
||||
|
||||
$('#gridImage').attr('src', imageUrl);
|
||||
$('#gridImage, #gridCanvas, #gridCanvasOverlay').attr({width: thumbWidth*columns, height: thumbHeight*rows});
|
||||
|
||||
canvas = new Canvas({
|
||||
imageNode: $('#gridImage'),
|
||||
node: $('#gridCanvas'),
|
||||
nodeOverlay: $('#gridCanvasOverlay'),
|
||||
thumbWidth: thumbWidth,
|
||||
thumbHeight: thumbHeight,
|
||||
columns: columns,
|
||||
data: data
|
||||
});
|
||||
|
||||
$('#gridFlag button').click(function (e) {
|
||||
updateCanvas({ flagType:$(e.target).attr('value') });
|
||||
})
|
||||
|
||||
$('#gridSort button').click(function (e) {
|
||||
updateCanvas({ sortType:$(e.target).attr('value') });
|
||||
})
|
||||
|
||||
updateCanvas({initialize:true});
|
||||
});
|
||||
|
||||
function updateCanvas(options) {
|
||||
options = options || {};
|
||||
var flagType = options.flagType || $('#gridFlag .active').attr('value');
|
||||
var sortType = options.sortType || $('#gridSort .active').attr('value');
|
||||
|
||||
var flag;
|
||||
var sort = function (entry) { return -entry.restrictedInDE };
|
||||
var hint;
|
||||
if (inEnglishPlease) {
|
||||
hint = function (entry) { return (entry.restrictedInDE > 1) ? 'Reason:<br><i>'+entry.reasonEN+'</i>' : '' };
|
||||
} else {
|
||||
hint = function (entry) { return (entry.restrictedInDE > 1) ? 'Begründung:<br><i>'+entry.reasonDE+'</i>' : '' };
|
||||
}
|
||||
|
||||
switch (flagType.split('-')[0]) {
|
||||
case 'germany':
|
||||
flag = function (entry) { return [0,0,1.0,1.0,1.0][entry.restrictedInDE] };
|
||||
hint
|
||||
break;
|
||||
case 'gema':
|
||||
flag = function (entry) { return [0,0,1.0,0.2,0.2][entry.restrictedInDE] };
|
||||
break;
|
||||
case 'other':
|
||||
flag = function (entry) { return [0,0,0.2,1.0,1.0][entry.restrictedInDE] };
|
||||
break;
|
||||
case 'foreign':
|
||||
flag = function (entry) { return (entry.restrictionsAll.length > ((entry.restrictedInDE > 1) ? 1 : 0)) ? 1 : 0 };
|
||||
sort = function (entry) {
|
||||
var inDE = (entry.restrictedInDE > 1) ? 1 : 0;
|
||||
var onlyForeign = entry.restrictionsAll.length - inDE;
|
||||
return -onlyForeign;
|
||||
};
|
||||
hint = function (entry) {
|
||||
if (entry.restrictedInDE > 1) {
|
||||
if (entry.restrictionsAll.length > 1) {
|
||||
if (entry.restrictionsAll.length > 2) {
|
||||
if (inEnglishPlease) {
|
||||
return 'blocked in '+(entry.restrictionsAll.length-1)+' countries<br>and in Germany';
|
||||
} else {
|
||||
return 'gesperrt in '+(entry.restrictionsAll.length-1)+' Ländern,<br>zusätzlich auch in Deutschland';
|
||||
}
|
||||
} else {
|
||||
var id = (entry.restrictionsAll[0] == 'DE') ? 1 : 0;
|
||||
var code = countryCodes[entry.restrictionsAll[id]];
|
||||
if (inEnglishPlease) {
|
||||
return 'blocked in one country ('+code.en+')<br>and in Germany';
|
||||
} else {
|
||||
return 'gesperrt in einem Land ('+code.de+'),<br>zusätzlich auch in Deutschland';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (inEnglishPlease) {
|
||||
return 'blocked only in Germany';
|
||||
} else {
|
||||
return 'gesperrt nur in Deutschland';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (entry.restrictionsAll.length > 1) {
|
||||
|
||||
if (inEnglishPlease) {
|
||||
return 'blocked in '+entry.restrictionsAll.length+' countries,<br>but not in Germany';
|
||||
} else {
|
||||
return 'gesperrt in '+entry.restrictionsAll.length+' Ländern,<br>aber nicht in Deutschland';
|
||||
}
|
||||
} else if (entry.restrictionsAll.length > 0) {
|
||||
var code = countryCodes[entry.restrictionsAll[0]];
|
||||
if (inEnglishPlease) {
|
||||
return 'blocked only in '+code.en;
|
||||
} else {
|
||||
return 'gesperrt nur in '+code.de;
|
||||
}
|
||||
} else {
|
||||
if (inEnglishPlease) {
|
||||
return 'nowhere blocked';
|
||||
} else {
|
||||
return 'nirgends gesperrt';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'country':
|
||||
var country = flagType.split('-')[1];
|
||||
var code = countryCodes[country];
|
||||
flag = function (entry) { return (entry.restrictionCountries[country] === true) ? 1 : 0 };
|
||||
sort = function (entry) { return -((entry.restrictionCountries[country] === true) ? 1000 : 0); };
|
||||
hint = function (entry) {
|
||||
if (entry.restrictionCountries[country] === true) {
|
||||
return inEnglishPlease ? 'blocked in '+code.en : 'gesperrt in „'+code.de+'”';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
switch (sortType) {
|
||||
case 'rank':
|
||||
sort = function (entry) { return entry.rank };
|
||||
break;
|
||||
case 'rating':
|
||||
sort = function (entry) { return -entry.rating };
|
||||
break;
|
||||
case 'category':
|
||||
sort = function (entry) { return entry.category.toLowerCase() };
|
||||
break;
|
||||
}
|
||||
|
||||
canvas.sort({
|
||||
callback: sort,
|
||||
hint: hint
|
||||
});
|
||||
|
||||
var value = canvas.flag({
|
||||
callback: flag
|
||||
});
|
||||
|
||||
setCounter(value);
|
||||
|
||||
if (options.initialize) {
|
||||
canvas.makeItFast();
|
||||
} else {
|
||||
canvas.makeItSo();
|
||||
}
|
||||
}
|
||||
|
||||
var oldValue, newValue, counterInterval;
|
||||
function setCounter(value) {
|
||||
function setValue(value) {
|
||||
value = (value/10).toFixed(1).replace(/\./, ',')+'%';
|
||||
if (value.length < 5) value = ' '+value;
|
||||
$('#display-number-content').html(value);
|
||||
}
|
||||
if (oldValue === undefined) {
|
||||
setValue(value);
|
||||
oldValue = value;
|
||||
} else {
|
||||
clearInterval(counterInterval);
|
||||
(function () {
|
||||
var frame = 1;
|
||||
var frameNumber = 20;
|
||||
counterInterval = setInterval(
|
||||
function () {
|
||||
if (frame >= frameNumber) {
|
||||
setValue(value);
|
||||
oldValue = value;
|
||||
clearInterval(counterInterval);
|
||||
} else {
|
||||
var a = frame/frameNumber;
|
||||
a = (1-Math.cos(a*Math.PI))/2;
|
||||
var v = (1-a)*oldValue + a*value;
|
||||
setValue(v);
|
||||
frame++
|
||||
}
|
||||
}, 30
|
||||
);
|
||||
})();
|
||||
}
|
||||
}
|
||||
|
||||
function formatRating(value) {
|
||||
return value.toFixed(2).replace(/\./, ',');
|
||||
}
|
||||
|
||||
function formatInteger(value) {
|
||||
var t = value.toFixed(0);
|
||||
for (var i = t.length-3; i > 0; i -= 3) {
|
||||
t = t.substr(0, i) + '.' + t.substr(i);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
function formatDate(value) {
|
||||
value = new Date(value);
|
||||
var day = value.getDate();
|
||||
var month = value.getMonth() + 1;
|
||||
var year = value.getFullYear();
|
||||
return day + '.' + month + '.' + year;
|
||||
}
|
|
@ -0,0 +1,123 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<title>GEMA versus YouTubes Top 1000</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<base href="http://apps.opendatacity.de/gema-vs-youtube/" target="_parent">
|
||||
|
||||
<meta property="og:title" content="GEMA versus YouTubes Top 1000" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="http://apps.opendatacity.de/gema-vs-youtube/" />
|
||||
<meta property="og:image" content="http://datenjournalist.de/wp-content/uploads/2013/01/grid_by_reason-853x1024.jpg" />
|
||||
|
||||
<link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="assets/css/index.css" rel="stylesheet" type="text/css">
|
||||
|
||||
<script src="assets/js/jquery-1.8.3.min.js" type="text/javascript"></script>
|
||||
<script src="assets/js/bootstrap.min.js" type="text/javascript"></script>
|
||||
<script src="assets/js/helper.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
var $embed_overlay = '<div id="embed-overlay"><div id="embed-content"><h1>Weitergeben</h1><form name="embed-form" id="embed-form" action="javascript:;" method="post"><fieldset id="embed-size" class="form-inline"><legend>Größe</legend><label class="radio"><input type="radio" name="size" value="large" checked="checked"> Groß (860×610)</label><label class="radio"><input type="radio" name="size" value="medium"> Mittel (640×490)</label><label class="radio"><input type="radio" name="size" value="small"> Klein (520×370)</label><label class="radio"><input type="radio" name="size" value="verysmall"> Sehr klein, aber hoch (420×740)</label></fieldset><fieldset class="form-inline"><legend>Sprache</legend><label class="radio"><input type="radio" name="lang" value="de" checked="checked"> Deutsch</label><label class="radio"><input type="radio" name="lang" value="en"> Englisch</label></fieldset><h2>Code</h2><p>Kopiere diesen Code in Deine Webseite:</p><code id="embed-code"></code></form><p><a href="javascript:;" class="btn btn-medium btn-primary">Schließen</a></p></div></div>';
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="fb-root"></div>
|
||||
<script>(function(d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (d.getElementById(id)) return;
|
||||
js = d.createElement(s); js.id = id;
|
||||
js.src = "//connect.facebook.net/de_DE/all.js#xfbml=1";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
}(document, 'script', 'facebook-jssdk'));</script>
|
||||
<div id="container">
|
||||
<h1>GEMA versus YouTubes Top 1000</h1>
|
||||
<div style="position:relative;">
|
||||
<p class="lead" style="width:600px;">
|
||||
Ein großer Teil der YouTube-Videos ist nicht überall zu sehen.<br />
|
||||
Fast 19% der weltweiten Top 1000-Videos sind in einem oder mehreren Ländern außerhalb Deutschlands gesperrt.<br />
|
||||
In Deutschland jedoch sind über <strong>60%</strong> der 1000 beliebtesten Videos nicht verfügbar, weil YouTube davon ausgeht, dass die Musikrechte <strong>„möglicherweise“</strong> bei der Musikverwertungsgesellschaft GEMA liegen.
|
||||
</p>
|
||||
|
||||
<div id="social" style="position:absolute; bottom:10px; right:0; width:180px">
|
||||
<div class="social">
|
||||
<small><b>deutsch</b> | <a href="http://apps.opendatacity.de/gema-vs-youtube/en/">english</a></small>
|
||||
</div>
|
||||
<div id="social-twitter" class="social">
|
||||
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://apps.opendatacity.de/gema-vs-youtube/" data-text="GEMA versus YouTube" data-via="opendatacity" data-lang="de">Twittern</a>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
|
||||
</div>
|
||||
<div id="social-google" class="social">
|
||||
<div class="g-plusone"></div>
|
||||
<script type="text/javascript">
|
||||
window.___gcfg = {lang: 'de'};
|
||||
|
||||
(function() {
|
||||
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
|
||||
po.src = 'https://apis.google.com/js/plusone.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div id="social-facebook" class="social">
|
||||
<div class="fb-like" data-href="http://apps.opendatacity.de/gema-vs-youtube/" data-send="false" data-layout="button_count" data-width="180" data-show-faces="true"></div>
|
||||
</div>
|
||||
<div class="social"><a href="javascript:;" class="btn btn-primary embed-button">Einbetten</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<iframe src="frame.de.html" width="860" height="610" scrolling="no" frameborder="0"><a href="">Die geblockten Top-1000-YouTube-Videos</a></iframe><p>Unterstützt durch <a href="http://www.myvideo.de" rel="follow">MyVideo</a>. Realisiert von <a href="http://www.opendatacity.de/">OpenDataCity</a>. Anwendung steht unter <a rel="license" href="http://creativecommons.org/licenses/by/3.0/de/">CC-BY 3.0</a>.</p>
|
||||
|
||||
|
||||
|
||||
<div class="row-fluid" style="margin-top:50px">
|
||||
|
||||
<div class="span6">
|
||||
<h3>Weitere Informationen</h3>
|
||||
<p>
|
||||
Eine genauere Analyse der Daten so wie ein Making-of befindet sich auf <a href="http://datenjournalist.de/ueber-unsere-app-gema-vs-youtube">datenjournalist.de</a>. Außerdem bieten wir die gesammelten Daten zum Download an:
|
||||
</p>
|
||||
<p>
|
||||
<a href="data/top1000.tsv" class="btn btn-inverse">Download Data</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="span6">
|
||||
<h3>Weiterverwendung</h3>
|
||||
<p>
|
||||
Die Applikation kann kann frei verwendet werden. Der HTML-Code, um die Applikation in die eigene Webseite oder den eigenen Blog einzubetten, kann hier generiert werden:
|
||||
</p>
|
||||
<p>
|
||||
<a href="javascript:;" class="btn btn-primary embed-button">Code zum Einbetten</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr style="margin-top:70px; border-color:#EEE">
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="span4">
|
||||
Unterstützt durch <br><a href="http://www.myvideo.de/" rel="follow" id="mvlogo">MyVideo</a>
|
||||
</div>
|
||||
<div class="span4">
|
||||
Realisiert von <br><a href="http://www.opendatacity.de/" id="odclogo">OpenDataCity</a>
|
||||
</div>
|
||||
<div class="span4" id="license">
|
||||
Diese App steht unter einer <a rel="license" href="http://creativecommons.org/licenses/by/3.0/de/">Creative Commons Namensnennung 3.0 Lizenz</a>.
|
||||
</div>
|
||||
</div>
|
||||
<p style="text-align: right; margin-top: 10px">Diese Seite wird mit Google Analytics ausgewertet. <a href="http://www.opendatacity.de/kontakt/">Impressum</a></p>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-38022006-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|